(57)【要約】【課題】多様な応答発話を生成することにより、ユーザに話し相手と認められ得るコミュニケーション装置等を提供する。【解決手段】コミュニケーション装置は、ユーザの発話である入力発話を入力する入力部と、入力発話が、発話内容の種類として予め定められた複数の分類クラスのそれぞれに属する確率であるクラス確率を演算する演算部と、応答の類型ごとに設けられた、類型に対応する応答発話をそれぞれ生成する複数の応答生成モジュールと、複数の応答生成モジュールのそれぞれに設定された、複数の分類クラスごとの関連度合を示す関連確率、および演算部が演算したクラス確率に基づいて複数の応答生成モジュールから１つを選択し、選択された応答生成モジュールが生成する応答発話をユーザへ発する出力発話と決定する決定部と、出力発話を出力する出力部とを備える。【選択図】図７
2020067585.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの発話である入力発話を入力する入力部と、
前記入力発話が、発話内容の種類として予め定められた複数の分類クラスのそれぞれに属する確率であるクラス確率を演算する演算部と、
応答の類型ごとに設けられた、前記類型に対応する応答発話をそれぞれ生成する複数の応答生成モジュールと、
前記複数の応答生成モジュールのそれぞれに設定された、前記複数の分類クラスごとの関連度合を示す関連確率、および前記演算部が演算した前記クラス確率に基づいて前記複数の応答生成モジュールから１つを選択し、選択された応答生成モジュールが生成する応答発話を前記ユーザへ発する出力発話と決定する決定部と、
前記出力発話を出力する出力部と
を備えるコミュニケーション装置。
【請求項２】
前記決定部は、前記複数の応答生成モジュールのうち、前記関連確率と前記クラス確率を掛け合わせた選択確率が予め定められた基準値以上の値となる応答生成モジュールからランダムに１つを選択する請求項１に記載のコミュニケーション装置。
【請求項３】
前記決定部は、以前に選択された応答生成モジュールが選択される確率が低くなるように設定された過去係数を前記関連確率に掛け合わせて、前記複数の応答生成モジュールから１つを選択する請求項１または２に記載のコミュニケーション装置。
【請求項４】
前記複数の応答生成モジュールは、前記決定部によって選択されてから、選択された応答生成モジュールが前記応答発話を生成する請求項１から３のいずれか１項に記載のコミュニケーション装置。
【請求項５】
ユーザの発話である入力発話を入力する入力ステップと、
前記入力発話が、発話内容の種類として予め定められた複数の分類クラスのそれぞれに属する確率であるクラス確率を演算する演算ステップと、
応答の類型ごとに設けられた、前記類型に対応する応答発話をそれぞれ生成する複数の応答生成モジュールのそれぞれに設定された、前記複数の分類クラスごとの関連度合を示す関連確率、および前記演算ステップで演算した前記クラス確率に基づいて前記複数の応答生成モジュールから１つを選択し、選択された応答生成モジュールが生成する応答発話を前記ユーザへ発する出力発話と決定する決定ステップと、
前記出力発話を出力する出力ステップと
をコンピュータに実行させるコミュニケーション装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コミュニケーション装置およびコミュニケーション装置の制御プログラムに関する。
【背景技術】
【０００２】
ユーザの発話を解析して意味内容を把握し、そのタイプに応じた応答発話を生成して音声またはテキストによりユーザに提示する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１４０２８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の発話応答装置によると、ユーザの発話に対する応答発話が画一的となり、ユーザは、装置を使用するにつれてある程度応答発話を予測できるようになってしまっていた。すなわち、ユーザは、発話応答装置に話し相手としての生命感や自由な意志を感じることができず、対話に飽きることがあった。
【０００５】
本発明は、このような問題を解決するためになされたものであり、多様な応答発話を生成することにより、ユーザに話し相手と認められ得るコミュニケーション装置等を提供するものである。
【課題を解決するための手段】
【０００６】
本発明の第１の態様におけるコミュニケーション装置は、ユーザの発話である入力発話を入力する入力部と、入力発話が、発話内容の種類として予め定められた複数の分類クラスのそれぞれに属する確率であるクラス確率を演算する演算部と、応答の類型ごとに設けられた、類型に対応する応答発話をそれぞれ生成する複数の応答生成モジュールと、複数の応答生成モジュールのそれぞれに設定された、複数の分類クラスごとの関連度合を示す関連確率、および演算部が演算したクラス確率に基づいて複数の応答生成モジュールから１つを選択し、選択された応答生成モジュールが生成する応答発話をユーザへ発する出力発話と決定する決定部と、出力発話を出力する出力部とを備える。このように構成されたコミュニケーション装置によれば、クラス確率と関連確率の掛け合わせによって出力発話が決定されるので、入力発話に対する出力発話の選択バリエーションが増大し、対話に多様性や意外性を持たせることができる。
【０００７】
また、上記のコミュニケーション装置は、決定部が、複数の応答生成モジュールのうち、関連確率とクラス確率を掛け合わせた選択確率が予め定められた基準値以上の値となる応答生成モジュールからランダムに１つを選択するように構成しても良い。このように構成することにより、対話により意外性を持たせることができる。
【０００８】
さらに、決定部が、以前に選択された応答生成モジュールが選択される確率が低くなるように設定された過去係数を関連確率に掛け合わせて、複数の応答生成モジュールから１つを選択するように構成しても良い。このように構成することにより、同じような応答発話が出力されることを回避することができる。
【０００９】
また、上記のコミュニケーション装置において複数の応答生成モジュールは、決定部によって選択されてから、選択された応答生成モジュールが応答発話を生成するようにしても良い。選択されてから応答発話を生成すれば、選択されていない応答生成モジュールが応答発話を生成する無駄を省くことができる。
【００１０】
本発明の第２の態様におけるコミュニケーション装置の制御プログラムは、ユーザの発話である入力発話を入力する入力ステップと、入力発話が、発話内容の種類として予め定められた複数の分類クラスのそれぞれに属する確率であるクラス確率を演算する演算ステップと、応答の類型ごとに設けられた、類型に対応する応答発話をそれぞれ生成する複数の応答生成モジュールのそれぞれに設定された、複数の分類クラスごとの関連度合を示す関連確率、および演算ステップで演算したクラス確率に基づいて複数の応答生成モジュールから１つを選択し、選択された応答生成モジュールが生成する応答発話をユーザへ発する出力発話と決定する決定ステップと、出力発話を出力する出力ステップとをコンピュータに実行させる。このような制御プログラムによって制御されたコミュニケーション装置によれば、クラス確率と関連確率の掛け合わせによって出力発話が決定されるので、入力発話に対する出力発話の選択バリエーションが増大し、対話に多様性や意外性を持たせることができる。
【発明の効果】
【００１１】
本発明により、多様な応答発話を生成することにより、ユーザに話し相手と認められ得るコミュニケーション装置等を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施例に係るロボットとユーザのコミュニケーションの例を示す図である。
【図２】ロボットのシステム構成図である。
【図３】関連確率を定義する参照テーブルの一例である。
【図４】ユーザの発話を受けてから応答するまでの処理を示すフロー図である。
【図５】応答生成モジュールの選択処理を示すフロー図である。
【図６】第２の実施例に係るロボットとユーザのコミュニケーションの例を示す図である。
【図７】ロボットとサーバのシステム構成図である。
【図８】第３の実施例に係るスマートフォンを示す図である。
【発明を実施するための形態】
【００１３】
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
【００１４】
図１は、第１の実施例に係るロボット１００とユーザのコミュニケーションの例を示す図である。ロボット１００は、ユーザである人間と音声対話を行うコミュニケーション装置である。ロボット１００は、キャラクタを具現化したキャラクタ装置であり、対話に合わせて眼の表情や視線方向が変化するように構成しても良い。
【００１５】
ロボット１００は、外観として動物を模しており、頭部１１０と胴体部１２０を有する。頭部１１０のいずれかの位置には、マイク１０１が隠されて配置されている。マイク１０１は、ユーザの発話音声を入力発話として入力する入力部としての機能を担う。ロボット１００の口の位置には、スピーカ１０２が隠されて配置されている。また、スピーカ１０２は、ロボット１００が生成した音声を発する出力部としての機能を担う。ユーザは、口の位置から出力される音声に、ロボット１００が喋っているような感覚を覚える。図示するように、例えばユーザがロボット１００に「今日の天気はどうなるの？」と話しかけると、ロボット１００は、その話しかけに反応して、「晴れのちくもりだよ。」などと発話する。
【００１６】
図２は、ロボット１００のシステム構成図である。ロボット１００は、主なシステム構成として、マイク１０１、スピーカ１０２、制御部２００、発話データベース２１０、知識データベース２２０、およびメモリ２３０を備えている。制御部２００は、例えばＣＰＵによって構成され、機能ごとの実行を担う機能実行部としても動作し、主に、発話解析部２０１、クラス確率演算部２０２、生成モジュール決定部２０３、発話制御部２０４、および応答生成モジュール群２０５として動作する。
【００１７】
マイク１０１は、主な機能として、ロボット１００が対話する相手であるユーザの発話音声を集音する。マイク１０１は、集音したユーザの発話音声を音声信号に変換し、ユーザからの入力発話として発話解析部２０１へ引き渡す。
【００１８】
発話解析部２０１は、マイク１０１から受け取った入力発話を解析してテキスト化し、ユーザの発話内容を認識する。発話解析部２０１は、具体的には、一般的な音声認識技術を用いてユーザの発話内容を認識する。例えば、テキスト化された入力発話に単語分析等を施して、ＤＮＮモデルやロジスティック回帰モデルを用いて発話内容を認識する。発話解析部２０１は、認識した発話内容をクラス確率演算部２０２と応答生成モジュール群２０５へ引き渡す。
【００１９】
クラス確率演算部２０２は、発話解析部２０１から受け取った入力発話が、発話内容の種類として予め定められた複数の分類クラスのそれぞれに属する確率であるクラス確率を演算する。本実施例では、入力発話の種類を「質問」「情報提供」「要求」「非対話」の４つに分類する。そして、これら４つの分類のそれぞれを分類クラスと称し、クラス確率演算部２０２は、入力発話が「質問クラス」「情報提供クラス」「要求クラス」「非対話クラス」に属する推定確率としてクラス確率を演算する。
【００２０】
例えば、質問クラスのクラス確率は、入力発話の内容が、ユーザは何かを知りたがっていると推定される確率である。例えば、入力発話が「今日の天気はどうなるの」であれば、ユーザは今日の天気を知りたがっていると推定されるので、質問クラスのクラス確率が大きい値となる。情報提供クラスのクラス確率は、入力発話の内容が、ユーザは何かを伝えたがっていると推定される確率である。例えば、入力発話が「僕は、野菜が嫌いだよ」であれば、ユーザはロボット１００に自身の特徴を知って貰いたいと推定されるので、情報提供クラスのクラス確率が大きい値となる。
【００２１】
要求クラスのクラス確率は、入力発話の内容が、ユーザは何かをして欲しいと推定される確率である。例えば、入力発話が「リビングの電灯をつけて」であれば、ユーザはロボット１００にリビングの電灯をつける制御信号を送信させたいと推定されるので、要求クラスのクラス確率が大きい値となる。非対話クラスのクラス確率は、入力発話の内容が、ロボット１００に向けられたものでないと推定される確率である。例えば、入力発話が「ああ、眠い」であれば、ユーザは独り言をしゃべっていると推定されるので、非対話クラスのクラス確率が大きい値となる。
【００２２】
クラス確率演算部２０２は、知識データベース２２０を参照して、クラス確率を演算する。知識データベース２２０は、例えばハードディスクドライブの記録媒体によって構成されており、多くの単語とその属性、単語間の係り受け関係を定義する解析文法などが格納されている。知識データベース２２０は、ロボット１００が内蔵していなくても良く、例えばロボット１００が接続可能なネットワークに接続されていても良い。クラス確率演算部２０２は、例えば、入力発話に含まれる複数の単語のうち、知識データベース２２０を参照して同一属性を有する単語の数やその属性の種類、解析文法から考慮対象から除外する単語等を決定し、予め定められた演算式に従ってクラス確率を演算する。例えば、入力発話「今日の天気はどうなるの」に対して、質問クラス確率７０％、情報提供クラス確率５％、要求クラス確率１０％、非対話クラス１５％などの結果を出力する。クラス確率演算部２０２は、入力発話がそれぞれの分類クラスに属するクラス確率を出力したら、生成モジュール決定部２０３へ引き渡す。
【００２３】
なお、知識データベース２２０を用いた解析的演算手法によらず、ロジスティック回帰やＤＮＮ（Ｄｅｅｐ  Ｎｅｕｒａｌ Ｎｅｔｗｏｒｋ）を用いた人工知能による演算手法を採用しても良い。この場合、入力発話を与えるとそれぞれの分類クラスに属するクラス確率を出力する学習済みモデルを用意しておくと良い。クラス確率演算部２０２は、発話解析部２０１から入力発話を受け取るごとに、学習済みモデルを用いてクラス確率を演算する。
【００２４】
応答生成モジュール群２０５は、設定された応答類型に対応する応答発話を生成する応答生成モジュールの集合体である。本実施例では、応答類型として「質問応答」「連想応答」「用例応答」「共感応答」「模倣応答」の５つが予め設定されている。そして、それぞれの応答類型に合致する応答発話を生成する応答生成モジュールとして、質問応答生成モジュール２０５ａ、連想応答生成モジュール２０５ｂ、用例応答生成モジュール２０５ｃ、共感応答生成モジュール２０５ｄ、模倣応答生成モジュール２０５ｅが用意されている。
【００２５】
応答質問は、質問に対して回答を返す応答類型である。例えば、入力発話が「明日は雨かな」である場合に、質問応答生成モジュール２０５ａは、「明日は晴れのちくもりです」との応答発話を生成する。連想応答は、入力文から連想されるフレーズを返す応答類型である。例えば、入力発話が「明日は雨かな」である場合に、連想応答生成モジュール２０５ｂは、「風をひかないようにね」との応答発話を生成する。
【００２６】
用例応答は、入力発話に近いフレーズを返す応答類型である。例えば、入力発話が「明日は雨かな」である場合に、用例応答生成モジュール２０５ｃは、「今日は良い天気ですね」との応答発話を生成する。共感応答は、入力発話に含まれる感情に寄り添うフレーズを返す応答類型である。例えば、入力発話が「明日は雨かな」である場合には、感情の属性を有する単語を含まないので、共感応答生成モジュール２０５ｄは、応答発話を生成しない。模倣応答は、入力発話の部分または全体を模倣してオウム返しする応答類型である。例えば、入力発話が「明日は雨かな」である場合に、模倣応答生成モジュール２０５ｅは、「明日ですか？」との応答発話を生成する。
【００２７】
それぞれの応答生成モジュールは、発話データベース２１０を参照して、応答類型に合致する応答発話を生成する。発話データベース２１０は、例えばハードディスクドライブの記録媒体によって構成されており、コーパスとして体系化された個々の用語は、再生可能な発話データを伴って格納されている。発話データベース２１０は、ロボット１００が内蔵していなくても良く、例えばロボット１００が接続可能なネットワークに接続されていても良い。
【００２８】
生成モジュール決定部２０３は、クラス確率演算部２０２から受け取ったクラス確率と、メモリ２３０に記憶されている参照テーブル２２１を読み出して得た関連確率とに基づいて、応答生成モジュール群２０５から１つの応答生成モジュールを選択する。具体的な選択手法については、後に詳述する。生成モジュール決定部２０３は、選択した応答生成モジュールが生成した応答発話を当該応答生成モジュールから取得し、これを出力発話として採用することを決定する。
【００２９】
発話制御部２０４は、受け取った出力発話を音声信号に変換してスピーカ１０２へ引き渡す。スピーカ１０２は、発話制御部２０４で変換された音声信号を受け取って、出力発話を音声として出力する。なお、メモリ２３０は、フラッシュメモリなどの不揮発性記憶媒体であり、参照テーブル２３１の他にも、ロボット１００を制御するための制御プログラム、制御や演算に用いられる様々なパラメータ値、関数、ルックアップテーブル等を記憶している。
【００３０】
図３は、関連確率を定義する参照テーブル２３１の一例である。関連確率は、応答生成モジュールのそれぞれに設定された、上述の分類クラスごとの関連度合を示す値である。例えば、質問応答生成モジュール２０５ａに対しては、質問クラスとの関連確率が７０％、情報提供クラスとの関連確率が１５％、要求クラスとの関連確率が１０％、非対話クラスとの関連確率が５％と定義されている。同様に、連想応答生成モジュール２０５ｂ、用例応答生成モジュール２０５ｃ、共感応答生成モジュール２０５ｄ、模倣応答生成モジュール２０５ｅのそれぞれに対しても、質問クラスとの関連確率、情報提供クラスとの関連確率、要求クラスとの関連確率、非対話クラスとの関連確率が定義されている。
【００３１】
生成モジュール決定部２０３は、クラス確率演算部２０２から受け取った分類クラスごとのクラス確率を、参照テーブル２３１の各関連確率に掛け合わせた選択確率を算出する。例えば、質問クラス確率５０％、情報提供クラス確率２５％、要求クラス確率１０％、非対話クラス１５％と演算されたクラス確率に対する質問応答生成モジュール２０５ａの選択確率は、算出される確率をＰ（応答生成モジュール｜分類クラス）で表現すると、
Ｐ（質問応答｜質問）＝７０％×５０％＝３５％
Ｐ（質問応答｜情報提供）＝１５％×２５％＝３．７５％
Ｐ（質問応答｜要求）＝１０％×１０％＝１％
Ｐ（質問応答｜非対話）＝５％×１５％＝０．７５％
となる。同様に連想応答生成モジュール２０５ｂの選択確率は、
Ｐ（連想応答｜質問）＝１０％×５０％＝５％
Ｐ（連想応答｜情報提供）＝４０％×２５％＝１０％
Ｐ（連想応答｜要求）＝２０％×１０％＝２％
Ｐ（連想応答｜非対話）＝３０％×１５％＝４．５％
となる。用例応答生成モジュール２０５ｃの選択確率、共感応答生成モジュール２０５ｄの選択確率、模倣応答生成モジュール２０５ｅの選択確率も同様に計算する。
【００３２】
生成モジュール決定部２０３は、このように計算した選択確率のうち、最も大きな値となる選択確率（上記の例ではＰ（質問応答｜質問）＝３５％）を探索し、その値に対応する応答生成モジュール（上記の例では質問応答生成モジュール２０５ａ）を選択する。そして、生成モジュール決定部２０３は、選択した応答生成モジュールが生成した応答発話（例えば、「明日は晴れのちくもりです」）を取得し、その応答発話を出力発話とする。
【００３３】
なお、選択した応答生成モジュールが応答発話を生成しない場合には、選択確率が次に大きな値を示す応答生成モジュールを選択し、その応答生成モジュールが生成する応答発話を出力発話とする。また、複数の選択確率が同値で最大値となる場合には、それらの最大値に対応する応答生成モジュールからランダムに１つを選択すると良い。
【００３４】
このような選択確率を計算して出力発話を決定する手法によれば、入力発話に対する出力発話の選択バリエーションが増大し、対話に多様性や意外性を持たせることができる。すなわち、話し掛ける表現が少しでも異なれば、ロボット１００から返ってくる音声も異なり得るので、ユーザが対話にすぐに飽きてしまうという可能性が軽減される。特に、単に知識を尋ねるような単発的な対話でなく、言葉のキャッチボールが繰り返される雑談的な対話においては、このような多様性や意外性が対話継続の中心的要素となるので効果的である。
【００３５】
さらに多様性や意外性を発揮させるために、生成モジュール決定部２０３は、計算された選択確率から予め定められた基準値以上のものを抽出し、その選択確率に対応する応答生成モジュールからランダムに１つを選択しても良い。例えば、選択確率の基準値をＰ０＝３５％と設定した場合に、Ｐ＞Ｐ０となる選択確率が質問応答生成モジュール２０５ａと用例応答生成モジュール２０５ｃと共感応答生成モジュール２０５ｄに現れたとすると、この３つの中からランダムに１つを選択する。
【００３６】
また、継続的に対話を行う場合には、一連の対話の中ですでに選択された応答生成モジュールの選択確率が低くなるように算出しても良い。例えば、過去に選択された頻度や直前に選択されたかによって変化する過去係数（０以上１未満の数）を関連確率に掛け合わせた上で選択確率を算出する。このようにして、すでに選択された応答生成モジュールの選択確率が低くなるように算出すれば、同じような応答発話が出力されることを回避することができる。
【００３７】
次に、制御部２００が行うユーザの発話を受けてから応答するまでの処理の流れについて説明する。図４は、ユーザの発話を受けてから応答するまでの処理を示すフロー図である。ユーザが１フレーズを発話してから、ロボット１００が１フレーズ返すまでの処理を表わしている。
【００３８】
制御部２００は、ステップＳ１０１で、マイク１０１を介してユーザ発話を取得すると、機能ブロックとしての発話解析部２０１が、ステップＳ１０２で、当該ユーザ発話を入力発話として解析し認識する。発話解析部２０１は、認識した発話内容をクラス確率演算部２０２と応答生成モジュール群２０５へ引き渡す。
【００３９】
クラス確率演算部２０２は、ステップＳ１０３で、入力発話が分類クラスのそれぞれに属する確率であるクラス確率を演算する。クラス確率演算部２０２は、入力発話がそれぞれの分類クラスに属するクラス確率を演算したら、生成モジュール決定部２０３へその値を引き渡す。
【００４０】
生成モジュール決定部２０３は、ステップＳ１０４で、メモリ２３０から参照テーブル２３１を読み出し、各応答生成モジュールの分類クラスごとの関連確率を取得する。そして、ステップＳ１０５で、応答生成モジュール群２０５の中から１つの応答生成モジュールを決定する。ステップＳ１０５の具体的な処理の流れを、図５を用いて説明する。
【００４１】
図５は、応答生成モジュールの選択処理を示すサブフロー図である。生成モジュール決定部２０３は、ステップＳ１０５１で、まず、過去係数を算出する。過去係数は、それぞれの応答生成モジュールに対して算出され、算出対象となる応答生成モジュールが過去に選択された頻度や直前に選択されたかによって増減する。生成モジュール決定部２０３は、ステップＳ１０５２へ進み、過去係数と関連確率とクラス確率を掛け合わせた選択確率Ｐから、基準値Ｐ０より大きくなるものを探索し、その選択確率に対応する応答生成モジュールを抽出する。
【００４２】
そして、ステップＳ１０５３で、抽出された複数の応答生成モジュールからランダムに１つを選択する。基準値Ｐ０より大きい選択確率Ｐが１つしか存在しない場合には、当該選択確率に対応する応答生成モジュールを選択する。また、基準値Ｐ０より大きい選択確率Ｐが１つも存在しない場合には、最大値の選択確率に対応する応答生成モジュールを選択する。
【００４３】
図４のフローに戻る。応答生成モジュール群２０５の各応答生成モジュールは、ステップＳ１０６で、発話解析部２０１が認識した発話内容を受け、自らの応答類型に合致する応答発話を生成する。なお、ステップＳ１０６は、ステップＳ１０３からステップＳ１０５に並行して実行しても良いし、ステップＳ１０２の前やステップＳ１０５の後に実行しても良い。
【００４４】
生成モジュール決定部２０３は、ステップＳ１０７へ進み、ステップＳ１０５で選択した応答生成モジュールが応答発話を生成しているか否かを確認する。応答発話を生成していない場合（ステップＳ１０７：ＮＯ）は、ステップＳ１０８へ進み、応答生成モジュールを再選択する。例えば上述のように、選択確率が次に大きな値を示す応答生成モジュールを選択する。あるいは、残りの応答生成モジュールからランダムに選択しても良い。
【００４５】
ステップＳ１０５で選択した応答生成モジュールが応答発話を生成していれば（ステップＳ１０７：ＹＥＳ）、ステップＳ１０９へ進み、当該応答発話を取得して出力発話とする。発話制御部２０４は、ステップＳ１１０で、生成モジュール決定部２０３から受け取った出力発話を音声信号に変換して、スピーカ１０２から発声させる。以上により、一連の処理を終了する。再びユーザからの発話があれば、同様に繰り返す。
【００４６】
なお、上述の処理フローでは、すべての応答生成モジュールがそれぞれ応答発話を生成する例を説明したが、生成モジュール決定部２０３によって選択された応答生成モジュールのみが、その選択を受けて応答発話を生成するように構成しても良い。この場合は、ステップＳ１０６の「応答発話の生成」は、ステップＳ１０５の後に実行される。選択されてから選択された応答生成モジュールが応答発話を生成すれば、選択されていない応答生成モジュールが応答発話を生成する無駄を省くことができる。一方で、生成モジュール決定部２０３の選択に先立ってそれぞれの応答生成モジュールが応答発話を生成すれば、迅速な応答が実現される。これらの仕様は、ロボット１００が利用される環境等に応じて決定されると良い。
【００４７】
次に、第２の実施例について説明する。図６は、第２の実施例に係るロボットとのコミュニケーションの例を示す図である。第１の実施例では、ロボット１００が単独でユーザとコミュニケーションが取れるように、主要な機能要素を全て本体に備える構成であったが、第２の実施例におけるロボット１００’は、演算に関する機能要素をサーバ３００に任せる構成を採用する。
【００４８】
例えばユーザがロボット１００’に「今日の天気はどうなるの？」と話しかけると、ロボット１００’のマイクがその音声を取り込む。ロボット１００’は、取り込んだ音声を音声信号に変換して、無線通信によりサーバ３００へ送信する。サーバ３００は、これらの情報を用いて、応答音声（図の例では「晴れのちくもりだよ。」）の音声データを選択して、ロボット１００’へ送信する。ロボット１００’は、受け取った音声データに対応する音声をスピーカ１０２から発する。
【００４９】
図７は、ロボット１００’とサーバ３００のシステム構成図である。第１の実施例で説明した要素と原則的に同じ機能を担う要素には同じ名称を付して、その機能についての説明を省略する。本実施例においては、サーバ３００が、諸々の演算等を実行するコミュニケーション装置の実体として機能する。
【００５０】
ロボット１００’は、ロボット１００と同様にマイク１０１、スピーカ１０２を備える。制御部１９０は、マイク１０１から受け取った音声信号を音声データに変換し、通信部１９１を介して、サーバ３００へ送信する。また、制御部１９０は、通信部１９１を介して受信した音声データを音声信号に変換し、スピーカ１０２から発声させる。通信部１９１は、ネットワークを介してサーバ３００と制御信号や音声データの授受を行うための通信インタフェースであり、例えば無線ＬＡＮユニットである。
【００５１】
サーバ３００は、ロボット１００と同様に制御部２００、発話データベース２１０、知識データベース２２０、メモリ２３０を備える。また、ネットワークを介してロボット１００’と制御信号や音声データの授受を行うための通信インタフェースである通信部２９１を備える。通信部２９０は、例えば無線ＬＡＮユニットである。
【００５２】
発話解析部２０１は、通信部２９１を介して、ユーザ発話を入力発話として受け取る。また、発話制御部２０４は、生成モジュール決定部２０３から受け取った出力発話の音声データを通信部２９１へ引き渡す。
【００５３】
このような第２の実施例のシステム構成であっても、第１の実施例と同様に、ユーザとのコミュニケーションを実現できる。また、演算に関する機能をサーバ３００に集約することで、ロボット１００’の構成を簡易にすることができ、ロボット１００’に高性能な制御チップを設けなくても、円滑なコミュニケーションを実現できる。また、サーバ３００が演算に関する機能を担うのであれば、複数のロボット１００’からの演算要請にシーケンシャルに応えることもできるので、システム全体としての製造コストを軽減することもできる。
【００５４】
次に、第３の実施例について説明する。図８は、第３の実施例に係るスマートフォン７００を示す図である。第１の実施例および第２の実施例においては、キャラクタを具現化したロボット１００、１００’をユーザが対話する相手としたが、第３の実施例においては、スマートフォン７００に表示した映像キャラクタ８００を対話する相手とする。キャラクタをロボットとして実体化すれば、ユーザは、ペットのように感じることができ、より愛着を持てるようになるが、スマートフォン７００でより簡便にキャラクタを表現することもできる。
【００５５】
スマートフォン７００のシステム構成は、図２を用いて説明した第１の実施例におけるロボット１００のシステム構成とほぼ共通する。共通する構成についてはその説明を省略して、異なる構成について以下に説明する。
【００５６】
スマートフォン７００は、表示パネル７１０、マイク７１１、スピーカ７１２を備える。表示パネル７１０は、例えば液晶パネルであり、映像キャラクタ８００を表示する。マイク７１１は、第１の実施例におけるマイク１０１と置き換わる要素であり、ユーザの発話音声を集音する。スピーカ７１２は、第１の実施例におけるスピーカ１０２と置き換わる要素であり、発話制御部２０４で変換された音声信号を受け取って、出力発話を音声出力する。
【００５７】
また、表示パネル７１０には、ユーザの発話である入力発話を文字で示す入力テキストウィンドウ７２１が表示される。発話解析部２０１は、入力発話を文字変換して入力テキストウィンドウ７２１を生成し、表示パネル７１０に表示する。さらに、表示パネルには、選択された応答発話である出力発話を文字で示す出力テキストウィンドウ７２２が表示される。発話制御部２０４は、出力発話を文字変換して出力テキストウィンドウ７２２を生成し、表示パネル７１０に表示する。
【００５８】
このように、入力発話および出力発話を文字情報として表示すれば、視覚的にも対話を確認することができる。また、音声出力をオフにすれば、ユーザは、静かな環境においても、周囲に迷惑をかけることなく、コミュニケーションを楽しむことができる。また、入力発話も音声としてではなく、スマートフォン７００の文字入力機能を用いて文字で与えれば、ユーザは、音声を介さずにコミュニケーションを楽しむことができる。この場合は、入力発話も出力発話も文字情報として処理される。
【００５９】
このようにスマートフォン７００をコミュニケーション装置として機能させれば、コミュニケーション装置としての専用ハードウェアを必要としないので、ユーザはより気軽にキャラクタとの対話を楽しむことができる。また、スマートフォン７００の他のアプリケーションに連動させて映像キャラクタ８００と対話できるように構成すれば、様々な用途に応用できる。なお、スマートフォン７００は、第２の実施例のように、サーバが連携するシステムであっても良い。
【符号の説明】
【００６０】
１００、１００’  ロボット、１０１  マイク、１０２  スピーカ、１１０  頭部、１２０  胴体部、１９０  制御部、１９１  通信部、２００  制御部、２０１  発話解析部、２０２  クラス確率演算部、２０３  生成モジュール決定部、２０４  発話制御部、２０５  応答生成モジュール群、２０５ａ  質問応答生成モジュール、２０５ｂ  連想応答生成モジュール、２０５ｃ  用例応答生成モジュール、２０５ｄ  共感応答生成モジュール、２０５ｅ  模倣応答生成モジュール、２１０  発話データベース、２２０  知識データベース、２３０  メモリ、２３１  参照テーブル、２９１  通信部、７００  スマートフォン、７１０  表示パネル、７１１  マイク、７１２  スピーカ、７２１  入力テキストウィンドウ、７２２  出力テキストウィンドウ、８００  映像キャラクタ
【図１】
2020067585.tif 000003
【図２】
2020067585.tif 000004
【図３】
2020067585.tif 000005
【図４】
2020067585.tif 000006
【図５】
2020067585.tif 000007
【図６】
2020067585.tif 000008
【図７】
2020067585.tif 000009
【図８】
2020067585.tif 000010