(57)【要約】      （修正有）【課題】ユーザが期待する対話をスムーズに実現するサーバ装置を提供する。【解決手段】サーバ装置１８０は、一以上の情報処理端末１７０から受信した音声情報に基づいて、情報処理端末１７０が出力するための発話情報を生成する制御部３５０と、音声情報の発話内容を特定するための複数の発話文字列を保持するための記憶装置３６０とを備える。制御部３５０は、音声情報から文字列を抽出し、記憶装置に保持される少なくとも一の発話文字列について抽出された文字列との類似度を算出し、類似度が所定値未満である場合、抽出した文字列を含む発話情報を生成する。【選択図】図３
2018022086.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置であって、
一以上の情報処理端末と通信するための通信インターフェイスと、
前記通信インターフェイスを介して前記情報処理端末から受信した音声情報に基づいて、前記情報処理端末が出力するための発話情報を生成する制御部と、
前記音声情報の発話内容を特定するための複数の発話文字列を保持するための記憶装置とを備え、
前記制御部は、
前記音声情報から文字列を抽出し、
少なくとも一の前記発話文字列について前記抽出された文字列との類似度を算出し、
前記類似度が所定値未満である場合、前記抽出した文字列を含む発話情報を生成して、当該発話情報を前記情報処理端末に送信する、サーバ装置。
【請求項２】
前記記憶装置は、前記複数の発話文字列と、当該複数の発話文字列に関連付けられる応答文字列とを保持するように構成され、
前記制御部は、前記類似度が前記所定値以上である場合、前記一の発話文字列に関連付けられる応答文字列に基づく発話情報を生成して、当該発話情報を前記情報処理端末に送信するように構成される、請求項１に記載のサーバ装置。
【請求項３】
前記制御部は、前記音声情報から文字列を抽出できなかった場合、抽出できなかったことを示す発話情報を生成して、当該発話情報を前記情報処理端末に送信する、請求項１または２に記載のサーバ装置。
【請求項４】
前記制御部は、
前記一の発話文字列の類似度が前記所定値未満である場合、前記抽出された文字列および前記音声情報のうち少なくとも一方が予め定められた条件を満たすか否かに基づいて前記一の発話文字列の類似度が前記所定値未満である原因を推定し、
前記推定した原因、および当該原因への対策のうち少なくとも一方を含む発話情報を生成して、当該発話情報を前記情報処理端末に送信する、請求項１〜３のいずれか１項に記載のサーバ装置。
【請求項５】
前記制御部は、前記一の発話文字列の類似度が所定値未満である場合、前記抽出された文字列の文字数の、前記一の発話文字列の文字数に対する割合が所定値以下であるときに、前記原因が、前記情報処理端末に発せられた発話速度が遅いことであると推定する、請求項４に記載のサーバ装置。
【請求項６】
前記制御部は、前記抽出された文字列の文字数が予め定められた文字数以下である場合に、前記原因が、前記情報処理端末に発せられた発話速度が遅いことであると推定する、請求項４または５に記載のサーバ装置。
【請求項７】
前記制御部は、
前記音声情報から文字列を抽出できなかった場合、前記音声情報が予め定められた条件を満たすか否かに基づいて前記文字列を抽出できなかった原因を推定し、
前記推定した原因、および当該原因への対策のうち少なくとも一方を含む発話情報を生成して、当該発話情報を前記情報処理端末に送信する、請求項３に記載のサーバ装置。
【請求項８】
前記音声情報は、前記情報処理端末に発せられた音声の音量に応じた波形データを含み、
前記制御部は、
前記波形データの振幅が第１のしきい値以下である場合に、前記原因が、前記情報処理端末に発せられた音声の音量が小さいことであると推定し、
前記波形データの振幅が前記第１のしきい値より大きい第２のしきい値以上である場合に、前記原因が、騒音であると推定する、請求項４〜７のいずれか１項に記載のサーバ装置。
【請求項９】
前記制御部は、前記情報処理端末から受信した音声情報を含む発話情報を生成して、当該発話情報を前記情報処理端末に送信する、請求項１〜８のいずれか１項に記載のサーバ装置。
【請求項１０】
サーバ装置と、音声出力装置および音声入力装置を含む一以上の情報処理端末とを備える制御システムであって、
前記サーバ装置は、
前記情報処理端末と通信するための通信インターフェイスと、
前記通信インターフェイスを介して前記情報処理端末から受信した音声情報に基づいて、前記音声出力装置が出力する発話情報を生成する制御部と、
前記音声情報の発話内容を特定するための複数の発話文字列を保持するための記憶装置とを含み、
前記制御部は、
前記音声情報から文字列を抽出し、
少なくとも一の前記発話文字列について前記抽出された文字列との類似度を算出し、
前記類似度が所定値未満である場合、前記抽出した文字列を含む発話情報を生成して、当該発話情報を前記情報処理端末に送信する、制御システム。
【請求項１１】
前記音声情報は、前記音声入力装置に発せられた音声の音量に応じた波形データを含み、
前記情報処理端末は、
前記音声入力装置から入力される音声情報から、前記波形データが予め定められた条件を満たす区間の音声情報を切り出し、
前記切り出した音声情報を前記サーバ装置に送信する、請求項１０に記載の制御システム。
【請求項１２】
サーバ装置が、一以上の情報処理端末と通信して、前記情報処理端末が出力する発話情報を生成するため方法であって、
前記サーバ装置は、前記情報処理端末に入力される音声情報の発話内容を特定するための複数の発話文字列を保持するための記憶装置を含み、
前記方法は、
前記情報処理端末から前記音声情報を受信するステップと、
前記受信した音声情報から文字列を抽出するステップと、
少なくとも一の前記発話文字列について前記抽出された文字列との類似度を算出するステップと、
前記類似度が所定値以上であるか否かを判断するステップと、
前記類似度が前記所定値未満である場合、前記抽出した文字列を含む発話情報を生成して、当該発話情報を前記情報処理端末に送信するステップとを備える、方法。
【請求項１３】
音声入力装置と、
音声出力装置と、
前記音声入力装置から入力される音声情報に基づいて、前記音声出力装置が出力する発話情報を生成するための制御部と、
前記音声情報の発話内容を特定するための複数の発話文字列と、を保持するための記憶装置とを備え、
前記制御部は、
前記音声情報から文字列を抽出し、
少なくとも一の前記発話文字列について前記抽出された文字列との類似度を算出し、
前記類似度が所定値未満である場合、前記抽出した文字列を含む発話情報を生成して、当該発話情報を前記音声出力装置に出力するように構成される、情報処理端末。
【請求項１４】
前記記憶装置は、前記複数の発話文字列と、当該複数の発話文字列に関連付けられる応答文字列とを保持するように構成され、
前記制御部は、前記類似度が前記所定値以上である場合、前記一の発話文字列に関連付けられる応答文字列に基づく発話情報を生成して、当該発話情報を前記情報処理端末に送信するように構成される、請求項１３に記載の情報処理端末。
【請求項１５】
音声入力装置および音声出力装置を含む情報処理端末のコンピュータによって実行される、前記音声出力装置が出力する発話情報を生成するためのプログラムであって、
前記情報処理端末は、前記音声入力装置から入力される音声情報の発話内容を特定するための複数の発話文字列を保持するための記憶装置とを含み、
前記プログラムは、前記コンピュータに、
前記音声入力装置から前記音声情報を取得するステップと、
前記取得した音声情報から文字列を抽出するステップと、
少なくとも一の前記発話文字列の各々について前記抽出された文字列との類似度を算出するステップと、
前記類似度が所定値以上であるか否かを判断するステップと、
前記類似度が前記所定値未満である場合、前記抽出した文字列を含む発話情報を生成して、当該発話情報を前記音声出力装置に出力するステップとを備える、制御プログラム。
【請求項１６】
サーバ装置であって、
一以上の情報処理端末と通信するための通信インターフェイスと、
前記通信インターフェイスを介して前記情報処理端末から受信した音声情報に基づいて、前記情報処理端末が出力するための発話情報を生成する制御部と、
前記音声情報の発話内容を特定するための複数の発話内容候補を保持するための記憶装置とを備え、
前記制御部は、
前記音声情報に関連する発話内容候補が存在しない場合に、受信した前記音声情報を発話情報として生成し、前記情報処理端末に送信する、サーバ装置。
【請求項１７】
サーバ装置であって、
一以上の情報処理端末と通信するための通信インターフェイスと、
前記通信インターフェイスを介して前記情報処理端末から受信した音声情報に基づいて、前記情報処理端末が出力するための発話情報を生成する制御部と、
前記音声情報に関連付けられる応答内容を保持するための記憶装置とを備え、
前記制御部は、
前記音声情報に関連する応答内容が存在しない場合に、受信した前記音声情報を発話情報として生成し、前記情報処理端末に送信する、サーバ装置。
【請求項１８】
音声入力装置と、
音声出力装置と、
前記音声入力装置から入力される音声情報に基づいて、前記音声出力装置が出力する発話情報を生成するための制御部と、
前記音声情報の発話内容を特定するための複数の発話内容候補を保持するための記憶装置とを備え、
前記制御部は、前記音声情報に関連する発話内容候補が存在しない場合に、前記音声情報を発話情報として生成して、当該発話情報を前記音声出力装置に出力するように構成される、情報処理端末。
【請求項１９】
音声入力装置と、
音声出力装置と、
前記音声入力装置から入力される音声情報に基づいて、前記音声出力装置が出力する発話情報を生成するための制御部と、
前記音声情報に関連付けられる応答内容を保持するための記憶装置とを備え、
前記制御部は、前記音声情報に関連する応答内容が存在しない場合に、前記音声情報を発話情報として生成して、当該発話情報を前記音声出力装置に出力するように構成される、情報処理端末。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、音声対話装置に関し、より特定的には、音声対話装置が出力する発話情報を生成する技術に関する。
【背景技術】
【０００２】
近年、対話機能を有するスマートフォンや電気製品などの情報処理端末が増えている。これら情報処理端末は、当該情報処理端末に対するユーザの音声情報を文字列として音声認識して、当該文字列に対して何らかの応答を行なう。
【０００３】
たとえば、国際公開第２００５／０７６２５８号（特許文献１）は、ユーザと対話するユーザ適応型装置を開示する。このユーザ適応型装置は、ユーザと機器との円滑なインタラクションを実現するために、ユーザの発話速度が目標値よりも低いときは、発話速度を目標値よりも高く設定し、または、ユーザの発話速度が目標値よりも高いときは、発話速度を目標値よりも低く設定する（「発明を実施するための最良の形態」を参照）。
【０００４】
また、国際公開第２００６／０８３０２０号（特許文献２）は、音声認識装置を開示する。この音声認識装置は、音声データを構成する単語の組み合わせを認識し、単語ごとの認識の信頼度を算出する音声認識部を備え、算出された信頼度が所定条件を満たす単語は、当該単語の合成音声を生成し、算出された信頼度が所定の条件を見たさない単語は、音声データから当該単語に対応する部分を抽出し、音声合成、および／または、抽出された音声データの組み合わせによって応答音声を生成する（「要約」参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００５／０７６２５８号
【特許文献２】国際公開第２００６／０８３０２０号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、従来の対話可能な情報処理端末は、ユーザの発話内容が想定内である場合は、当該発話内容に応答する。一方、従来の情報処理端末は、ユーザの発話内容が想定外である場合、「もう一度言ってください」や「分かりません」などと応答する。
【０００７】
しかしながら、このような情報処理端末に接するユーザは、情報処理端末がこのような対応を取る理由を理解できないために、同じ発話内容を繰り返し得る。その結果、ユーザは、再び情報処理端末から「もう一度言ってください」などの回答を受け得る。
【０００８】
ユーザは、上記のように自身が期待する対話を行なうことができない状態が続くと、情報処理端末に対して落胆し、発話をしなくなる。
【０００９】
本開示は、上記のような問題を解決するためになされたものであって、ある局面における目的は、ユーザが期待する対話をスムーズに実現するサーバ装置、および当該サーバ装置の制御方法を提供することである。他の局面における目的は、ユーザが期待する対話をスムーズに実現する情報処理端末、および当該情報処理端末に使用される制御プログラムを提供することである。さらに他の局面における目的は、ユーザが期待する対話をスムーズに実現する制御システムを提供することである。
【課題を解決するための手段】
【００１０】
ある実施形態に従うサーバ装置は、一以上の情報処理端末の各々と通信するための通信インターフェイスと、通信インターフェイスを介して情報処理端末から受信した音声情報に基づいて、情報処理端末が出力するための発話情報を生成する制御部と、音声情報の発話内容を特定するための複数の発話文字列を保持するための記憶装置とを備える。制御部は、音声情報から文字列を抽出し、少なくとも一の発話文字列について抽出された文字列との類似度を算出し、類似度が所定値未満である場合、抽出した文字列を含む発話情報を生成して、当該発話情報を情報処理端末に送信する。
【発明の効果】
【００１１】
ある実施形態に従うサーバ装置は、ユーザとのスムーズな対話を実現する。そのため、ユーザは、発話対象と自然な対話を楽しみ、発話対象に対して愛着を持ちやすくなる。
【００１２】
この発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１３】
【図１】ある実施形態に従うユーザと対話するための制御システムについて説明する図である。
【図２】実施形態１に従う制御システムの構成例について説明する図である。
【図３】実施形態１に従う情報処理端末およびサーバのハードウェア構成の一例について説明する図である。
【図４】実施形態１に従う応答テーブルについて説明する図である。
【図５】情報処理端末による音声区間検出、およびサーバによる音声認識について説明する図である。
【図６】他の例に従うサーバによる音声認識について説明する図である。
【図７】実施形態１に従うサーバがユーザに対する発話情報を生成するためのフローチャートである。
【図８】実施形態２に従うサーバがユーザに対する発話情報を生成するためのフローチャートである。
【図９】上記一連の制御を実現するための実施形態２に従うＣＰＵの機能構成を説明する機能ブロック図である。
【図１０】実施形態３に従う情報処理端末の構成例について説明する図である。
【発明を実施するための形態】
【００１４】
以下、この発明の実施形態について図面を参照しながら詳細に説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１５】
［技術思想］
図１は、ある実施形態に従うユーザと対話するための制御システムについて説明する図である。分図（Ａ）において、ユーザ１６０は、発話対象である情報処理端末１７０に発話する。情報処理端末１７０は、ユーザ１６０の発話した音声を音声情報に変換して、サーバ１８０に送信する。サーバ１８０は、音声情報に基づいて情報処理端末１７０がユーザ１６０に対して発話するための発話情報を生成して情報処理端末１７０に送信する。ある局面において、発話情報は、音声合成された情報である。情報処理端末は、一例として、モバイルコンピュータ、タブレットコンピュータ、モバイル装置（例えば、スマートフォンやＰＤＡ）、その他の適切な処理能力、通信能力および音声入出力機能を有する装置であり得る。
【００１６】
より具体的には、サーバ１８０は、応答テーブル１９０を含む。応答テーブル１９０は、ユーザ１６０の情報処理端末１７０に対する複数の発話内容候補の文字列と、当該発話内容候補の各々に関連付けて、ユーザに対して情報処理端末１７０が発話する応答内容の文字列とを保持する。サーバ１８０は、情報処理端末１７０から受信した音声情報から、応答テーブル１９０に格納される発話内容候補を特定する。一例として、サーバ１８０は、情報処理端末１７０から受信した音声情報が発話内容候補「おはよう」に対応する音声情報であると特定する。この場合、サーバ１８０は、発話内容候補「おはよう」に関連付けられた応答内容「おはよう。今日も一日がんばろう」を音声合成した発話情報を生成して情報処理端末１７０に送信する。すなわち、サーバ１８０は、想定されるユーザの発話内容に対する発話情報を生成する。
【００１７】
しかしながら、ある局面において、ユーザの発話内容がサーバ１８０にとって想定外の場合もあり得る。以下、この場合についてのサーバ１８０の動作例について説明する。
【００１８】
分図（Ａ）を参照して、ステップＳ１１０において、ユーザ１６０は、情報処理端末１７０に対して「おはよう」と発話する。ステップＳ１１５において、情報処理端末１７０は、ユーザの発話した音声を音声情報に変換してサーバ１８０に送信する。
【００１９】
ステップＳ１２０において、サーバ１８０は、受信した音声情報から文字列を抽出する音声認識処理を行い、「よう」の文字列を抽出する。ステップＳ１２５において、サーバ１８０は、抽出した「よう」の文字列と、応答テーブル１９０に格納される複数の発話内容候補の文字列とを比較し、抽出した文字列との類似度が所定値以上の発話内容候補がないと判断する。この場合、サーバ１８０は、音声情報に関連する発話内容候補が存在しないと判断する。換言すれば、サーバ１８０は、ユーザの発話内容を特定できなかったと判断する。なお、この場合、サーバ１８０は、発話内容候補を特定できなかったことに応じて、音声情報に関連する応答内容も存在しないと判断する。
【００２０】
ステップＳ１３０において、サーバ１８０は、音声情報に関連する発話内容候補、または音声情報に関連する応答内容が存在しないと判断したことに応じて、ユーザの発話内容を特定できなかった旨をユーザに示唆する発話情報を生成して情報処理端末１７０に送信する。ある局面において、サーバ１８０は、抽出した「よう」の文字列を含む文字列を音声合成した発話情報を生成する。さらに他の局面において、サーバ１８０は、ユーザ１６０の発話内容が抽出した「よう」の文字列であるかを問い合わせる発話情報を生成し得る。さらに他の局面において、サーバ１８０は、音声情報に関連する発話内容候補、または音声情報に関連する応答内容が存在しないと判断したことに応じて、受信した音声情報（すなわち、発話者の音声データ）を発話情報として生成し得る。
【００２１】
ステップＳ１３５において、情報処理端末１７０は、サーバ１８０から受信した発話情報に基づき、ユーザ１６０に対して発話（たとえば、『「よう」っていったかな？』）する。
【００２２】
上記によれば、ユーザ１６０は、情報処理端末１７０がユーザ１６０の発話内容を「おはよう」ではなく「よう」と認識したと理解できる（なお、実際に音声認識を行なうのは、サーバ１８０である）。そのため、ユーザ１６０は、どのように話せばユーザ１６０が意図する発話内容を情報処理端末１７０が理解できるかを学習できる。その結果、ユーザ１６０は、情報処理端末１７０と円滑な対話を楽しむことができるようになる。
【００２３】
分図（Ｂ）は、他の局面における、ユーザの発話内容がサーバ１８０にとって想定外である場合のサーバ１８０の動作について説明する図である。なお、分図（Ａ）と同一符号を付している部分については同じであるため、その部分についての説明は繰り返さない。
【００２４】
ステップＳ１４０において、サーバ１８０は、受信した音声情報から文字列を抽出できなかったとする抽出結果（音声認識結果）を得る。ステップＳ１４５において、サーバ１８０は、情報処理端末１７０から受信した音声情報のゲイン（情報処理端末１７０に入力される音量）が、予め定められたゲイン以上であると判断する。これにより、サーバ１８０は、音声情報から文字列を抽出できなかった原因が、情報処理端末１７０の周囲がうるさいこと、すなわち、騒音があったことだと推定する。
【００２５】
ステップＳ１５０において、サーバ１８０は、音声情報から文字列を抽出できなかったこと、および、上記推定した原因を含む発話情報を生成して情報処理端末１７０に送信する。
【００２６】
ステップＳ１５５において、情報処理端末１７０は、サーバ１８０から受信した発話情報に基づき、ユーザ１６０に対して「上手く聞こえなかったよ。周りがうるさいかも」と発話する。「上手く聞こえなかったよ」が音声情報から文字列を抽出できなかったことを表し、「周りがうるさいかも」が上記推定した原因を表す。
【００２７】
上記によれば、ユーザ１６０は、情報処理端末１７０がユーザ１６０の発話内容を認識していないと理解できる（なお、実際に音声認識を行なうのは、サーバ１８０である）。さらに、ユーザ１６０は、情報処理端末１７０がユーザ１６０の発話内容を認識できない理由が、周りがうるさいことであると理解する。ユーザ１６０は、静かな場所で情報処理端末１７０に対して発話する、または情報処理端末１７０に対する発話の音量を大きくする、などの対策を講じる。その結果、サーバ１８０は、ユーザが情報処理端末１７０に対して発話する内容を正確に認識できるようになる。これにより、ユーザ１６０は、情報処理端末１７０と円滑な対話を楽しむことができるようになる。以下、これらの情報処理端末１７０およびサーバ１８０とから構成される制御システムの構成および制御について説明する。
【００２８】
［実施形態１］
（制御システム２００の構成）
図２は、実施形態１に従う制御システム２００の構成例について説明する図である。図２を参照して、制御システム２００は、情報処理端末１７０と、ネットワーク２１０と、サーバ１８０とを備える。情報処理端末１７０とサーバ１８０とは、ネットワーク２１０を介して互いに通信可能に構成される。
【００２９】
ある局面において、ネットワーク２１０は、ＬＡＮ（Local  Area  Network）であり得る。他の局面において、ネットワーク２１０は、ＷＡＮ（Wide  Area  Network）であり得る。
【００３０】
（制御システム２００の概略動作）
情報処理端末１７０は、情報処理端末１７０の周囲の音声を、後述するマイク３３０によって電気信号としての音声情報に変換する。ユーザ１６０が情報処理端末１７０に対して発話すると、情報処理端末１７０は、ユーザ１６０が発話する発話区間の音声情報を切り出して、サーバ１８０に送信する。情報処理端末１７０によるユーザ１６０の発話区間の検出方法については後述する。
【００３１】
サーバ１８０は、情報処理端末１７０から入力された音声情報から文字列を抽出して、当該文字列に対する応答内容を音声合成した発話情報を生成する。サーバ１８０は、生成した発話情報を情報処理端末１７０に送信する。
【００３２】
情報処理端末１７０は、サーバ１８０から受信した発話情報を、内蔵する音声出力装置（たとえば、スピーカ）によって音声に変換して出力する。制御システム２００は、これら一連の処理によって、ユーザと対話する。
【００３３】
（情報処理端末１７０およびサーバ１８０の構成例）
図３は、実施形態１に従う情報処理端末１７０およびサーバ１８０のハードウェア構成の一例について説明する図である。図３を参照して、情報処理端末１７０は、制御部３１０と、スピーカ３２０と、マイク３３０と、通信インターフェイス（Ｉ／Ｆ）３４０とを含む。
【００３４】
制御部３１０は、情報処理端末１７０の全体動作を制御する。制御部３１０は、ＣＰＵ（Central  Processor  Unit）３１２と、ＲＡＭ（Random  Access  Memory）３１４と、ＲＯＭ（Read  Only  Memory）３１６とを含む。
【００３５】
ＣＰＵ３１２は、ＲＯＭ３１４に格納される制御プログラムを読み出して実行することで、情報処理端末１７０の各種処理を実現する。
【００３６】
ＲＡＭ３１６は、典型的には、ＤＲＡＭ（Dynamic  Random  Access  Memory）などであり、ＣＰＵ３１２が制御プログラムを動作するために必要なデータを一時的に記憶するワーキングメモリとして機能する。
【００３７】
ＲＯＭ３１４は、典型的には、フラッシュメモリなどであり、ＣＰＵ３１２で実行される制御プログラムや、情報処理端末１７０の動作にかかる各種設定情報を記憶する。
【００３８】
スピーカ３２０は、サーバ１８０から入力された音声情報を音声に変換して出力する。他の局面において、情報処理端末１７０は、スピーカ３２０に替えて、またはスピーカ３２０に加えて、ヘッドフォン，イヤホンその他の音声出力装置を含む構成であってもよい。
【００３９】
マイク３３０は、情報処理端末１７０の周囲の音声を電気信号としての音声情報に変換する。情報処理端末１７０は、マイク３３０によって情報処理端末１７０の周囲の音声情報を取得する。音声情報は、情報処理端末１７０の周囲の音声の音量に応じた波形データを含む。ある局面において、情報処理端末１７０は、スイッチ（図示しない）を有し、当該スイッチを押下されてから所定時間（たとえば、１分間）、マイク３３０によって音声情報を取得する。
【００４０】
通信インターフェイス３４０は、後述するサーバ１８０の通信インターフェイス３７０と通信し、各種信号のやりとりを行なう。
【００４１】
サーバ１８０は、制御部３５０と、記憶装置３６０と、通信インターフェイス（Ｉ／Ｆ）３７０とを含む。制御部３５０は、サーバ１８０の動作を制御する。制御部３５０は、ＣＰＵ３５２と、ＲＡＭ３５４と、ＲＯＭ３５６とを含む。ＣＰＵ３５２は、ＲＯＭ３５６に格納される制御プログラムを読み出して実行することで、サーバ１８０の各種処理を実現する。
【００４２】
ＲＡＭ３５４は、ＣＰＵ３５２が制御プログラムを動作するために必要なデータを一時的に記憶するワーキングメモリとして機能する。ＲＯＭ３５６は、ＣＰＵ３５２で実行される制御プログラムや、サーバ１８０の動作にかかる各種設定情報を記憶する。
【００４３】
記憶装置３６０は、典型的には、ハードディスクドライブなどであり、後述する応答テーブル３６２と、音響モデル３６４とを記憶する。
【００４４】
（応答テーブル）
図４は、実施形態１に従う応答テーブル３６２について説明する図である。図４を参照して、応答テーブル３６２は、複数の発話内容候補４１０と、複数の応答内容４２０を保持する。複数の発話内容候補４１０の各々は、応答内容４２０の各々と関連付けられる。発話内容候補４１０は、ユーザの情報処理端末１７０に対する発話内容を特定するための文字列である。応答内容４２０は、情報処理端末１７０がユーザに対して発話する内容の文字列である。
【００４５】
一例として、サーバ１８０は、ユーザの情報処理端末１７０に対する発話内容が「こんにちは」であると認識した場合、発話内容候補「こんにちは」に関連付けられた応答内容「こんにちは。もうすぐお昼だね」を音声合成した発話情報を情報処理端末１７０に送信する。
【００４６】
なお、図４に示される例において、発話内容候補４１０と、応答内容４２０との関係が一対一対応の関係にあるが、上記関係はこれに限られない。他の局面において、複数の発話内容候補に対して、１つの応答内容が関連付けられ得る。たとえば、「おはよう」および「おはようございます」等の、朝の挨拶の発話内容候補を複数格納し、当該朝の挨拶のカテゴリに含まれる発話内容候補に対して、一の応答内容「おはようございます」が格納され得る。さらに他の局面において、１つの発話内容候補に対して、複数の応答内容が関連付けられ得る。この場合、サーバ１８０は、複数の応答内容から１の応答内容を選定する。サーバ１８０は、ランダムで１の応答内容を選定してもよいし、予め定められた優先順位に従って選定してもよい。
【００４７】
（音声区間検出および音声認識）
図５は、情報処理端末１７０による音声区間検出、およびサーバ１８０による音声認識について説明する図である。
【００４８】
分図（Ａ）は、情報処理端末１７０が、マイク３３０によって取得する情報処理端末１７０の周囲の音声情報を表す。縦軸は、マイク３３０が取得する音声の音量に応じた振幅である。振幅が「０」のとき、マイク３３０が取得する音声の音量が最も小さく、振幅が「１」または「−１」のとき、マイク３３０が取得する音声の音量が最も大きいことを表す。
【００４９】
情報処理端末１７０は、マイク３３０が取得する音声情報から、ユーザの発話区間を検出し、当該発話区間の音声情報を切り出してサーバ１８０に送信する。情報処理端末１７０は、マイク３３０が取得する音声情報のうち、当該音声情報の波形データが予め定められた条件を満たす区間の音声情報を切り出す。ある局面において、情報処理端末１７０は、音声情報の振幅の絶対値がしきい値以上であるｔ１〜ｔ２の区間を、ユーザの発話区間として検出する。他の局面において、情報処理端末１７０は、音声情報の振幅の絶対値がしきい値以上である区間の前後に、予め定められた期間（マージン）を設けたｔ３〜ｔ４の区間を、ユーザの発話区間として検出する。
【００５０】
サーバ１８０は、情報処理端末１７０が切り出した音声情報を受信して、当該音声情報から文字列を抽出する。一例として、サーバ１８０は、音声情報の先頭から所定時間単位（たとえば、１０ｍｓｅｃ単位）で区切られる波形データと、記憶装置３６０に格納される音響モデル３６４とを照合して、音声情報から文字列を抽出する。音響モデル３６４は、母音や子音などの音素ごとに音声の特徴量を記憶する。一例として、サーバ１８０は、隠れマルコフモデルに基づき、音声情報と音響モデル３６４とを照合する。
【００５１】
分図（Ａ）の例において、ユーザは情報処理端末１７０に対して「おはよう」と発話する。サーバ１８０は、上記の音声認識処理を行い、音声情報から「おはよう」の文字列を正しく抽出する。
【００５２】
この場合、サーバ１８０は、応答テーブル３６２に保持される複数の発話内容候補４１０の文字列の中から抽出した文字列「おはよう」に最も類似する、発話内容候補「おはよう」を特定する。
【００５３】
サーバ１８０は、発話内容候補「おはよう」に関連付けられる応答内容４２０として「おはよう。今日も一日がんばろう」を音声合成した発話情報を生成する。サーバ１８０は、生成した発話情報を情報処理端末１７０に送信する。
【００５４】
一方、分図（Ｂ）の例において、ユーザは情報処理端末１７０に対して「おはよう」と発話したものの、サーバ１８０は、音声情報から「ぱんよう」の文字列を誤って抽出する。これは、音声情報におけるｔ５〜ｔ６の区間、すなわち、「おはよう」の「おは」に対応する区間における振幅が小さい、すなわちユーザの音声の音量が小さいことに起因する。
【００５５】
ある局面において、サーバ１８０は、抽出した文字列「ぱんよう」と、応答テーブル３６２に保持される複数の発話内容候補４１０の文字列とを比較して、「ぱんよう」に類似する発話内容候補４１０がないと判断する。
【００５６】
これに応じて、サーバ１８０は、ユーザの情報処理端末１７０に対する発話内容が抽出結果（音声認識結果）である「ぱんよう」であるかを問いかける発話情報（たとえば、『「ぱんよう」って言ったかな？』）を生成する。サーバ１８０は、生成した発話情報を情報処理端末１７０に送信する。
【００５７】
図６は、他の例に従うサーバ１８０による音声認識について説明する図である。図６の分図（Ａ）および（Ｂ）において、ユーザは情報処理端末１７０に対して「こんにちは」と発話する。
【００５８】
分図（Ａ）の例において、サーバ１８０は、音声認識処理を行い、音声情報から「こんにちは」の文字列を正しく抽出する。一方、分図（Ｂ）の例において、サーバ１８０は、音声情報から「いちは」の文字列を誤って抽出する。これは、音声情報におけるｔ７〜ｔ８の区間、すなわち、「こんにちは」の「こんに」に対応する区間に、マイク３３０付近のノイズ（騒音）が含まれていることに起因する。
【００５９】
この場合も、サーバ１８０は、抽出した文字列「いちは」に類似する発話内容候補４１０がないと判断すると、ユーザの発話内容が抽出結果「いちは」であるかを問いかける発話情報を生成して情報処理端末１７０に送信する。次に、図７を用いてサーバ１８０において発話情報を生成する処理を説明する。
【００６０】
（応答制御）
図７は、実施形態１に従うサーバ１８０が発話情報を生成するためのフローチャートである。図７に示される処理は、ＣＰＵ３５２がＲＯＭ３５６に格納される制御プログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子その他のハードウェアによって実行されてもよい。これら一連の処理は、ユーザが情報処理端末に対して発話することにより実行される。なお、これらの条件は後述する図８のフローチャートにおいても同様とする。
【００６１】
ステップＳ７１０において、ＣＰＵ３５２は、通信インターフェイス３７０を介して情報処理端末１７０から音声情報を取得する。
【００６２】
ステップＳ７２０において、ＣＰＵ３５２は、取得した音声情報に対して音声認識処理を実行する。一例として、ＣＰＵ３５２は、取得した音声情報と、音響モデル３６４とを隠れマルコフモデルにより照合して、音声情報から文字列を抽出する。
【００６３】
ステップＳ７３０において、ＣＰＵ３５２は、音声情報から文字列を抽出できたか否かを判断する。ＣＰＵ３５２は、音声情報から文字列を抽出できた場合（ステップＳ７３０においてＹＥＳ）、処理をステップＳ７３５に進める。そうでない場合（ステップＳ７３０においてＮＯ）、ＣＰＵ３５２は、処理をステップＳ７７０に進める。
【００６４】
ステップＳ７３５において、ＣＰＵ３５２は、応答テーブル３６２に保持される複数の発話内容候補４１０の各々について、抽出した文字列との類似度を算出して、抽出した文字列に最も類似する発話内容候補を特定する。一例として、ＣＰＵ３５２は、複数の発話内容候補４１０の中から、抽出した文字列とのレーベンシュタイン距離が最も短い発話内容候補４１０を特定する。なお、他の局面において、ＣＰＵ３５２は、Ｄａｍｅｒａｕ−Ｌｅｖｅｎｓｈｔｅｉｎ距離、ハミング距離、Ｊａｒｏ−Ｗｉｎｋｌｅｒ距離、その他の２つの文字列間の類似度を表す指標を用い得る。
【００６５】
なお、他の局面において、ＣＰＵ３５２は、音声情報から文字列を抽出せずに、音声情報の波形データから発話内容を特定してもよい。この場合、記憶装置３６０には、発話応答候補に対応する波形データを予め格納される。ＣＰＵ３５２は、入力される音声情報の波形データと、記憶装置３６０に格納される複数の波形データとを比較して、所定の類似度以上である波形データ、すなわち、発話応答候補を特定し得る。
【００６６】
ステップＳ７４０において、ＣＰＵ３５２は、抽出した文字列と、特定した発話内容候補４１０の文字列との類似度が、所定値以上であるか否かを判断する。ある局面において、ＣＰＵ３５２は、抽出した文字列と、特定した発話内容候補４１０の文字列とのレーベンシュタイン距離が所定距離（たとえば、２）以下であるかを判断する。他の局面において、ＣＰＵ３５２は、抽出した文字列と、特定した発話内容候補４１０の文字列とのレーベンシュタイン距離の、抽出した文字列の文字数に対する割合が所定値以上（たとえば、８０％以上）であるか否かを判断する。
【００６７】
ＣＰＵ３５２は、ＣＰＵ３５２は、抽出した文字列と、特定した発話内容候補４１０の文字列との類似度が、所定値以上であると判断した場合（ステップＳ７４０においてＹＥＳ）、処理をステップＳ７５０に進める。そうでない場合（ステップＳ７４０においてＮＯ）、ＣＰＵ３５２は、処理をステップＳ７６０に進める。
【００６８】
ステップＳ７５０において、ＣＰＵ３５２は、特定した発話内容候補４１０に関連付けられる応答内容４２０を音声合成した発話情報を生成する。
【００６９】
ステップＳ７６０において、ＣＰＵ３５２は、抽出した文字列を含む発話情報を生成する。他の局面において、ＣＰＵ３５２は、ユーザが情報処理端末１７０に対して発話した内容が、抽出した文字列であるかを問い合わせる発話情報を生成する。
【００７０】
ステップＳ７７０において、ＣＰＵ３５２は、音声情報から文字列を抽出できなかったことに応じて、当該文字列を抽出できなかったことを示す発話情報（たとえば、「上手く聞こえなかったよ」）を生成する。
【００７１】
ステップＳ７８０において、ＣＰＵ３５２は、生成した発話情報を情報処理端末１７０に送信して、一連の処理を終了する。
【００７２】
上記によれば、実施形態１に従う制御システム２００のユーザは、ユーザの意図する発話内容が制御システム２００に伝わっていない場合に、ユーザの発話内容が制御システム２００にどのように認識されているかを理解できる。そのため、ユーザは、どのように話せばユーザが意図する内容が制御システム２００に認識されるかを学習できる。その結果、ユーザは、情報処理端末１７０との円滑な対話を楽しむことができるようになり、情報処理端末１７０に対して愛着を持ちやすくなる。
【００７３】
なお、上記の例において、サーバ１８０は、音声合成した発話情報を情報処理端末１７０に送信するが、他の局面において、音声合成前のテキストデータを発話情報として情報処理端末１７０に送信してもよい。この場合、情報処理端末１７０は、サーバ１８０から受信したテキストデータを音声合成する機能を有する。情報処理端末１７０は、音声合成した情報を、スピーカ３２０によって音声に変換して出力する。
【００７４】
また、他の局面において、サーバ１８０は、ステップＳ７６０およびステップＳ７７０において、ステップＳ７１０で取得した音声情報をさらに含む発話情報を生成してもよい。一例として、ステップＳ７６０において、サーバ１８０は、『「よう」って言ったかな？ぼくにはこんな風に聞こえたよ。＜音声情報＞』の発話情報を生成する。この＜音声情報＞の部分は、マイク３３０が取得する音声に対応する。これにより、ユーザは、自身の声が、どのようにマイク３３０に入力されているのかを、直感的に理解できる。その結果、ユーザは、どのように話せば自身の意図する内容が情報処理端末１７０（およびサーバ１８０）に認識されるかを理解できる。
【００７５】
［実施形態２］
実施形態１に従うサーバは、音声情報から文字列を抽出できなかった場合、および音声情報から抽出した文字列に類似する発話内容候補が無かった場合、に抽出結果（抽出できなかったことを含む）を含む発話情報を生成する。
【００７６】
これに対して、実施形態２に従うサーバは、これらの場合に、上記の場合に至った原因を推定し、抽出結果に加えて推定した原因を含む発話情報を生成する。これにより、実施形態２に従う制御システム２００のユーザは、どのように話せばユーザが意図する内容が制御システム２００に認識されるかを、より理解できる。以下、実施形態２に従うサーバ１８０による発話情報の生成制御について説明する。なお、実施形態２に従うサーバ１８０の基本構成は、実施形態１に従うサーバ１８０の基本構成と略同じであるため、相違する点について説明する。
【００７７】
図８は、実施形態２に従うサーバ１８０が発話情報を生成するためのフローチャートである。なお、図７と同一符号を付している部分については同じ処理であるため、その部分についての説明は繰り返さない。
【００７８】
ステップＳ８１０において、ＣＰＵ３５２は、ステップＳ７３０において音声情報から文字列を抽出できなかったことに応じて、音声情報が示す波形データの振幅、換言すれば、マイク３３０に入力される音声の音量Ｖが、どの程度であるかを判断する。より具体的には、ＣＰＵ３５２は、音量Ｖが、第１の音量（振幅）Ｖｔｈ１以下であるか、第１の音量Ｖｔｈ１よりも大きい第２の音量Ｖｔｈ２以上であるか、第１の音量Ｖｔｈ１より大きく第２の音量Ｖｔｈ２未満の範囲であるかを判断する。
【００７９】
ある局面において、ＣＰＵ３５２は、音声情報の平均音量（振幅）がどの程度であるかを判断し得る。他の局面において、ＣＰＵ３５２は、音声情報における最小音量が第１の音量Ｖｔｈ１以下であるか、音声情報における最大音量が第２の音量Ｖｔｈ２以上であるかを判断し得る。この場合、ＣＰＵ３５２は、音声情報における最小音量が第１の音量Ｖｔｈ１より大きくて、最大音量が第２の音量Ｖｔｈ２未満である場合に、音量Ｖが第１の音量Ｖｔｈ１より大きく第２の音量Ｖｔｈ２未満の範囲にあると判断し得る。
【００８０】
ＣＰＵ３５２は、音量Ｖが第１の音量Ｖｔｈ１以下であると判断した場合（ステップＳ８１０においてＶ≦Ｖｔｈ１）、処理をステップＳ８１５に進める。ステップＳ８１５において、ＣＰＵ３５２は、音声情報から文字列を抽出できなかった原因を、マイク３３０に入力される音声の音量が小さいことであると推定する。
【００８１】
ＣＰＵ３５２は、音量Ｖが第２の音量Ｖｔｈ２以上であると判断した場合（ステップＳ８１０においてＶ≧Ｖｔｈ２）、処理をステップＳ８２０に進める。ステップＳ８２０において、ＣＰＵ３５２は、音声情報から文字列を抽出できなかった原因を、マイク３３０の周囲の騒音であると推定する。
【００８２】
ステップＳ８３０において、ＣＰＵ３５２は、音声情報から文字列を抽出できなかったことを示す抽出結果（たとえば、「上手く聞こえなかったよ」）および、抽出できなかった原因（たとえば、「声が小さいかも」、「周りがうるさいかも」）を含む発話情報を生成する。
【００８３】
ＣＰＵ３５２は、音量Ｖが第１の音量Ｖｔｈ１より大きく第２の音量Ｖｔｈ２未満であると判断した場合（ステップＳ８１０において、Ｖｔｈ１＜Ｖ＜Ｖｔｈ２）、処理をステップＳ８２５に進める。ステップＳ８２５において、ＣＰＵ３５２は、音声情報から文字列を抽出できなかったことを示す抽出結果を含む発話情報を生成する。
【００８４】
ステップＳ８３５において、音声情報から抽出した文字列の文字数がしきい値（たとえば、２文字）以上であるか否かを判断する。ＣＰＵ３５２は、抽出した文字列の文字数がしきい値以上であると判断した場合（ステップＳ８３５においてＹＥＳ）、処理をステップＳ８４５に進める。そうでない場合（ステップＳ８３５においてＮＯ）、ＣＰＵ３５２は、処理をステップＳ８６５に進める。
【００８５】
ステップＳ８４５において、ＣＰＵ３５２は、抽出した文字列の文字数の、ステップＳ７３５で特定した発話内容候補４１０の文字数に対する割合Ｐが、どの程度であるかを判断する。より具体的には、ＣＰＵ３５２は、割合Ｐが第１の割合Ｐｔｈ１（たとえば、２０％）以下であるか、第１の割合よりも大きい第２の割合Ｐｔｈ２（たとえば、２００％）以上であるか、第１の割合Ｐｔｈ１より大きく第２の割合Ｐｔｈ２未満であるかを判断する。他の局面において、ＣＰＵ３５２は、抽出した文字列の文字数に応じて、当該所定値を変動させてもよい。一例として、抽出した文字列の文字数が２文字である場合、第２の割合Ｐｔｈ２を３００％と設定し、抽出した文字列の文字数が５文字以上の場合に、第２の割合Ｐｔｈ２を２００％と設定し得る。
【００８６】
ＣＰＵ３５２は、割合Ｐが第１の割合Ｐｔｈ１以下である場合（ステップＳ８４５において、Ｐ≦Ｐｔｈ１）、処理をステップＳ８５０に進める。ステップＳ８５０において、ＣＰＵ３５２は、抽出した文字列に類似する発話内容候補４１０が無かった原因を、ユーザの情報処理端末１７０に対する発話速度が遅いためであると推定する。その理由は、情報処理端末１７０によって実行される音声区間検出の特性上、ユーザの情報処理端末１７０に対する発話速度が遅いと、情報処理端末１７０は、ユーザの発話内容を単語単位ではなく、単語を構成する文字または文字列で認識しやすくなるためである。一例として、ユーザが情報処理端末１７０に対して「おーはーよーう」とゆっくり発話した場合、情報処理端末１７０は「おは」「よう」に対応する音声情報を個別に検出して、サーバ１８０に送信し得る。ステップＳ８３０において、ＣＰＵ３５２は、抽出した文字列を表す抽出結果（たとえば、『「よう」って言ったかな？』）、および抽出した文字列に類似する発話内容候補４１０が無かった原因（たとえば、「話す速度がゆっくりかも」）を含む発話情報を生成する。
【００８７】
ＣＰＵ３５２は、割合Ｐが第２の割合Ｐｔｈ２以上である場合（ステップＳ８４５においてＰｔｈ２≦Ｐ）、処理をステップＳ８５５に進める。ステップＳ８５５において、ＣＰＵ３５２は、抽出した文字列に類似する発話内容候補４１０が無かった原因を、音声情報がマイク３３０に向かって意図的に発せられた音声ではないと判断する。一例として、マイク３３０がテレビのスピーカが出力する音声を取得する場合などが考えられる。ステップＳ８６０において、ＣＰＵ３５２は、発話情報を生成することなく、一連の処理を終了する。
【００８８】
ＣＰＵ３５２は、割合Ｐが第１の割合Ｐｔｈ１より大きく第２の割合Ｐｔｈ２未満であると判断した場合（ステップＳ８４５において、Ｐｔｈ１＜Ｐ＜Ｐｔｈ２）、処理をステップＳ８２５に進める。ステップＳ８２５において、ＣＰＵ３５２は、抽出した文字列を表す抽出結果を含む発話情報を生成する。
【００８９】
ステップＳ８６５において、ＣＰＵ３５２は、音量Ｖが、第１の音量（振幅）Ｖｔｈ１以下であるか、第２の音量Ｖｔｈ２以上であるか、第１の音量Ｖｔｈ１より大きく第２の音量Ｖｔｈ２未満の範囲であるかを判断する。
【００９０】
ＣＰＵ３５２は、音量Ｖが第１の音量Ｖｔｈ１以下であると判断した場合（ステップＳ８６５においてＶ≦Ｖｔｈ１）、処理をステップＳ８１５に進める。ＣＰＵ３５２は、音量Ｖが第２の音量以上であると判断した場合（ステップＳ８６５においてＶ≧Ｖｔｈ２）、処理をステップＳ８２０に進める。
【００９１】
ＣＰＵ３５２は、音量Ｖが第１の音量Ｖｔｈ１より大きく第２の音量Ｖｔｈ２未満であると判断した場合（ステップＳ８６５において、Ｖｔｈ１＜Ｖ＜Ｖｔｈ２）、処理をステップＳ８５０に進める。
【００９２】
上記によれば、ユーザは、自身の意図する発話内容が制御システム２００に伝わっていないことを理解するとともに、その原因を知ることができる。ユーザは、当該原因に応じて情報処理端末１７０に対して発話する。たとえば、声が小さいことが原因である場合、ユーザは、情報処理端末１７０に対してより大きな声で発話する。たとえば、騒音が原因である場合、ユーザは、より静かな環境で情報処理端末１７０に対して発話する。その結果、サーバ１８０は、ユーザが情報処理端末１７０に対して発話する内容を正確に認識できるようになる。これにより、ユーザは、情報処理端末１７０とのより円滑な対話を楽しむことができる。
【００９３】
なお、上記の例において、サーバ１８０は、音声情報から文字列を抽出できなかった原因、または音声情報から抽出した文字列に類似する発話内容候補が無かった原因をユーザにフィードバックする構成であるが、フィードバックする内容はこれに限られない。他の局面において、サーバ１８０は、推定した原因への対策をユーザにフィードバックするように発話情報を生成してもよい。たとえば、サーバ１８０は、上記原因が声が小さいことであると推定した場合、当該原因への対策として「もう少し大きな声で話してみて」などを含む発話情報を生成してもよい。さらに他の局面において、サーバ１８０は、推定した原因および当該推定した原因への対策のどちらも含む発話情報（たとえば、「上手く聞こえなかったよ。周りが少しうるさいかも。もう少し大きな声で話してみて」）を生成してもよい。
【００９４】
図９は、上記一連の制御を実現するための実施形態２に従うＣＰＵ３１２およびＣＰＵ３５２の機能構成を説明する機能ブロック図である。
【００９５】
情報処理端末１７０のＣＰＵ３１２は、主な機能構成として、音声受付モジュール９１０と、音声切り出しモジュール９２０と、音声出力モジュール９３０とを備える。
【００９６】
音声受付モジュール９１０は、マイク３３０によって音声を電気信号に変換された音声情報の入力を受け付ける。音声切り出しモジュール９２０は、音声受付モジュール９１０に入力される音声情報をモニタし、ユーザの発話区間を検出する。一例として、音声切り出しモジュール９２０は、音声受付モジュール９１０に入力される音声情報のうち、音声情報が示す波形データの振幅が予め定められたしきい値を上回る期間の音声情報を、ユーザの発話に対応する音声情報として切り出す。音声切り出しモジュール９２０は、切り出した音声情報を、通信インターフェイス３４０を介してサーバ１８０に送信する。
【００９７】
サーバ１８０のＣＰＵ３５２は、主な機能構成として、音声受付モジュール９５０と、文字抽出モジュール９６０と、類似文字列特定モジュール９７０と、原因推定モジュール９８０と、発話情報生成モジュール９９０とを備える。
【００９８】
音声受付モジュール９５０は、通信インターフェイス３７０を介して情報処理端末１７０から音声情報の入力を受け付ける。音声受付モジュール９５０は、音声情報を文字抽出モジュール９６０に出力する。
【００９９】
文字抽出モジュール９６０は、音声受付モジュール９５０から入力された音声情報と、音響モデル３６４とを照合して、当該音声情報から文字列を抽出する。文字抽出モジュール９６０は、音声情報から文字列を抽出できた場合、抽出した文字列を類似文字列特定モジュール９７０に出力する。一方、音声情報から文字列を抽出できなかった場合、文字抽出モジュール９６０は、その旨を知らせる信号を原因推定モジュール９８０に出力する。
【０１００】
類似文字列特定モジュール９７０は、文字抽出モジュール９６０が抽出した文字列と、応答テーブル３６２に保持される複数の発話内容候補４１０の各々との類似度を算出する。類似文字列特定モジュール９７０は、抽出した文字列との類似度が最も高い発話内容候補４１０を特定するとともに、当該類似度が記憶装置３６０に格納される所定値以上であるか否かを判断する。類似文字列特定モジュール９７０は、特定した発話内容候補４１０の類似度が所定値以上である場合、特定した発話内容候補４１０を発話情報生成モジュール９９０に出力する。類似文字列特定モジュール９７０は、特定した発話内容候補４１０の類似度が所定値未満である場合、抽出した文字列を原因推定モジュール９８０に出力する。
【０１０１】
原因推定モジュール９８０は、文字抽出モジュール９６０が抽出した文字列、および音声情報が、各々に対する予め定められた条件を満たすか否か（たとえば、音声情報の振幅がしきい値以上か否か）を判断し、文字列を抽出できなかった原因、および抽出した文字列に類似する発話内容候補４１０が無かった原因を推定する。予め定められた条件は、記憶装置３６０に格納されている。原因推定モジュール９８０は、予め定められた条件の判断結果に応じた文字列、すなわち、上記原因を表す文字列（たとえば、「話す速度がゆっくりかも」など）を発話情報生成モジュール９９０に出力する。また、原因推定モジュール９８０は、文字抽出モジュール９６０から文字列を抽出できなかったことを示す信号を入力された場合、音声情報から文字列を抽出できなかったことを表す文字列（たとえば、「上手く聞こえなかったよ」）を記憶装置３６０から読み出して発話情報生成モジュール９９０に出力する。
【０１０２】
ある局面において、記憶装置３６０に複数の予め定められた条件が格納される場合、原因推定モジュール９８０は、予め定められた順序で条件の判断を行い、何らかの原因を推定できた段階で、残りの条件の判断を中止し得る。他の局面において、記憶装置３６０に複数の予め定められた条件が格納される場合、原因推定モジュール９８０は、すべての条件の判断を行い得る。さらに他の局面において、原因推定モジュール９８０は、上記原因を推定できなかった場合、汎用的なアドバイス（たとえば、「言葉を切らずに話すといいかも」）の文字列を発話情報生成モジュール９９０に出力し得る。
【０１０３】
発話情報生成モジュール９９０は、応答テーブル３６２にアクセスして、類似文字列特定モジュール９７０から入力される発話内容候補４１０に対応する応答内容４２０を取得する。
【０１０４】
発話情報生成モジュール９９０は、応答内容４２０（の文字列）または原因推定モジュール９８０から入力される文字列を、音声合成した発話情報を生成して情報処理端末１７０に送信する。
【０１０５】
図９に示される例において、各種機能は、情報処理端末１７０およびサーバ１８０それぞれ１つのＣＰＵによって実現されるものとしてあるが、これに限られない。これらの各種機能は、少なくとも１つのプロセッサのような半導体集積回路、少なくとも１つの特定用途向け集積回路ＡＳＩＣ（Application  Specific  Integrated  Circuit）、少なくとも１つのＤＳＰ（Digital Signal Processor）、少なくとも１つのＦＰＧＡ（Field  Programmable  Gate  Array）、および／またはその他の演算機能を有する回路を含む制御回路によって実装され得る。
【０１０６】
これらの回路は、有形の読取可能な少なくとも１つの媒体から、１以上の命令を読み出すことにより図９に示される各種機能を実現しうる。
【０１０７】
このような媒体は、磁気媒体（たとえば、ハードディスク）、光学媒体（たとえば、コンパクトディスク（ＣＤ）、ＤＶＤ）、揮発性メモリ、不揮発性メモリの任意のタイプのメモリなどの形態をとるが、これらの形態に限定されるものではない。
【０１０８】
揮発性メモリはＤＲＡＭ（Dynamic  Random  Access  Memory）およびＳＲＡＭ（Static  Random  Access  Memory）を含み得る。不揮発性メモリは、ＲＯＭ、ＮＶＲＡＭを含み得る。半導体メモリは、少なくとも１つのプロセッサとともに半導体回路の１部分であり得る。
【０１０９】
［実施形態３］
上記の実施形態では、情報処理端末１７０は、サーバ１８０に音声情報を送信して、サーバ１８０から受信した発話情報をスピーカ３２０に出力する構成であった。しかし、ネットワーク環境がない場合など、情報処理端末１７０はサーバ１８０と通信できない場合もあり得る。そこで、実施形態３に従う情報処理端末１７０は、サーバ１８０ではなく自身で発話情報を生成する。
【０１１０】
図１０は、実施形態３に従う情報処理端末１０００の構成例について説明する図である。図１０を参照して、情報処理端末１０００は、記憶装置３４５を有する点、および通信インターフェイス３４０を有さない点において、上記実施形態の情報処理端末１７０と相違する。記憶装置３４５には、上記説明した応答テーブル３６２と、音響モデル３６４が格納される。
【０１１１】
また、ＲＯＭ３１４には、上記説明したサーバ１８０によって実行される一連の制御を実現するための各種制御プログラムが格納され得る。ある局面において、ＲＯＭ３１４には、図８および図９で説明したＣＰＵ３５２の機能を実現するための各種制御プログラムが格納され得る。
【０１１２】
当該構成によれば、実施形態３に従う情報処理端末１０００は、サーバ１８０によらず、オフライン環境下でもユーザと対話を行なうことができる。
【０１１３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１１４】
１７０，１０００  情報処理端末、１８０  サーバ、１９０，３６２  応答テーブル、２００  制御システム、３１０，３５０  制御部、３１４，３５６  ＲＯＭ、３１６，３５４  ＲＡＭ、３２０  スピーカ、３３０  マイク、３４０，３７０  通信インターフェイス、３４５，３６０  記憶装置、３６４  音響モデル、４１０  発話内容候補、４２０  応答内容、９１０，９５０  音声受付モジュール、９２０  音声切り出しモジュール、９３０  音声出力モジュール、９６０  文字抽出モジュール、９７０  類似文字列特定モジュール、９８０  原因推定モジュール、９９０  発話情報生成モジュール。
【図１】
2018022086.tif 000003
【図２】
2018022086.tif 000004
【図３】
2018022086.tif 000005
【図４】
2018022086.tif 000006
【図５】
2018022086.tif 000007
【図６】
2018022086.tif 000008
【図７】
2018022086.tif 000009
【図８】
2018022086.tif 000010
【図９】
2018022086.tif 000011
【図１０】
2018022086.tif 000012