(57)【要約】【課題】高速に所要時間の予測を行う【解決手段】対話システム（１００）は、対話装置（１）と、対話装置を制御する応答制御装置（２）とを含む。対話装置は、音声データから、条件に合致する１以上の音素を特徴量として抽出する第１の特徴量抽出部（２２）と、特徴量を、複数の標本特徴量と比較することにより、音声データが属するグループを特定し、特定したグループの性質に基づいて、応答の所要時間を推定する時間推定部（２３）とを備えている。応答制御装置は、コーパスに含まれる発話テキストのそれぞれについて、特徴量を抽出する第２の特徴量抽出部（６５）と、各特徴量に基づいて、コーパス内の各発話テキストをグルーピングし、グループごとに、各発話テキストの性質に基づいて決定された該グループの性質と、該グループの標本特徴量とを関連付けた学習データを生成する学習データ生成部（６６）とを備えている。【選択図】図１
2018185431.tif 000002
【特許請求の範囲】
【請求項１】
対話システムであって、該対話システムは、
ユーザの発話を含む音声データを取得して、該発話に対応した応答を出力する対話装置と、
前記対話装置と通信して、前記応答を該対話装置に出力させるように、該対話装置を制御する応答制御装置とを含み、
前記対話装置は、
前記音声データから、あらかじめ定められた条件に合致する１以上の音素を特徴量として抽出する第１の特徴量抽出部と、
前記音声データの特徴量を、学習データ記憶部においてあらかじめ学習されている複数の標本特徴量と比較することにより、前記音声データが属するグループを特定し、特定したグループの性質に基づいて、前記応答の所要時間を推定する時間推定部とを備え、
前記応答制御装置は、
コーパスに含まれる発話テキストのそれぞれについて、前記特徴量を抽出する第２の特徴量抽出部と、
抽出された各特徴量に基づいて、前記コーパス内の各発話テキストをグルーピングして複数のグループを作成し、グループごとに、該グループに属する各発話テキストの性質に基づいて決定された該グループの性質と、該グループの標本特徴量とを関連付けた学習データを生成する学習データ生成部とを備え、
前記時間推定部は、前記学習データ生成部によって生成された前記学習データを用いて前記所要時間を推定することを特徴とする対話システム。
【請求項２】
ユーザの発話を含む音声データを取得して、該発話に対応した応答を出力する対話装置であって、
前記音声データから、あらかじめ定められた条件に合致する１以上の音素を特徴量として抽出する第１の特徴量抽出部と、
前記音声データの特徴量を、学習データ記憶部においてあらかじめ学習されている複数の標本特徴量と比較することにより、前記音声データが属するグループを特定し、特定したグループの性質に基づいて、前記応答の所要時間を推定する時間推定部とを備えていることを特徴とする対話装置。
【請求項３】
前記対話装置は、前記応答を該対話装置に出力させるように、該対話装置を制御する応答制御装置と通信する通信部を備え、
前記応答制御装置は、前記対話装置から受信した音声データを音声認識して得られた発話テキストに基づいて、前記応答として前記対話装置に実行させる動作を決定し、該動作を定義した制御情報を生成するものであり、
前記時間推定部は、前記応答制御装置が、前記制御情報を生成するのに要する、制御情報生成時間を推定することを特徴とする請求項２に記載の対話装置。
【請求項４】
前記第１の特徴量抽出部は、前記対話装置が前記音声データを取得したときに、該音声データから特徴量を抽出し、
前記時間推定部は、前記通信部が前記音声データを前記応答制御装置に送信するより前に、前記制御情報生成時間の推定を開始することを特徴とする請求項３に記載の対話装置。
【請求項５】
前記制御情報に基づく応答を出力する前に、前記対話装置によって生成される、前記制御情報よりも情報量が少ない代替制御情報にしたがって、場つなぎ応答を出力するか否かを決定する場つなぎ処理部を備え、
前記場つなぎ処理部は、前記時間推定部によって推定された前記所要時間が、第１閾値を超える場合に、前記場つなぎ応答を出力することを決定することを特徴とする請求項３または４に記載の対話装置。
【請求項６】
前記場つなぎ処理部は、前記ユーザによって前記発話がなされた時点以降の所定の時点から、前記応答が前記対話装置によって出力されないまま経過した時間が、第２閾値に到達した場合に、前記場つなぎ応答を出力することを決定することを特徴とする請求項５に記載の対話装置。
【請求項７】
前記特徴量抽出部は、前記音声データから、母音に相当する音波形の部分を特徴量として抽出することを特徴とする請求項２から６のいずれか１項に記載の対話装置。
【請求項８】
ユーザの発話を含む音声データを取得して、該発話に対応した応答を出力する対話装置と通信して、前記応答を該対話装置に出力させるように、該対話装置を制御する応答制御装置であって、
コーパスに含まれる発話テキストのそれぞれについて、あらかじめ定められた条件に合致する１以上の音素を特徴量として抽出する第２の特徴量抽出部と、
抽出された各特徴量に基づいて、前記コーパス内の各発話テキストをグルーピングして複数のグループを作成し、グループごとに、該グループに属する各発話テキストの性質に基づいて決定された該グループの性質と、該グループの標本特徴量とを関連付けた学習データを生成する学習データ生成部とを備えていることを特徴とする応答制御装置。
【請求項９】
前記対話装置から受信した音声データを音声認識して得られた発話テキストに基づいて、前記応答として前記対話装置に実行させる動作を決定し、該動作を定義した制御情報を生成する制御情報生成部と、
前記制御情報生成部が前記制御情報を生成するのに要した実測時間を取得する時間測定部と、
受信された前記音声データに対応付けて前記実測時間を記録する実績データ管理部とを備え、
前記学習データ生成部は、
前記グループに属する発話テキストが前記ユーザによって発話された場合に、該発話に対応する応答を出力するための前記制御情報を生成するのに前記制御情報生成部が要すると予測される予測時間を、前記グループの性質として決定し、
記録された前記実測時間に基づいて、前記予測時間を更新することを特徴とする請求項８に記載の応答制御装置。
【請求項１０】
前記制御情報生成部は、前記発話テキストが意味する発話内容に対応して、前記対話装置に実行させるべきタスクを前記制御情報に定義し、
前記応答制御装置は、さらに、タスクごとに、実測時間平均値を関連付けたタスクデータを記憶するタスク記憶部を備え、前記実測時間平均値は、前記対話装置において過去に実行された同種の各タスクについて、各タスクが実行されるトリガとなった各発話に対応して、各制御情報を生成するのに前記制御情報生成部が要した各実測時間の平均値を示し、
前記学習データ生成部は、
前記グループに属する発話テキストのそれぞれに対応付けられたタスクに基づいて、該グループにどのタスクが対応付けられた発話テキストがいくつ属しているのかを示すタスク属性を、前記グループの性質として決定し、
前記グループのタスク属性と、該タスク属性によって示された１以上のタスクに関連付けられている前記実測時間平均値とに基づいて、該グループの前記予測時間を算出することを特徴とする請求項９に記載の応答制御装置。
【請求項１１】
ユーザの発話を含む音声データを取得して、該発話に対応した応答を出力する対話装置の制御方法であって、
前記音声データから、あらかじめ定められた条件に合致する１以上の音素を特徴量として抽出する第１の特徴量抽出ステップと、
前記音声データの特徴量を、前記対話装置が備える学習データ記憶部においてあらかじめ学習されている複数の標本特徴量と比較することにより、前記音声データが属するグループを特定し、特定したグループの性質に基づいて、前記応答の所要時間を推定する時間推定ステップとを含むことを特徴とする制御方法。
【請求項１２】
ユーザの発話を含む音声データを取得して、該発話に対応した応答を出力する対話装置と通信して、前記応答を該対話装置に出力させるように、該対話装置を制御する応答制御装置の制御方法であって、
コーパスに含まれる発話テキストのそれぞれについて、あらかじめ定められた条件に合致する１以上の音素を特徴量として抽出する第２の特徴量抽出ステップと、
抽出された各特徴量に基づいて、前記コーパス内の各発話テキストをグルーピングして複数のグループを作成し、グループごとに、該グループに属する各発話テキストの性質に基づいて決定された該グループの性質と、該グループの標本特徴量とを関連付けた学習データを生成する学習データ生成ステップとを含むことを特徴とする制御方法。
【請求項１３】
請求項２に記載の対話装置としてコンピュータを機能させるための制御プログラムであって、前記第１の特徴量抽出部および前記時間推定部としてコンピュータを機能させるための制御プログラム。
【請求項１４】
請求項８に記載の応答制御装置としてコンピュータを機能させるための制御プログラムであって、前記第２の特徴量抽出部および前記学習データ生成部としてコンピュータを機能させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザと装置との対話を実現する、対話システム、対話装置、応答制御装置、対話装置の制御方法、応答制御装置の制御方法、および、制御プログラムに関する。
【背景技術】
【０００２】
ユーザと装置との対話を実現する対話システムにおいて、ユーザの発話に応答しようとして、装置が情報を処理するのにかかる所要時間を予測する技術が従来知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０８−１４７３０４号公報（１９９６年６月７日公開）
【特許文献２】特開２０１４−１９１０３０号公報（２０１４年１０月６日公開）
【特許文献３】特開２０１３−２００４８０号公報（２０１３年１０月３日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のような従来技術は、計算量の多い高負荷の処理（例えば、音声認識処理など）を経た後でなければ、予測を完了できないという問題がある。あるいは、予測の処理自体が計算量の多い高負荷の処理であるという問題がある。あるいは、ユーザの発話がなされてから、装置が該発話に対する応答を出力するまでの全体の所要時間を予測できないという問題がある。
【０００５】
本発明の一態様は、高速に所要時間の予測を行う対話システムを実現することを目的とする。
【課題を解決するための手段】
【０００６】
前記の課題を解決するために、本発明の一態様に係る対話システムは、ユーザの発話を含む音声データを取得して、該発話に対応した応答を出力する対話装置と、前記対話装置と通信して、前記応答を該対話装置に出力させるように、該対話装置を制御する応答制御装置とを含み、前記対話装置は、前記音声データから、あらかじめ定められた条件に合致する１以上の音素を特徴量として抽出する第１の特徴量抽出部と、前記音声データの特徴量を、学習データ記憶部においてあらかじめ学習されている複数の標本特徴量と比較することにより、前記音声データが属するグループを特定し、特定したグループの性質に基づいて、前記応答の所要時間を推定する時間推定部とを備え、前記応答制御装置は、コーパスに含まれる発話テキストのそれぞれについて、前記特徴量を抽出する第２の特徴量抽出部と、抽出された各特徴量に基づいて、前記コーパス内の各発話テキストをグルーピングして複数のグループを作成し、グループごとに、該グループに属する各発話テキストの性質に基づいて決定された該グループの性質と、該グループの標本特徴量とを関連付けた学習データを生成する学習データ生成部とを備え、前記時間推定部は、前記学習データ生成部によって生成された前記学習データを用いて前記所要時間を推定する。
【０００７】
前記の課題を解決するために、本発明の一態様に係る対話装置は、ユーザの発話を含む音声データを取得して、該発話に対応した応答を出力する対話装置であって、前記音声データから、あらかじめ定められた条件に合致する１以上の音素を特徴量として抽出する第１の特徴量抽出部と、前記音声データの特徴量を、学習データ記憶部においてあらかじめ学習されている複数の標本特徴量と比較することにより、前記音声データが属するグループを特定し、特定したグループの性質に基づいて、前記応答の所要時間を推定する時間推定部とを備えている。
【０００８】
前記の課題を解決するために、本発明の一態様に係る応答制御装置は、ユーザの発話を含む音声データを取得して、該発話に対応した応答を出力する対話装置と通信して、前記応答を該対話装置に出力させるように、該対話装置を制御する応答制御装置であって、コーパスに含まれる発話テキストのそれぞれについて、あらかじめ定められた条件に合致する１以上の音素を特徴量として抽出する第２の特徴量抽出部と、抽出された各特徴量に基づいて、前記コーパス内の各発話テキストをグルーピングして複数のグループを作成し、グループごとに、該グループに属する各発話テキストの性質に基づいて決定された該グループの性質と、該グループの標本特徴量とを関連付けた学習データを生成する学習データ生成部とを備えている。
【０００９】
前記の課題を解決するために、本発明の一態様に係る対話装置の制御方法は、ユーザの発話を含む音声データを取得して、該発話に対応した応答を出力する対話装置の制御方法であって、前記音声データから、あらかじめ定められた条件に合致する１以上の音素を特徴量として抽出する第１の特徴量抽出ステップと、前記音声データの特徴量を、前記対話装置が備える学習データ記憶部においてあらかじめ学習されている複数の標本特徴量と比較することにより、前記音声データが属するグループを特定し、特定したグループの性質に基づいて、前記応答の所要時間を推定する時間推定ステップとを含む。
【００１０】
前記の課題を解決するために、本発明の一態様に係る応答制御装置の制御方法は、ユーザの発話を含む音声データを取得して、該発話に対応した応答を出力する対話装置と通信して、前記応答を該対話装置に出力させるように、該対話装置を制御する応答制御装置の制御方法であって、コーパスに含まれる発話テキストのそれぞれについて、あらかじめ定められた条件に合致する１以上の音素を特徴量として抽出する第２の特徴量抽出ステップと、抽出された各特徴量に基づいて、前記コーパス内の各発話テキストをグルーピングして複数のグループを作成し、グループごとに、該グループに属する各発話テキストの性質に基づいて決定された該グループの性質と、該グループの標本特徴量とを関連付けた学習データを生成する学習データ生成ステップとを含む。
【発明の効果】
【００１１】
本発明の一態様によれば、低負荷の処理にて、高速に所要時間の予測を行うことができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係る対話ロボットの要部構成を示す図である。
【図２】本発明の実施形態に係る応答制御サーバの要部構成を示す図である。
【図３】本発明の実施形態に係る対話システムの概要を示す図である。
【図４】対話システムにおける各装置の振る舞いを時間軸に沿って示す図である。
【図５】応答制御サーバのタスク記憶部に記憶されるタスクデータの具体例を示す図である。
【図６】応答制御サーバのコーパス記憶部に記憶されるコーパスの具体例を示す図である。
【図７】特徴量の具体例を示す図である。
【図８】対話ロボットまたは応答制御サーバの学習データ記憶部に記憶される学習データの具体例を示す図である。
【図９】応答制御サーバの実績データ記憶部に記憶される実績データの具体例を示す図である。
【図１０】応答制御サーバが学習データを生成するときの処理の流れを示すフローチャートである。
【図１１】応答制御サーバが生成した距離行列の具体例を示す図である。
【図１２】応答制御サーバが、応答シナリオを生成し、その所要時間を測定するときの処理の流れを示す図である。
【図１３】応答制御サーバが学習データを更新するときの処理の流れを示す図である。
【図１４】対話ロボットがユーザの発話に応じて応答を出力するときの処理の流れを示す図である。
【図１５】対話ロボットが、入力された音声データの特徴量と、学習データに記憶された特徴量とを比較した結果の一例を示す図である。
【発明を実施するための形態】
【００１３】
〔実施形態１〕
（対話システム概要）
一実施形態において、本発明の対話装置は、対話ロボットとして実現される。該対話ロボットは、応答制御サーバ（応答制御装置）とともに対話システムを構築する。図３の（ａ）は、本発明の一実施形態に係る対話システムの概要を示す図である。
【００１４】
対話システム１００は、対話ロボット１と応答制御サーバ２とを含む。対話ロボット１は、ユーザとの間で音声による対話を実現するロボットであり、例えば、これに限定されないが人型ロボットである。対話ロボット１は、ユーザの発話を、コンピュータで処理可能な音データとして取り込む音声入力機能を有する。また、コンピュータで処理されたテキストデータ（以下、発話テキスト）をユーザが聴取可能な音として出力する音声出力機能を有する。さらに、対話ロボット１は、インターネットなどの図示しない広域通信網を介して外部の装置と通信する通信機能を有する。
【００１５】
応答制御サーバ２は、対話ロボット１と通信して、対話ロボット１が、ユーザの発話に対して応答を出力するように、対話ロボット１を制御する。具体的には、応答制御サーバ２は、前記音データからユーザの発話部分を抽出した音声データｄ１を音声認識する音声認識機能（後述する音声認識部６０）を有する。また、応答制御サーバ２は、ユーザの発話内容に適した応答を出力するように、対話ロボット１の挙動を規定した応答シナリオｄ２を生成する機能（後述するシナリオ生成部６３）を有する。
【００１６】
応答シナリオｄ２（制御情報）は、対話ロボット１がユーザの発話に対応した応答を出力するように、対話ロボット１の動作を定義する情報である。応答シナリオｄ２は、対話ロボット１の発話内容を規定する発話テキストだけでなく、対話ロボット１の動きを規定するサーボ制御情報、対話ロボット１に取り付けられたＬＥＤ（light-emitting diode）の明滅を規定するＬＥＤ制御情報、および、対話ロボット１に対して特定の情報処理を指示する命令などを含んでいてもよい。対話ロボット１は、応答シナリオｄ２に規定された各種命令にしたがって、自装置の機能を実行することにより、ユーザの発話に対応した反応をユーザに対して提示することができる。図３の（ａ）に示す例では、応答シナリオｄ２には、「ＯＫ、予定登録したよ」という発話を規定する発話テキストと、「遊ぶ」という予定を、明日のスケジュールに登録する情報処理を指示する命令とが含まれる。さらに、「（発話と同時に）右手を挙げる」ことを規定したサーボ制御情報、および、「（発話の間）両目のＬＥＤが緑で点灯する」ことを規定したＬＥＤ制御情報などが応答シナリオｄ２に含まれていてもよい。
【００１７】
（対話の流れ）
図４は、対話システム１００における各装置の振る舞いを時間軸に沿って示す図である。対話ロボット１にユーザの発話を含む音データが入力された時点Ｐ０から、対話ロボット１が何らかの反応をユーザに対して提示する、すなわち、応答を出力する時点Ｐ６までの時間を応答時間と称する。応答時間の内訳は以下のとおりである。
【００１８】
時間Ｔ１：時点Ｐ０から、対話ロボット１が、応答制御サーバ２に対して音声データを送信する時点Ｐ１までの時間。この間に対話ロボット１は入力された音データからユーザの発話部分を抽出した音声データを取得し、応答制御サーバ２に対する要求メッセージを作成する。すなわち、要求準備時間。
【００１９】
時間Ｔ２：時点Ｐ１から、応答制御サーバ２が、音声データを対話ロボット１から受信する時点Ｐ２までの時間。すなわち、上り転送時間。
【００２０】
時間Ｔ３：時点Ｐ２から、応答制御サーバ２が、音声データを発話テキストに変換して出力する時点Ｐ３までの時間。すなわち、音声認識時間。
【００２１】
時間Ｔ４：時点Ｐ３から、応答制御サーバ２が、発話テキストに基づいて、ユーザの発話の意味の解釈を行い、発話内容に応じた応答シナリオを生成して、送信する時点Ｐ４までの時間。すなわち、応答シナリオ生成時間（制御情報生成時間）。
【００２２】
時間Ｔ５：時点Ｐ４から、対話ロボット１が、応答シナリオを応答制御サーバ２から受信する時点Ｐ５までの時間。すなわち、下り転送時間。
【００２３】
時間Ｔ６：時点Ｐ５から、対話ロボット１が、応答シナリオを処理して、応答を出力する時点Ｐ６までの時間。すなわち、応答出力準備時間。
【００２４】
時間Ｔ１〜Ｔ６のうち、応答時間の長さに最も大きく影響を与えるのは、音声認識時間Ｔ３、および、応答シナリオ生成時間Ｔ４である。したがって、応答時間の推定を早く完了させるためには、これらの時間Ｔ３、Ｔ４をより早く算出することが求められる。音声認識時間Ｔ３については、例えば、特許文献３に記載されているとおり音声データサイズに基づいて推定したり、特許文献４に記載されているとおりデータ長に基づいて推定したりすることが可能である。これは、音声認識時間Ｔ３と、入力された音声データのデータサイズまたはデータ長との間にある程度の相関が認められるからである。しかしながら、応答シナリオ生成時間Ｔ４は、音声認識処理が完了しないかぎり、正確に推定することが難しい。なぜなら、応答シナリオ生成時間Ｔ４は、生成すべき応答シナリオが決定されなければ推定できないし、生成すべき応答シナリオは、入力された発話がどのような意味内容を持つのかを、音声認識処理を経て解釈されなければ決定されないからである。
【００２５】
そのため、計算量の多い情報処理を数多くこなして時間をかけなければ、応答シナリオ生成時間Ｔ４を推定することが難しく、したがって、応答時間の推定を早く完了させることが難しい。しかし、応答時間を推定する目的は、ユーザとの自然な対話を実現することにあるため、ユーザとの対話を間延びさせないためにも、当該推定を早く完了させることは非常に重要である。このような事情で、負荷の高い計算を実行できる非常に高性能な制御部（例えば、ＣＰＵなど）が必要になるが、そのような高性能な制御部を、対話システム１００のクライアントである対話ロボット１の一つ一つに搭載することは、コストの観点からデメリットが大きい。
【００２６】
本開示の実施形態によれば、応答時間の推定に係る、計算量の多い高負荷処理を応答制御サーバ２に実行させる一方、低負荷処理を対話ロボット１に実行させることにより、低コストにて、応答時間の推定を高速に行う対話システム１００を実現することができる。
【００２７】
上述のような対話システム１００を実現するために、本実施形態に係る対話ロボット１は、音声認識処理が完了するよりも前に、例えば、音声データが得られた時点で、低負荷な処理を実行するだけで、応答シナリオ生成時間Ｔ４を推定することができる。
【００２８】
なお、実施形態１では、応答時間のうち、応答シナリオ生成時間Ｔ４以外の予測時間は、公知の、または、後述する方法を用いて特定される。例えば、固定値が採用されたり、音声データのデータ長または後述する会話長に基づいて決定されたり、過去の実績に基づいて決定されたりしてもよい。
【００２９】
（対話ロボット１）
図１は、本発明の実施形態に係る対話ロボット１の要部構成を示す図である。対話ロボット１は、例えば、制御部１０、記憶部１１、マイク１２、通信部１３、スピーカ１４、サーボ１５およびＬＥＤ１６を備えている。
【００３０】
マイク１２は、ユーザが発話したときに発せられた音を、制御部１０が処理可能な音データとして取得するための機器である。スピーカ１４は、制御部１０によって処理された音データを音声、効果音または音楽などとして出力するための機器である。これにより、対話ロボット１は、聴覚的効果を伴う応答をユーザに対して出力することができる。サーボ１５は、対話ロボット１を振動させたり、特定のジェスチャーをさせたりするなどして、対話ロボット１の物理的な動きを実現する。これにより、対話ロボット１は、触覚に係る効果または視覚的効果を伴う応答をユーザに対して出力することができる。ＬＥＤ１６は発光素子であり、制御部１０の制御下で、点灯／消灯のタイミングまたは光の色を変更するなどして、照明または電飾として機能する。これにより、対話ロボット１は、視覚的効果を伴う応答をユーザに対して出力することができる。
【００３１】
通信部１３は、所定の通信方式にしたがう通信網を介して、応答制御サーバ２などの外部装置と通信する。外部装置との通信を実現する本質的な機能が備わってさえいればよく、通信回線、通信方式、または通信媒体などは限定されない。
【００３２】
記憶部１１は、ＲＯＭ（read only memory）、ＮＶＲＡＭ（non-Volatile random access memory）、フラッシュメモリなどの不揮発性の記憶装置によって構成され、対話ロボット１が処理する各種情報を記憶する。具体的には、記憶部１１には、後述する学習データを記憶する学習データ記憶部４０、および、場つなぎ応答データを記憶する場つなぎ応答データ記憶部４１などが含まれる。記憶部１１は、さらに、後述する音声認識実績テーブル９０１を記憶する音声認識実績テーブル記憶部４２を含んでいてもよい。また、記憶部１１は、１または複数の閾値を記憶する閾値記憶部４３を含んでいてもよい。閾値は、所定の時間の長さを示しており、後述する場つなぎ処理部２１が場つなぎ応答を出力すべきか否かを判断するときに参照される。
【００３３】
制御部１０は、対話ロボット１が有する各種の機能を統括的に制御する。制御部１０は、機能ブロックとして、少なくとも、特徴量抽出部２２（第１の特徴量抽出部）、時間推定部２３、学習データ管理部２５および応答制御部２６を含んでいる。制御部１０は、機能ブロックとして、必要に応じてさらに、入力処理部２０、場つなぎ処理部２１、シナリオ生成部２４、音声出力制御部２７、駆動制御部２８およびＬＥＤ制御部２９を含んでいてもよい。機能ブロックは、ＣＰＵ（central processing unit）などが、不揮発性の記憶装置（例えば、記憶部１１、記憶部５１）に記憶されているプログラムを不図示のＲＡＭ（random access memory）等に読み出して実行することで実現できる。
【００３４】
入力処理部２０は、マイク１２が取得した音データから、ユーザの発話部分に相当する波形を抽出し、音声データを生成する。入力処理部２０は、通信部１３を介して、音声データを応答制御サーバ２に転送する。
【００３５】
場つなぎ処理部２１は、特徴量抽出部２２、時間推定部２３およびシナリオ生成部２４を制御して、必要に応じて、対話ロボット１に場つなぎ応答を出力させる。場つなぎ応答とは、ユーザの発話に対して、正規の応答を出力するのに時間がかかる場合に、正規の応答に代えてすぐに出力することができる代替の応答のことである。場つなぎ応答を出力するための場つなぎ応答シナリオ（代替制御情報）を生成するために必要な場つなぎ応答データは、場つなぎ応答データ記憶部４１において対話ロボット１のローカルに記憶されている。また、多くの場合、場つなぎ応答シナリオは、正規の応答を出力するための応答シナリオと比較して小さなデータ量（少ない情報量）で生成される。したがって、応答シナリオを生成する処理と比較して、場つなぎ応答シナリオを生成する処理は、処理負荷がより小さい。例えば、場つなぎ処理部２１は、ユーザの問いかけに対して、正規の回答を発話する前に、すぐに、「えーと、ちょっと待ってね、今調べるから」などの場つなぎの発話を対話ロボット１に出力させることができる。これにより、会話中に不自然な間が生まれることを回避し、それによって、ユーザが、自身の発話が受け付けられていないと不安を覚えたり、回答の遅延に対してストレスと感じたりすることを防止することができる。
【００３６】
本実施形態では、一例として、場つなぎ処理部２１は、時間推定部２３によって推定された応答時間が、閾値記憶部４３に記憶されている第１閾値（例えば、１．５秒）よりも長い場合に、場つなぎ応答を出力するべきと判断する。また、場つなぎ処理部２１は、前記応答時間が前記第１閾値以下である場合に、場つなぎ応答は不要と判断する。この場合、本実施形態では、応答制御部２６は、通常のルーチンどおり、正規の応答シナリオｄ２が応答制御サーバ２から提供されるのを待ち、応答シナリオｄ２が提供されれば、これにしたがって、正規の応答を出力する。
【００３７】
特徴量抽出部２２は、入力された音声データ（詳細には、マイク１２を介して入力された音データから入力処理部２０によって生成された音声データ）から、特徴量を抽出する。特徴量とは、音声データのうち、ユーザの発話の特徴的な音波形を示す部分である。
【００３８】
場つなぎ処理部２１および特徴量抽出部２２が実行する情報処理の内容は、後に詳述する。
【００３９】
時間推定部２３は、入力された音声データに含まれるユーザの発話に対して、対話ロボット１が応答を出力するのにかかる所要時間を推定する。具体的には、時間推定部２３は、前記発話に対する応答時間（図４に示す、応答時間＝Ｔ１＋Ｔ２＋Ｔ３＋Ｔ４＋Ｔ５＋Ｔ６）を推定する。
【００４０】
本実施形態では、時間推定部２３は、少なくとも、前記特徴量と、学習データ記憶部４０に記憶されている学習データとを用いて、応答シナリオ生成時間Ｔ４を推定する。さらに、時間推定部２３は、音声認識時間Ｔ３を、時点Ｐ１で得られた前記音声データのデータ長または会話長に基づいて推定してもよい。データ長とは、前記音声データのデータ容量を意味し、会話長とは、発話の開始時点から終了時点までの時間の長さ、つまり、ユーザの発話時間は何秒間であるのかを意味する。本実施形態では、一例として、時間推定部２３は、音声認識時間Ｔ３の推定を、音声認識実績テーブル記憶部４２に記憶されている音声認識実績テーブル９０１を参照して実施する。時間推定部２３が、音声認識時間Ｔ３を推定する方法および応答シナリオ生成時間Ｔ４を推定する方法については、後に詳述する。
【００４１】
さらに、時間推定部２３は、入力処理部２０が前記音データから前記音声データを生成するのにかけた実際の所要時間を、要求準備時間Ｔ１として取得してもよいし、過去の処理実績に基づいて算定された固定値を、要求準備時間Ｔ１として取得してもよい。時間推定部２３は、上り転送時間Ｔ２、下り転送時間Ｔ５および応答出力準備時間Ｔ６のそれぞれについて、過去の処理実績に基づいて算定されたそれぞれの固定値を取得してもよい。
【００４２】
時間推定部２３は、上述のとおり、それぞれの方法にて取得した要求準備時間Ｔ１、上り転送時間Ｔ２、音声認識時間Ｔ３、応答シナリオ生成時間Ｔ４、下り転送時間Ｔ５、および、応答出力準備時間Ｔ６を合計して得られた時間を応答時間として推定する。
【００４３】
シナリオ生成部２４は、場つなぎ応答が必要と判断された場合に、場つなぎ応答データ記憶部４１に記憶されている各種データに基づいて、場つなぎ応答シナリオを生成する。場つなぎ応答シナリオは、内容的な観点から、その場をつなぐだけの簡単な応答内容を含むという点で、正規の応答シナリオｄ２とは異なっている。しかし、場つなぎ応答シナリオのデータ構造は、上述した応答シナリオｄ２と同様である。すなわち、場つなぎ応答シナリオは、発話テキスト、情報処理の命令、サーボ制御情報およびＬＥＤ制御情報などを含み、応答シナリオｄ２と同様に、応答制御部２６によって処理される。
【００４４】
学習データ管理部２５は、応答制御サーバ２から提供された学習データを学習データ記憶部４０に格納する。これにより、対話ロボット１がローカルで把握する学習データは常に更新され、最新の状態が保たれる。さらに、学習データ管理部２５は、応答制御サーバ２から提供された音声認識実績テーブルを音声認識実績テーブル記憶部４２に格納する。これにより、対話ロボット１がローカルで把握する音声認識実績テーブルは常に最新の状態が保たれる。
【００４５】
応答制御部２６は、応答制御サーバ２から提供された応答シナリオ、および、シナリオ生成部２４によって生成された場つなぎ応答シナリオを解析して、シナリオが定義する応答を出力するための制御命令を、応答の出力を担う各部に分配する。例えば、応答制御部２６は、シナリオに含まれる発話テキストを音声出力制御部２７に分配し、サーボ制御情報を駆動制御部２８に分配し、ＬＥＤ制御情報をＬＥＤ制御部２９に分配する。さらに、シナリオにおいて、応答出力のタイミングが規定されている場合には、応答制御部２６は、各部に対して、応答を出力するタイミングを統括的に制御することができる。また、応答制御部２６は、シナリオに含まれている情報処理の命令を、制御部１０の図示しない情報処理部（例えば、スケジュールの管理を行うアプリケーションなど）に分配してもよい。
【００４６】
音声出力制御部２７は、分配された発話テキストを音データに変換し、該音データをスピーカ１４から出力させる。駆動制御部２８は、サーボ制御情報にしたがって、サーボ１５を駆動させる。ＬＥＤ制御部２９は、ＬＥＤ制御情報にしたがって、ＬＥＤ１６を制御する。
【００４７】
（応答制御サーバ２）
図２は、本発明の実施形態に係る応答制御サーバ２の要部構成を示す図である。応答制御サーバ２は、例えば、制御部５０、記憶部５１および通信部５２を備えている。通信部５２は、所定の通信方式にしたがう通信網を介して、対話ロボット１などの外部装置と通信する。記憶部５１は、不揮発性の記憶装置によって構成され、応答制御サーバ２が処理する各種情報を記憶する。具体的には、記憶部５１には、タスク記憶部８０、応答データ記憶部８１、コーパス記憶部８２、学習データ記憶部８３および実績データ記憶部８４などが含まれる。これらの各記憶部に記憶されているデータについて、後に詳述する。
【００４８】
制御部５０は、応答制御サーバ２が有する各種の機能を統括的に制御する。制御部５０は、機能ブロックとして、少なくとも、時間測定部６４、特徴量抽出部６５および学習データ生成部６６を含んでいる。制御部５０は、機能ブロックとして、必要に応じてさらに、音声認識部６０、解釈部６１、実績データ管理部６２およびシナリオ生成部６３を含んでいてもよい。
【００４９】
音声認識部６０は、ユーザによる発話の音声データを解析し、該発話の発話テキストを取得する。音声認識部６０は、さらに、音声データの再生時間に基づいて、会話長を特定してもよい。解釈部６１は、発話テキストに対して、シソーラスおよび辞書などを参照して、形態素解析などを行い、発話テキスト（すなわち、ユーザの発話内容）の意味を解釈する。さらに、解釈部６１は、発話テキストが意味する発話内容に対応して対話ロボット１が実行するべきタスク（後述する）のタスク種別を判別する。タスクについて、後に詳述する。
【００５０】
シナリオ生成部６３（制御情報生成部）は、発話内容に対応する正規の応答シナリオを生成する。応答データ記憶部８１には、応答シナリオを生成するために必要な各種情報が記憶されている。シナリオ生成部６３は、応答データ記憶部８１に記憶されている情報を取捨選択し、組み合わせて、ユーザの発話に対応して対話ロボット１に出力させる応答を定義した応答シナリオを生成する。例えば、シナリオ生成部６３は、図示しないテキスト生成部を制御して、対話ロボット１に発話させる内容を示した発話テキストを生成する。シナリオ生成部６３は、図示しないサーボ制御情報生成部を制御して、対話ロボット１の動きを規定したサーボ制御情報を生成する。シナリオ生成部６３は、図示しないＬＥＤ制御情報生成部を制御して、対話ロボット１のＬＥＤ１６の制御内容を規定したＬＥＤ制御情報を生成する。また、シナリオ生成部６３は、図示しない外部情報取得部を制御して、タスクを達成するために必要な外部情報を、通信部５２を介して、外部の情報提供装置から取得する。取得された外部情報は、例えば、前記テキスト生成部がテキストを生成するのに利用される。どのような発話に対してどのような内容の応答シナリオを生成するのかについては、例えば、公知の技術が適宜採用されてもよい。
【００５１】
時間測定部６４は、発話テキストに対応する応答シナリオを生成するのにかかる所要時間、すなわち、応答シナリオ生成時間Ｔ４を測定する。具体的には、時間測定部６４は、音声認識部６０が発話テキストを出力した時点Ｐ３（図４参照）から経過時間の測定を開始し、シナリオ生成部６３が応答シナリオを出力した時点Ｐ４で測定を終了する。そして、その間の経過時間を、前記発話テキストのための応答シナリオ生成時間Ｔ４の実測時間として取得する。
【００５２】
さらに、時間測定部６４は、音声認識部６０が実行する音声認識処理の所要時間、すなわち、音声認識時間Ｔ３を測定してもよい。具体的には、時間測定部６４は、音声認識部６０が音声データを受信した時点Ｐ２から経過時間の測定を開始し、音声認識部６０が該音声データに対応する発話テキストを出力した時点Ｐ３で測定を終了する。そして、その間の経過時間を、音声認識時間Ｔ３として取得する。
【００５３】
実績データ管理部６２は、実績データ記憶部８４に記憶される実績データを管理する。具体的には、実績データ管理部６２は、通信部５２を介して対話ロボット１から受け付けた音声データを実績データ記憶部８４に格納して管理する。さらに、実績データ管理部６２は、前記音声データの発話テキストについて解釈部６１が判別したタスク種別を、前記音声データに紐付けて実績データ記憶部８４に格納する。さらに、実績データ管理部６２は、前記発話テキストの応答シナリオ生成時間Ｔ４について時間測定部６４が測定した実測時間を前記音声データに紐付けて実績データ記憶部８４に格納する。すなわち、実績データ管理部６２が管理する実績データには、実際に対話ロボット１から送信された音声データに、少なくとも、該音声データが意図しているタスクと、該意図に対応する応答シナリオ生成時間Ｔ４の実測時間とが紐付けられる。実績データのデータ構造については、図９に基づいて後に詳述する。
【００５４】
実績データ記憶部８４に蓄積された音声データは、所定のタイミングで、特徴量抽出部６５によって参照される。また、各音声データに紐付けられたタスク種別および実測時間は、学習データの更新のために学習データ生成部６６によって参照される。
【００５５】
実績データ管理部６２は、さらに、音声認識部６０によって音声データが処理されたときの音声認識時間Ｔ３について時間測定部６４が測定した実測時間と、処理された音声データに基づく会話長とを、該音声データに紐付けて、前記実績データに追加してもよい。実績データ管理部６２は、実績データのレコードが、ある程度の数蓄積された所定のタイミングで、実績データから、音声データの会話長と音声認識時間Ｔ３の実測時間とをレコードごとに抽出した音声認識実績テーブル９０１を、通信部５２を介して対話ロボット１に提供してもよい。音声認識実績テーブル９０１は、対話ロボット１の時間推定部２３が、音声データに基づいて音声認識時間Ｔ３を推定するのに利用される。音声認識実績テーブル９０１のデータ構造については、図９に基づいて後に詳述する。
【００５６】
特徴量抽出部６５は、実績データ記憶部８４に蓄積された音声データのそれぞれから特徴量を抽出する。音声データから特徴量を抽出するアルゴリズムは、対話ロボット１の特徴量抽出部２２において採用されるアルゴリズムと同様のものが特徴量抽出部６５においても採用される。実績データ記憶部８４には、これまでに応答制御サーバ２に対して対話ロボット１から送信された音声データが大量に蓄積されている。本実施形態では、一例として、特徴量抽出部６５は、実績データ記憶部８４に蓄積された音声データを、千個〜一万個単位でまとめて処理する。
【００５７】
学習データ生成部６６は、学習データ記憶部８３に記憶される学習データを生成する。学習データ生成部６６は、コーパス記憶部８２に記憶されているコーパスと、タスク記憶部８０に記憶されているタスクデータとに基づいて、学習データを新規に作成する。学習データ生成部６６は、実績データ記憶部８４に蓄積されている音声データに基づいて、前記タスクデータを更新し、更新後のタスクデータに基づいて、学習データを更新する。学習データ生成部６６は、所定のタイミングで、更新した学習データを、通信部５２を介して対話ロボット１に提供してもよい。
【００５８】
（応答制御サーバの機能詳細）
（１）応答制御サーバが保持する各種データについて
応答制御サーバ２は、対話ロボット１が応答シナリオ生成時間Ｔ４を推定するために利用する学習データを生成し、対話ロボット１に提供する。具体的には、応答制御サーバ２は、ユーザによって発話されると想定され得る膨大な量の例文（以下、発話テキスト）を集積したコーパスと、ユーザによって実際になされた発話に対応する、応答シナリオ生成時間Ｔ４の実測時間とを用いて、学習データを生成する。より詳細には、本実施形態において、応答シナリオ生成時間Ｔ４の長さは、対話ロボット１が実行するタスクの種類に依存する。そこで、応答制御サーバ２は、発話テキストの属性（後述するタスク属性）ごとに、応答シナリオ生成時間Ｔ４の予測時間を求めることにより、学習データを生成する。
【００５９】
図５は、タスク記憶部８０に記憶されているタスクデータの具体例を示す図である。対話ロボット１が実行する１以上のタスクがタスクデータとして定義されている。タスクとは、対話ロボット１が、ユーザの発話内容に対する応答として、対話ロボット１が有する１以上の機能を実行することで達成する仕事の単位である。例えば、対話ロボット１が果たし得るタスクとしては、「予定を確認する」、「予定を登録する」、「計算する」などがある。他にも、対話ロボット１が発話したり、動いたりするときに、その対話ロボット１の状態を通知するために、所定の色のＬＥＤ１６を「点灯させる」、または、「点滅させる」などのタスクがあってもよい。さらに、サーボ１５によって実現する対話ロボット１の動きのバリエーションとして、「ダンスする」、「座る」、「手を挙げる」、「首をかしげる」、または、「立つ」、などのタスクがあってもよい。
【００６０】
図５に示すとおり、タスクデータは、一例として、「タスク種別」、「タスク内容」、「所要時間平均値」および「利用回数」のカラムを有するテーブルである。該テーブルにおいて、１つのタスクにつき、１つのレコードが登録される。各レコードには、上述の４つの項目が紐付けられており、これらが該当タスクについての詳細情報を構成する。「タスク種別」は、対話ロボット１が実行する１以上のタスクを一意に識別するための情報であり、文字、記号、数字などで構成される。「タスク内容」は、対話ロボット１が実行するタスクの内容を示す情報である。本カラムは、具体例を用いてタスクが容易に理解されるように記載されたものであり、タスクデータは、本カラムを有していなくてもよい。「利用回数」は、対話ロボット１の利用が開始されてから、ユーザの発話に対応して該当タスクが実行された回数を示す。
【００６１】
「所要時間平均値」（実測時間平均値）は、該当タスクが実行されるトリガとなった発話に対応して、応答シナリオが生成されるのにかかった所要時間、すなわち、応答シナリオ生成時間Ｔ４の実測時間の平均値を示す。所要時間平均値の初期値は、任意の予想値を設定しておいてもよい。その後、実績データ記憶部８４に記憶されている実績データに基づいて、学習データ生成部６６によって、所要時間平均値が更新される。
【００６２】
解釈部６１は、新規に音声認識部６０から供給された発話テキストに対して、その意味を解釈した後、図５に示すタスクデータを参照して、この発話テキストに対応して対話ロボット１が実行すべきタスクを判別する。例えば、「明日遊ぶ」という発話について、解釈部６１は、明日の予定が述べられたのだと理解する。そして、この発話テキストに対して、対話ロボット１に実行させるタスクは、予定の登録を行うタスク「Ａ」であると判別する。あるいは、「明日の予定は」というユーザの発話に対しては、解釈部６１は、予定を確認するタスク「Ｂ」を実行するべきタスクとして判別する。
【００６３】
図６は、コーパス記憶部８２に記憶されているコーパスの具体例を示す図である。コーパスは、学習データ生成部６６が学習データを新規に生成する前に用意される。コーパスは、一例として、「テキストＩＤ」、「発話テキスト」、「特徴量」および「タスク種別」のカラムを有するテーブルである。該テーブルにおいて、１つの発話テキストにつき、１つのレコードが登録される。各レコードには、上述の４つの項目が紐付けられており、これらが該当発話テキストについての詳細情報を構成する。「テキストＩＤ」は、発話テキストを一意に識別するための情報である。「発話テキスト」は、発話の内容を示す情報であり、テキストデータで構成される。「特徴量」は、該当発話テキストが発話されたときの音声データから、特徴となる音波形の部分を抽出したものである。図６において、コーパスの「特徴量」のカラムには、特徴量に相当する記号の並びを記載している。しかし、当該カラムには、抽出された部分に相当する音波形（図７）が格納されていてもよい。「タスク種別」は、該当発話テキストの内容に対応して、対話ロボット１にどのタスクを実行させるべきかを示す。例えば、「来週横浜に行く」という発話は、対話ロボット１に予定を登録させる意図でなされる発話であるので、当該発話テキストには、予定の登録を行うタスク「Ａ」が紐付けられる。なお、図６示すコーパスには、６つの発話テキストについて情報だけが示されているが、これは一例を挙げたに過ぎず、実際のコーパスは、膨大な量の発話テキストについて、上述の各カラムの情報を保有する。
【００６４】
図７は、音声データから抽出される特徴量の具体例を示す図である。本実施形態では、特徴量は、前記発話を含む音声データから、あらかじめ定められた条件に合致する１以上の音素が抽出されたデータである。具体的には、音声データに含まれる発話に相当する音波形から、母音に相当する音波形が抽出されたデータである。特徴量は、母音が抽出された音波形を、母音の音素のそれぞれを表す記号（例えば、Ａ、Ｅ、Ｉ、Ｏ、Ｕなどのアルファベット）と、母音以外の音素であることを表す記号（例えば、−（ダッシュ）など）との並びに置き換えたデータであってもよい。
【００６５】
例えば、図７に示す例では、特徴量抽出部２２または特徴量抽出部６５は、発話「ＳＨＡＮＰＵＫＡＵ（シャンプー買う）」の音波形７０１から、母音と母音以外の音素を表す記号の並び「−Ａ−−Ｕ−ＡＵ」で構成された特徴量７０２を抽出する。
【００６６】
上述の母音の音波形で構成された特徴量の抽出は、一例として、以下の手順で実現する。音声データから高速フーリエ変換（ＦＦＴ；Fast Fourier Transform）によって周波数分解することによって周波数スペクトルを得る。音波形の部分に相当するスペクトルに基づいて、ある特定の周波数が大きく観測されたことを根拠に母音（例えば、Ａ、Ｅ、Ｉ、Ｏ、Ｕのいずれか）を特定する。そして、該当する音波形の部分に特定した母音を割り当てることで実現する。なお、子音であることは、音波形において、音程の変化を追うことで同定が可能である。以上の手順を採用して特徴量を音声データから抽出することには、以下のメリットがある。すなわち、対話ロボット１が計算能力の低いＣＰＵを搭載した装置であって、複雑な処理ができない場合であっても、以上の手順を採用すれば、対話ロボット１が特徴量を抽出することが可能である。以上の手順は、対話ロボット１の特徴量抽出部２２、および、応答制御サーバ２の特徴量抽出部６５によって実施され、これにより、音声データから母音波形で構成された特徴量が取得され得る。
【００６７】
なお、対話ロボット１に十分に高機能なＣＰＵを搭載できる場合には、母音ではなく、子音を使ったＳｏｕｎｄｅｘまたはＭｅｔａｐｈｏｎｅなどといったアルゴリズムを、特徴量を抽出するためのアルゴリズムとして採用してもよい。特徴量を抽出するためのアルゴリズムは任意のものを採用することができるが、対話ロボット１の特徴量抽出部２２と、応答制御サーバ２の特徴量抽出部６５とは、同じアルゴリズムを用いる必要がある。
【００６８】
図８は、対話ロボットおよび応答制御サーバの各学習データ記憶部に記憶される学習データの具体例を示す図である。応答制御サーバ２の学習データ記憶部８３に記憶される学習データは、コーパス記憶部８２に記憶されているコーパスに基づいて、学習データ生成部６６によって生成される。その後、実績データ記憶部８４に蓄積される実績データに基づいて、学習データ生成部６６によって適宜更新される。対話ロボット１の学習データ記憶部４０に記憶される学習データは、応答制御サーバ２から学習データ記憶部８３に記憶されている最新の学習データが転送された場合に、学習データ管理部２５によって更新される。
【００６９】
学習データは、一例として、「クラスタ名」、「タスク属性」、「標本特徴量」および「予測時間」のカラムを有するテーブルである。「クラスタ名」は、クラスタ（グループ）を一意に識別するための情報であり、文字、記号、数字などで構成される。クラスタとは、コーパスに登録されている膨大な量の発話テキストを、特徴量の類似性に基づいて、数個から数十個（例えば、１０〜５０個程度）のグループに分類したときの、グループのことである。換言すれば、学習データ生成部６６が、コーパスに含まれる各発話テキストを、いずれかのクラスタに属するように分類する。この分類手順の詳細については後述する。
【００７０】
「タスク属性」（クラスタの性質）は、クラスタの属性を表す情報である。詳細には、タスク属性は、該当クラスタに属している発話テキストのタスク種別の内訳を示す情報である。例えば、図８のクラスタ「β」のタスク属性を見ると、クラスタ「β」には、３つの発話テキストが属しており、これらの発話テキストのうち、２つがタスク「Ａ」を対話ロボット１に実行させることを意図した発話テキストであり、残り１つがタスク「Ｂ」を対話ロボット１に実行させることを意図した発話テキストである、ということが分かる。
【００７１】
「標本特徴量」は、該当クラスタに属するすべての発話テキストの特徴量を代表する１つの特徴量を指す。クラスタに属する発話テキストが１つしかない場合には、学習データ生成部６６は、その発話テキストの特徴量を標本特徴量として選択し、そのまま当該カラムに格納してもよい。クラスタ「β」のように、複数の発話テキストが属している場合には、学習データ生成部６６は、そのうちの任意の１つの発話テキストの特徴量を標本特徴量として選択してもよい。あるいは、学習データ生成部６６は、クラスタ内の各発話テキストの特徴量のうち、中央値に最も近い特徴量を標本特徴量として選択してもよい。あるいは、学習データ生成部６６は、クラスタ内の全発話テキストの特徴量との間で、類似性が等距離となるような特徴量を生成し、これを標本特徴量として採用してもよい。
【００７２】
「予測時間」（クラスタの性質）は、クラスタごとに算出された、応答シナリオ生成時間Ｔ４の予測値を示す情報である。つまり、該当クラスタに属している発話テキストの意図に対応して応答シナリオを生成するとしたら、所要時間はどのくらいかということを予測した値が、当該カラムに格納される。学習データ生成部６６は、クラスタごとの予測時間を、タスク属性と、タスクに対応付けられている所要時間平均値（図５参照）とに基づいて算出する。クラスタに属する１以上の発話テキストに対応付けられているタスクが１種類しかない場合には、学習データ生成部６６は、当該タスクの所要時間平均値をそのまま、該当クラスタの予測時間として採用してもよい。例えば、クラスタ「α」に属する発話テキストのタスク種別は「Ａ」の１種類だけである。したがって、タスク「Ａ」の所要時間平均値「５００（ｍｓ）」を、そのまま、クラスタ「α」の「予測時間」として採用することができる。
【００７３】
クラスタに属している発話テキストのタスクが複数種類に及ぶ場合には、学習データ生成部６６は、該当クラスタのタスク属性に基づく重み付き平均によって、予測時間を算出してもよい。例えば、学習データ生成部６６は、クラスタ「β」の予測時間を以下のように算出する；
クラスタ「β」の予測時間（ｍｓ）
＝（Ｘａ＊Ｙａ＋Ｘｂ＊Ｙｂ）／（Ｘａ＋Ｘｂ）
＝（２＊５００＋１＊８００）／（２＋１）
＝６００
ここで、Ｘａは、クラスタ「β」内で、タスク「Ａ」が対応付けられている発話テキストの個数であり、図８に示す例では、「２」である。Ｙａは、タスク「Ａ」の所要時間平均値であり、図５に示す例では、「５００（ｍｓ）」である。Ｘｂは、クラスタ「β」内で、タスク「Ｂ」が対応付けられている発話テキストの個数であり、図８に示す例では、「１」である。Ｙｂは、タスク「Ｂ」の所要時間平均値であり、図５に示す例では、「８００（ｍｓ）」である。
【００７４】
クラスタの予測時間を算出する方法として、その他の方法を採用することができる。学習データ生成部６６は、１つのクラスタに属する発話テキストの数が何千個〜何万個というように膨大になる場合には、統計的手法によって予測時間を算出してもよい。例えば、学習データ生成部６６は、重み付き平均＋標準偏差値によって、該当クラスタの予測時間を算出してもよい。また、学習データ生成部６６は、クラスタのタスク属性を参照して、クラスタ内に、あるタスクが対応付けられている発話テキストは１００個ある一方で、別のあるタスクが対応付けられている発話テキストは１個しかないという場合には、学習データ生成部６６は、前記別のあるタスクの予測時間および個数を無視して、重み付き平均にて予測時間を算出してもよい。あるいは、学習データ生成部６６は、タスク属性に含まれる各タスク種別の「利用回数」（図５参照）を参照し、あるタスクの利用回数が他のタスクの利用回数と比較して１／１００以下の場合に、前記あるタスクの予測時間および個数を無視して、重み付き平均にて予測時間を算出してもよい。
【００７５】
学習データ生成部６６は、コーパスに基づいて発話テキストを分類した結果生じたすべてのクラスタについて、「クラスタ名」、「タスク属性」、「標本特徴量」および「予測時間」を付与し、図８に示すような学習データを生成する。
【００７６】
図９は、応答制御サーバ２の実績データ記憶部８４に記憶される実績データの具体例を示す図である。実績データは、実績データ管理部６２によって管理される。実績データは、一例として、「音声データ」、「特徴量」、「タスク種別」および「Ｔ４実測時間」のカラムを有するテーブルである。実績データは、さらに、「会話長」および「Ｔ３実測時間」のカラムを有していてもよい。
【００７７】
「音声データ」のカラムには、通信部５２が対話ロボット１から受信した音声データが格納される。「特徴量」のカラムには、特徴量抽出部６５によって該当音声データから抽出された特徴量が格納される。図示の例では、特徴量は、母音の文字列として示されているが、特徴量のカラムには、実際には、母音の音波形部分が格納される。「タスク種別」のカラムには、該当音声データから変換された発話テキストに基づいて、解釈部６１が意図を解釈した結果判別されたタスク種別が格納される。「Ｔ４実測時間」のカラムには、時間測定部６４が測定した応答シナリオ生成時間Ｔ４、すなわち、該当音声データに対応する応答シナリオが完成するのにかかった実際の時間が格納される。
【００７８】
「会話長」のカラムには、上述の受信された音声データに基づいて音声認識部６０が特定した会話長が格納される。「Ｔ３実測時間」のカラムには、時間測定部６４が測定した音声認識時間Ｔ３、すなわち、音声認識部６０が、該当音声データを認識して発話テキストを生成するのにかかった実際の時間が格納される。「会話長」のカラムと、「Ｔ３実測時間」のカラムとで、上述の音声認識実績テーブル９０１が構成される。
【００７９】
学習データ生成部６６は、音声データを受信するごとに１つずつレコードを作成し、登録する。このとき、「特徴量」のカラムは、空である。特徴量抽出部６５は、図９に示す音声データのレコードが、ある程度の数（例えば、千個〜一万個）蓄積された適宜のタイミングで、各音声データについて、まとめて、特徴量を抽出する処理を実行する。
【００８０】
学習データ生成部６６は、特徴量抽出部６５によって、実績データに特徴量が補完されると、補完された実績データに基づいて、図５に示すタスクデータの更新と、図８に示す学習データの更新とを実施する。
【００８１】
実績データ管理部６２は、レコードが作成された後、音声データが音声認識部６０によって処理されるたびに、該音声データの会話長と、音声認識時間Ｔ３の実測時間とを、それぞれのカラムに格納してもよい。実績データ管理部６２は、「会話長」と「Ｔ３実測時間」とが埋まったレコードがある程度（例えば、１００レコード）蓄積されると、これらのカラムを、実績データから抽出して、音声認識実績テーブル９０１とし、通信部５２を介して対話ロボット１に提供してもよい。
【００８２】
（２）応答制御サーバの処理フロー
図１０は、応答制御サーバ２の学習データ生成部６６が学習データを新規に生成するときの処理の流れを示すフローチャートである。本フローチャートに記載された一連の処理は、例えば、未使用の応答制御サーバ２が、対話システム１００に新規に設置されたとき、または、コーパス記憶部８２に記憶されているコーパスが更新されたときに開始される。
【００８３】
まず、学習データ生成部６６は、コーパス記憶部８２に記憶されているすべての発話テキスト（図６参照）の特徴量同士を比較して、特徴量の違いの程度（または類似度）を、「距離」という概念に置き換えて求める（Ｓ１）。学習データ生成部６６は、例えば、レーベンシュタイン距離（Levenshtein distance）関数に基づいて、特徴量間の距離を求めてもよい。
【００８４】
次に、学習データ生成部６６は、求めた特徴量間の距離に基づく距離行列を生成してもよい（Ｓ２）。図１１は、学習データ生成部６６が生成した距離行列（三角行列）の具体例を示す図である。距離の値が少ないほど、比較した両者の発話テキストが似ていることを意味する。当然のことながら、同じ発話テキスト同士を比較すれば、テキストが完全に一致しているので、距離は「０」と求められる。例えば、図１１に示す距離行列によれば、コーパスのテキストＩＤ「２」の発話テキストと、比較相手であるテキストＩＤ「３」の発話テキストとの距離は「２」である。一方、コーパスのテキストＩＤ「２」の発話テキストと、比較相手であるテキストＩＤ「５」の発話テキストとの距離は「９」である。これは、テキストＩＤ「２」の発話テキストは、テキストＩＤ「５」の発話テキストとよりも、テキストＩＤ「３」の発話テキストとの距離が短く、類似していることを意味する。
【００８５】
なお、図１１に示す例では、説明の簡略化のために、コーパスに６個の発話テキストが格納されている場合に生成される距離行列が示されている。実際には、コーパスには、膨大な量の発話テキストが格納されており、その膨大な量の発話テキストの特徴量間の比較結果について距離行列が生成されることになる。
【００８６】
なお、図１１に示す距離行列の生成は省略されてもよい。学習データ生成部６６は、距離行列に限らず、コーパス内のどの発話テキストとどの発話テキストとがどのくらいの距離にあるのかをすべて把握できる情報を読み出すことができればよい。
【００８７】
次に、学習データ生成部６６は、距離が近い発話テキスト同士をクラスタリングする（Ｓ３）。クラスタリングの方法としては、例えば、Ｋ平均法（K-means）などの方法が採用され得る。距離がいくつ以下であれば同じクラスタとなるのかについては適宜決定される。図１１には、６つの発話テキストが、４つのクラスタに分類された例が示されている。４つのクラスタには、便宜上、それぞれ、「α」、「β」、「γ」および「ε」という名を付す。
【００８８】
次に、学習データ生成部６６は、各クラスタについて、クラスタのタスク属性を特定する（Ｓ４）。タスク属性とは、クラスタの中に、どのタスクに対応する発話テキストが何個存在するのかを示す情報である。図６に示す例では、テキストＩＤ「１」〜「６」の６つの発話テキストに対応付けられたタスクは、それぞれ順に、Ａ、Ａ、Ａ、Ｂ、ＢおよびＣである。したがって、図１１に示す例においては、クラスタαのタスク属性は、「タスクＡが対応付けられた発話テキストが１個（以下、“Ａ（１）”と表記する）」である。クラスタβのタスク属性は、「タスクＡが対応付けられた発話テキストが２個、および、タスクＢが対応付けられた発話テキストが１個（以下、“Ａ（２），Ｂ（１）”と表記する）」である。クラスタγのタスク属性は、「タスクＢが対応付けられた発話テキストが１個（以下、“Ｂ（１）”と表記する）」である。そして、クラスタεのタスク属性は、「タスクＣが対応付けられた発話テキストが１個（以下、“Ｃ（１）”と表記する）」である。
【００８９】
次に、学習データ生成部６６は、各クラスタについて、タスク属性に基づいて、予測時間を算出する（Ｓ５）。予測時間とは、クラスタに属する発話テキストに対応する応答シナリオを生成するのにかかる所要時間（応答シナリオ生成時間Ｔ４）の予測値を意味する。上述のとおり、学習データ生成部６６は、クラスタαの予測時間として、タスク属性“Ａ（１）”に基づいて、タスクＡの所要時間平均値５００ｍｓ（図５参照）をそのまま採用してもよい。あるいは、上述のとおり、学習データ生成部６６は、クラスタβの予測時間を、タスク属性“Ａ（２），Ｂ（１）”に基づいて、（２個＊５００ｍｓ＋１個＊８００ｍｓ）／（２＋１）＝６００ｍｓと算出してもよい。
【００９０】
次に、学習データ生成部６６は、各クラスタについて、当該クラスタを代表する標本特徴量を選択または生成する（Ｓ６）。標本特徴量の選択方法または生成方法についてはすでに詳細は述べたので、ここでは繰り返さない。
【００９１】
以上のようにして、学習データ生成部６６が、クラスタごとに、「タスク属性」、「標本特徴量」および「予測時間」を特定することにより、学習データ記憶部８３に記憶する学習データ（図８参照）が生成される。
【００９２】
図１２は、応答制御サーバ２の各部が、応答シナリオを生成し、その所要時間を測定するときの処理の流れを示す図である。本フローチャートに記載された一連の処理は、例えば、応答制御サーバ２が、対話ロボット１から、応答シナリオｄ２を要求するメッセージを音声データとともに受信したときに開始される。
【００９３】
通信部５２を介して、音声データが制御部５０に受信されると（Ｓ２１でＹＥＳ）、音声認識部６０は、受信された音声データに対して音声認識処理の実行する（Ｓ２２）。ここで、時間測定部６４は、音声認識処理が開始されてから終了する（すなわち、発話テキストの生成が完了する）までの時間を、音声認識時間Ｔ３の実測時間として計測してもよい。音声認識処理が終了して発話テキストが生成されると、時間測定部６４は、この時点で、応答シナリオ生成時間Ｔ４の測定を開始する（Ｓ２３）。
【００９４】
続いて、解釈部６１は、生成された発話テキストが示す意味内容に基づいて、当該発話テキストに基づく発話に対応して対話ロボット１が実行すべきタスクを判別する（Ｓ２４）。判別されるタスクは、１つでも複数でもよい。解釈部６１は、判別結果を実績データ管理部６２およびシナリオ生成部６３に通知する。
【００９５】
次に、シナリオ生成部６３は、解釈部６１によって生成された解釈結果に基づいて、応答シナリオを生成する（Ｓ２５）。解釈結果には、前記発話テキストの意味内容と、タスクの判別結果とが少なくとも含まれている。
【００９６】
シナリオ生成部６３は、応答シナリオを生成すると、通信部５２を介して、生成した応答シナリオを要求元の対話ロボット１に返信する（Ｓ２６）。この時点で、時間測定部６４は、応答シナリオ生成時間Ｔ４の測定を終了する（Ｓ２７）。時間測定部６４は、測定した実測値（応答シナリオ生成時間Ｔ４の実測時間）を、実績データ管理部６２に通知する。
【００９７】
実績データ管理部６２は、Ｓ２１で受信された音声データに、Ｓ２４で判別されたタスクの種別と、Ｓ２７で取得された応答シナリオ生成時間Ｔ４の実測時間とを紐付けて、実績データ記憶部８４（図９参照）に保存する（Ｓ２８）。この時点で、図９に示す実績データのうち、Ｓ２１で受信された１つの音声データに関して、「音声データ」、「タスク種別」、および、「Ｔ４実測時間」のカラムに値が埋められる。さらに、実績データ管理部６２は、Ｓ２２において、時間測定部６４によって取得された音声認識時間Ｔ３の実測時間と、音声認識部６０によって音声認識処理された前記音声データの会話長とを、前記音声データに紐付けて、実績データ記憶部８４に保存してもよい。これにより、前記実績データのうち、Ｓ２１で受信された１つの音声データに関して、さらに、「会話長」、および、「Ｔ３実測時間」のカラムに値が埋められる。
【００９８】
このように、音声データが受信されるたびに、図９に示す実績データにおいて、「特徴量」のカラム以外のカラムに値が埋められた状態で、該音声データに紐付けてレコードが１つずつ追加されていく。
【００９９】
図１３は、応答制御サーバ２の各部が、学習データを更新および転送するときの処理の流れを示す図である。本フローチャートに記載された一連の処理は、例えば、上述の図１２に示す一連の処理が繰り返し実行されることにより、図９に示す実績データにおいて、「特徴量」のカラムが空欄の状態のレコードがある程度（例えば、１００個〜数万個単位で）蓄積されたときに、開始されることが好ましい。
【０１００】
図９に示す実績データにおいて、未学習の音声データ、すなわち、「特徴量」のカラムが空欄の状態のレコードが、所定数（例えば、１００個〜数万個）蓄積されると（Ｓ４１でＹＥＳ）、特徴量抽出部６５は、未学習の音声データのそれぞれから特徴量を抽出する（Ｓ４２）。図７に示すとおり、特徴量７０２は、音声データの音波形７０１から、母音の音波形を抜き出すことで抽出される。
【０１０１】
次に、学習データ生成部６６は、未学習の各音声データに紐付けられた「タスク種別」の各値および「Ｔ４実測時間」の各値に基づいて、図５に示すタスクデータにおける、「所要時間平均値」のカラムおよび「利用回数」のカラムをタスクごとに更新する（Ｓ４３）。そして、学習データ生成部６６は、「所要時間平均値」および「利用回数」の値を、タスクごとに更新したことに伴って、クラスタごとに、応答シナリオ生成時間Ｔ４の予測時間を再計算して、図８に示す学習データにおける「予測時間」のカラムをクラスタごとに更新する（Ｓ４４）。学習データ生成部６６は、上述のようにして更新した学習データを、所定のタイミングで（Ｓ４５でＹＥＳ）、通信部５２を介して対話ロボット１に提供する（Ｓ４６）。Ｓ４１の時点で未学習であった各音声データは、図９に示す実績データにおいて、各音声データに、Ｓ４２で抽出された特徴量が紐付けて格納されることにより、学習済みとなる。この後、さらに、音声データが応答制御サーバ２によって受信され、「特徴量」が空のレコードが蓄積されて、Ｓ４１以降の各処理が繰り返し実行される。
【０１０２】
（対話ロボットの機能詳細）
（１）対話ロボットが保持する各種データについて
対話ロボット１は、学習データ記憶部４０に記憶されている学習データ（図８）に基づいて、ユーザから受け付けた発話に対する応答時間を推定する。より詳細には、応答時間のうち、応答シナリオ生成時間Ｔ４をより早く推定する。
【０１０３】
対話ロボット１の学習データ管理部２５は、通信部１３を介して、応答制御サーバ２から最新の学習データを受信すると、その学習データを学習データ記憶部８３に記憶する。このように、学習データは、定期的にメンテナンスされる。時間推定部２３は、常に最新の学習データを用いて、計算量の少ない処理を実行するだけで済み、推定をより早く実施することができる。具体的には、時間推定部２３は、新規に入力されたユーザの発話に対応した応答シナリオについての応答シナリオ生成時間Ｔ４を推定するとき、図８に示す最新の学習データを参照することにより、当該学習データにおけるクラスタの数に等しい回数のレーベンシュタイン距離を計算するだけで済む。例えば、図８に示すとおり、学習データにおいて、４つのクラスタが登録されている場合には、時間推定部２３は、新規に入力されたユーザの発話に対応する音声データの特徴量と、それぞれのクラスタの標本特徴量との距離を求めるだけで、つまり、４回距離を求めるだけで、新規の発話について、応答シナリオ生成時間Ｔ４を推定することができる。このように、対話ロボット１の時間推定部２３が応答シナリオ生成時間Ｔ４の推定のために実施するべき計算の量は、上述の学習データを用いることにより、非常に少なく抑えることができる。
【０１０４】
なお、時間推定部２３は、定期的または不定期に更新される、音声認識実績テーブル記憶部４２における音声認識実績テーブル９０１を参照して、音声認識時間Ｔ３を算出してもよい。時間推定部２３は、音声認識実績テーブル９０１の複数のレコードに対する回帰分析によって求めた値を、音声認識時間Ｔ３として推定してもよい。例えば、時間推定部２３は、当該複数のレコードからリッジ回帰によって、音声認識時間Ｔ３を推定することができる。
【０１０５】
（２）対話ロボットの処理フロー
図１４は、対話ロボット１がユーザの発話に応じて応答を出力するときの処理の流れを示す図である。なお、実施形態１では、本フローチャートに記載された一連の処理のうち、Ｓ７０およびＳ７１は省略されてもよい。Ｓ７０およびＳ７１については、実施形態２で詳細に説明する。
【０１０６】
ユーザが対話ロボット１に対して発話することにより、ユーザの発話の音がマイク１２によって集音され、該音は、音データとして入力処理部２０に入力される。このようにマイク１２を介して、音が音データとして入力処理部２０に入力されると（Ｓ６１でＹＥＳ）、入力処理部２０は、音データの音波形から、ユーザが発話している部分に対応する音声区間を抜き出して、音声データを取得する（Ｓ６２）。ユーザと対話ロボット１とのコミュニケーションを成立させるために、取得された前記音声データに対して、対話ロボット１は何らかの応答を出力しなければならない。以降、新規に入力された、処理の対象となる前記音声データを、他の音声データと区別するために注目音声データと称する。
【０１０７】
入力処理部２０は、通信部１３を介して、注目音声データを応答制御サーバ２に送信し、応答制御サーバ２に対して、該注目音声データに対応する応答シナリオｄ２を供給するように要求する（Ｓ６３）。一方、注目音声データを場つなぎ処理部２１に通知して、必要に応じて場つなぎ処理を実行するように、場つなぎ処理部２１に対して指示する。場つなぎ処理部２１は、特徴量抽出部２２、時間推定部２３およびシナリオ生成部２４の各部を制御して、必要に応じて場つなぎ処理を実行する。
【０１０８】
本実施形態では、少なくとも、応答シナリオ生成時間Ｔ４を推定するための処理が実行される。具体的には、まず、特徴量抽出部２２は、注目音声データから、母音の音波形で構成される特徴量を抽出する（Ｓ６４）。
【０１０９】
続いて、時間推定部２３は、Ｓ６４で抽出された注目音声データの特徴量を、学習データ記憶部４０に記憶されている学習データ（図８）における、各クラスタの標本特徴量のそれぞれと比較する。そして、比較結果に基づいて、注目音声データが属するクラスタを特定する（Ｓ６５）。
【０１１０】
図１５は、対話ロボットの時間推定部２３が、注目音声データの特徴量を、学習データに記憶された各クラスタの標本特徴量のそれぞれと比較した結果の一例を示す図である。
【０１１１】
図８に示す例では、クラスタは、α、β、γ、εの４つである。そこで、時間推定部２３は、注目音声データの特徴量と、各クラスタの標本特徴量との比較を４回実施し、比較結果、すなわち、レーベンシュタイン距離関数に基づく距離を、比較相手のクラスタごとに出力する。図１５に示す例では、一例として、注目音声データの特徴量について、クラスタαの標本特徴量との距離は１０であり、クラスタβの標本特徴量との距離は５であり、クラスタγの標本特徴量との距離は１１であり、クラスタεの標本特徴量との距離は６である。
【０１１２】
図１５に示す例では、注目音声データの特徴量との距離が最も小さいのは、クラスタβの標本特徴量である。したがって、時間推定部２３は、注目音声データは、クラスタβに属すると判断する。そして、時間推定部２３は、クラスタβにおける、応答シナリオ生成時間Ｔ４の予測時間を、学習データ記憶部４０から読み出し、読み出した予測時間（図８に示す例では、クラスタβの予測時間「６００ｍｓ」）を、注目音声データに係る応答シナリオ生成時間Ｔ４として推定する（Ｓ６６）。
【０１１３】
時間推定部２３は、すでに述べた方法にて、応答時間に含まれるその他の所要時間（要求準備時間Ｔ１、上り転送時間Ｔ２、音声認識時間Ｔ３、下り転送時間Ｔ５および応答出力準備時間Ｔ６）をそれぞれ推定する。そして、時間Ｔ１〜Ｔ６を合計して、注目音声データに係る応答時間を推定する（Ｓ６７）。
【０１１４】
Ｓ６７で推定した応答時間が、閾値記憶部４３に記憶されている第１閾値（例えば、１．５秒）以内である場合（Ｓ６８でＮＯ）、場つなぎ処理部２１は、場つなぎ応答を出力しないことを決定する。そして、対話ロボット１は、応答制御サーバ２から提供される応答シナリオｄ２を待機する状態に遷移する（Ｓ６９）。本実施形態では、Ｓ７０およびＳ７１が省略され、応答シナリオｄ２が提供されるまで、Ｓ６９の待機状態が継続される。正規の応答は、推定どおり、ユーザの発話から１．５秒以内に出力される見込みが高いため、場つなぎ応答を出力しなくとも、不自然な会話の途切れが生じることなく、ユーザと対話ロボット１との自然なコミュニケーションが実現される。
【０１１５】
一方、Ｓ６７で推定した応答時間が、閾値記憶部４３に記憶されている第１閾値（例えば、１．５秒）を超える場合（Ｓ６８でＹＥＳ）、場つなぎ処理部２１は、場つなぎ応答を出力する（Ｓ７２）。具体的には、シナリオ生成部２４は、場つなぎ処理部２１の指示にしたがい、場つなぎ応答データ記憶部４１に記憶されている場つなぎ応答データを利用して場つなぎ応答シナリオを生成する。応答制御部２６は、場つなぎ処理部２１から生成された場つなぎ応答シナリオを受け取り、該場つなぎ応答シナリオにしたがって、音声出力制御部２７、駆動制御部２８、および、ＬＥＤ制御部２９の各部を制御して、場つなぎ応答を出力する。場つなぎ応答を出力している間または直後に、応答制御サーバ２から正規の応答シナリオｄ２を受け取れば、応答制御部２６は、該応答シナリオｄ２にしたがって、正規の応答を出力することができる。
【０１１６】
したがって、ユーザの発話に対する正規の応答が出力されるまでに、１．５秒より長くかかると推定された場合には、その時点で、場つなぎ応答が出力される。そして、その後、正規の応答が間に合って出力される。このため、正規の応答の出力に時間がかかるとしても、そのことが推定できた時点ですぐさま場つなぎ応答を出力することができる。結果として、不自然な会話の途切れを生じさせることなく、ユーザと対話ロボット１との自然なコミュニケーションを実現することができる。
【０１１７】
（効果）
本実施形態に係る対話ロボット１は、応答制御サーバ２が音声認識処理を完了させるよりも前に、すなわち、自装置にて音声データが得られた時点で、応答時間（Ｔ１〜Ｔ６）を推定することができる。とりわけ、応答シナリオ生成時間Ｔ４（図４参照）を推定することができる。そのため、高速に場つなぎ応答の要否を決定し、場つなぎ応答が必要と判断されれば、間を空けずに適切なタイミングで場つなぎ応答を出力することができる。
【０１１８】
その上、応答シナリオ生成時間Ｔ４の推定にあたっては、応答制御サーバ２から提供された学習データ（図８参照）を用いることにより、対話ロボット１は、低負荷処理によって、応答シナリオ生成時間Ｔ４の推定を高速に行うことが可能となる。具体的には、応答シナリオ生成時間Ｔ４を推定するために、従来であれば、音声認識、および、コーパス内の膨大な量の音波形の比較など、非常に負荷が高い処理が必要となる。これに対し、本実施形態によれば、対話ロボット１は、学習データにおける各クラスタの標本特徴量との比較を行うという負荷の低い処理により、応答シナリオ生成時間Ｔ４を推定することができる。
【０１１９】
そして、これらのことは、リソースの制約などの事情から、音声認識機能または応答シナリオ生成機能が搭載されないクライアント装置（対話ロボット１）であっても、応答時間を推定することができるようになるという、さらなる利点をもたらす。また、クライアント装置（対話ロボット１）に高性能な制御部（ＣＰＵなど）を搭載する必要がないため、コストの観点からもさらなる利点をもたらす。その上、クライアント装置において応答時間を推定する処理は、サーバ装置（応答制御サーバ２）による音声認識処理および応答シナリオ生成処理の結果待ちの間に実行される。したがって、クライアント装置は、サーバ装置から提供される結果が遅延することを事前に予測して遅延への対策（例えば、場つなぎ応答）を速やかに実行することができる。結果として、応答が間延びすることを回避し、ユーザとの間で自然な対話を実現することができる。
【０１２０】
〔実施形態２〕
本発明の他の実施形態について、図１および図１４に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【０１２１】
本実施形態では、閾値記憶部４３（図１参照）には、前記第１閾値に加えて、第２閾値が記憶されている。第２閾値は、対話ロボット１において、実際の応答待機時間が当該第２閾値に到達すると、推定された応答時間によらず、場つなぎ応答が必要であると判断するために用いられる閾値である。第２閾値としては、例えば、ユーザが会話の間に対して違和感なく待てる限界の時間が設定されることが好ましい。第２閾値は、例えば、２秒である。しかし、第２閾値は、第１閾値（１．５秒）と同じに設定されてもよい。これにより、推定どおりに第１閾値に設定された時間以内に応答が出力されなかったとしても、応答が何ら出力されない間が第２閾値を超えて継続するという事態を確実に回避することができる。
【０１２２】
本実施形態では、対話ロボット１が、ユーザの発話に応じて応答を出力する処理（図１４参照）を実行するとき、Ｓ７０およびＳ７１が省略されずに実行される。
【０１２３】
実施形態１と同様に、対話ロボット１において、Ｓ６１〜Ｓ６７の各ステップが実行される。Ｓ６８でＹＥＳの場合、実施形態１と同様に、Ｓ７２が実行される。
【０１２４】
一方、Ｓ６７で推定した応答時間が、閾値記憶部４３に記憶されている第１閾値（例えば、１．５秒）以内である場合（Ｓ６８でＮＯ）、場つなぎ処理部２１は、場つなぎ応答を出力しないことを決定する。そして、対話ロボット１は、応答制御サーバ２から提供される応答シナリオｄ２を待機する状態を継続する（Ｓ６９）。
【０１２５】
本実施形態では、応答シナリオｄ２が受信されることなく、実際の応答待機時間が第２閾値（例えば、２秒）に到達した場合（Ｓ７０でＮＯ、かつ、Ｓ７１でＹＥＳ）、場つなぎ処理部２１は、場つなぎ応答を出力することを再決定し、この再決定にしたがって、応答制御部２６が場つなぎ応答を出力する（Ｓ７２）。前記実際の応答待機時間とは、例えば、音声データが応答制御サーバ２に送信された時点Ｐ１（図４参照）からの経過時間であってもよいし、ユーザの発話の音データがマイク１２によって集音された時点Ｐ０からの経過時間であってもよい。
【０１２６】
したがって、ユーザの発話に対する正規の応答が出力されるのに１．５秒はかからないと推定されて、一旦は、場つなぎ応答が出力不要と判断された場合であって、正規の応答が、推定どおりに１．５秒以内に出力されなかった場合に、応答待機時間が２秒に到達すると、場つなぎ応答が出力要と再決定されて、該場つなぎ応答が出力される。
【０１２７】
これにより、２秒を超えて何ら応答が出力されないという事態を確実に回避することができる。結果として、不自然な会話の途切れが生じることを確実に回避し、ユーザと対話ロボット１との自然なコミュニケーションが実現される。
【０１２８】
〔実施形態３〕
対話ロボット１の時間推定部２３は、上り転送時間Ｔ２および下り転送時間Ｔ５の少なくともいずれか一方を、音データが集音されて、音声データが取得されたときの曜日および時間帯などを考慮して、動的に推定してもよい。上り転送時間Ｔ２および下り転送時間Ｔ５は、音声データのデータ容量のみならず、対話ロボット１と応答制御サーバ２との間の通信のトラフィックまたはトランザクションの混雑具合にも左右されるからである。
【０１２９】
具体例を１つ挙げると、時間推定部２３は、上り転送時間Ｔ２を、音声データのデータ量、および、音声データの元となる音データがマイク１２によって集音された時間帯または曜日などに基づいて、推定してもよい。
【０１３０】
この場合、対話ロボット１の学習データ管理部２５は、音声データが入力処理部２０によって取得されるたびに、該音声データのデータ量と、該音声データが取得された曜日および時間帯と、上り転送時間Ｔ２の実測時間（Ｔ２実測時間）とを紐付けて、記憶部１１に記憶されている上り転送実績テーブルに蓄積していく。上り転送時間Ｔ２の実測時間は、例えば、対話ロボット１の図示しない時間測定部が、通信部１３が音声データを応答制御サーバ２に送信してから、応答制御サーバ２から受領確認通知（acknowledge）を受信するまでの時間を計測することにより得られる。時間推定部２３は、上り転送実績テーブルに蓄積されたレコードの中から、新規に取得された音声データのデータ量と、取得された曜日および時間帯とが近いレコードを抽出し、抽出したレコードのＴ２実測時間に基づいて、新規の音声データの上り転送時間Ｔ２を推定してもよい。
【０１３１】
〔変形例〕
音声データを発話テキストに変換する機能、すなわち、音声認識部６０は、応答制御サーバ２とは別のサーバに設けられてもよいし、対話ロボット１に設けられてもよい。前者の場合、例えば、図３の（ｂ）に示すとおり、対話システム１００ａは、対話ロボット１および応答制御サーバ２に加えてさらに音声認識サーバ３を含んでもよい。音声認識サーバ３は、音声認識部６０を備え、応答制御サーバ２に代わりに、音声データを発話テキストに変換する処理を担う。この場合、対話ロボット１は、音声データｄ１を音声認識サーバ３に送信してもよい。音声認識サーバ３は、音声データｄ１から変換した発話テキストｄ３を応答制御サーバ２に供給してもよい。応答制御サーバ２は、供給された発話テキストｄ３を処理して、応答シナリオｄ２を生成し、対話ロボット１に送信してもよい。後者の場合、対話ロボット１は、音声認識結果である発話テキストｄ３を、応答制御サーバ２に送信して、応答シナリオｄ２を要求する。
【０１３２】
〔ソフトウェアによる実現例〕
対話ロボット１の制御ブロック（特に、入力処理部２０、場つなぎ処理部２１、特徴量抽出部２２、時間推定部２３、シナリオ生成部２４、学習データ管理部２５、応答制御部２６、音声出力制御部２７、駆動制御部２８、および、ＬＥＤ制御部２９）、ならびに、応答制御サーバ２の制御ブロック（特に、音声認識部６０、解釈部６１、実績データ管理部６２、シナリオ生成部６３、時間測定部６４、特徴量抽出部６５、および、学習データ生成部６６）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【０１３３】
後者の場合、対話ロボット１および応答制御サーバ２のそれぞれは、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、前記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、前記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が前記プログラムを前記記録媒体から読み取って実行することにより、本発明の目的が達成される。前記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して前記コンピュータに供給されてもよい。なお、本発明の一態様は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１３４】
〔まとめ〕
本発明の態様１に係る対話システム（１００）は、ユーザの発話を含む音声データを取得して、該発話に対応した応答を出力する対話装置（対話ロボット１）と、前記対話装置と通信して、前記応答を該対話装置に出力させるように、該対話装置を制御する応答制御装置（応答制御サーバ２）とを含み、前記対話装置は、前記音声データから、あらかじめ定められた条件に合致する１以上の音素（母音）を特徴量として抽出する第１の特徴量抽出部（特徴量抽出部２２）と、前記音声データの特徴量を、学習データ記憶部（４０）においてあらかじめ学習されている複数の標本特徴量と比較することにより、前記音声データが属するグループ（クラスタ）を特定し、特定したグループの性質（タスク属性、予測時間）に基づいて、前記応答の所要時間（応答時間）を推定する時間推定部（２３）とを備え、前記応答制御装置は、コーパス（図６：コーパス記憶部８２）に含まれる発話テキストのそれぞれについて、前記特徴量を抽出する第２の特徴量抽出部（特徴量抽出部６５）と、抽出された各特徴量に基づいて、前記コーパス内の各発話テキストをグルーピングして複数のグループを作成し、グループごとに、該グループに属する各発話テキストの性質に基づいて決定された該グループの性質と、該グループの標本特徴量とを関連付けた学習データ（図８：学習データ記憶部８３）を生成する学習データ生成部（６６）とを備え、前記時間推定部は、前記学習データ生成部によって生成された前記学習データを用いて前記所要時間を推定する。
【０１３５】
前記の構成によれば、対話システムは、対話装置と、応答制御装置とによって構成されている。そして、コーパスに含まれる膨大な量の発話テキストを処理しなければならないようなグルーピングの処理、および、学習の処理など、計算量が多い処理を、対話システムにおけるサーバとしての応答制御装置にて行い、計算量が少ない、所要時間の推定に係る処理を、対話システムにおけるクライアントとしての対話装置にて行う。これにより、処理能力が低い制御部が対話装置に搭載されていても、所要時間を推定することが可能な対話システムを実現することができる。その上、ユーザの発話が音声データとして取得された時点で、高速に所要時間を予測することが可能となる。
【０１３６】
本発明の態様２に係る対話装置は、ユーザの発話を含む音声データを取得して、該発話に対応した応答を出力する対話装置であって、前記音声データから、あらかじめ定められた条件に合致する１以上の音素を特徴量として抽出する第１の特徴量抽出部と、前記音声データの特徴量を、学習データ記憶部においてあらかじめ学習されている複数の標本特徴量と比較することにより、前記音声データが属するグループを特定し、特定したグループの性質に基づいて、前記応答の所要時間を推定する時間推定部とを備えている。前記の構成によれば、態様１に係る対話システムと同様の効果を奏する。
【０１３７】
本発明の態様３に係る対話装置は、前記態様２において、前記応答を該対話装置に出力させるように、該対話装置を制御する応答制御装置と通信する通信部（１３）を備え、前記応答制御装置は、前記対話装置から受信した音声データを音声認識して得られた発話テキストに基づいて、前記応答として前記対話装置に実行させる動作を決定し、該動作を定義した制御情報（応答シナリオｄ２）を生成するものであり、前記時間推定部は、前記応答制御装置が、前記制御情報を生成するのに要する、制御情報生成時間（応答シナリオ生成時間Ｔ４）を推定してもよい。
【０１３８】
本発明の態様４に係る対話装置では、前記態様３において、前記第１の特徴量抽出部は、前記対話装置が前記音声データを取得したときに、該音声データから特徴量を抽出し、前記時間推定部は、前記通信部が前記音声データを前記応答制御装置に送信するより前に、前記制御情報生成時間の推定を開始してもよい。これにより、音声データが取得された後、すぐに所要時間の推定が行われ、推定結果に応じた適切な対応を対話装置に採らせることが可能となる。
【０１３９】
本発明の態様５に係る対話装置は、前記態様３または４において、前記制御情報に基づく応答を出力する前に、前記対話装置によって生成される、前記制御情報よりも情報量が少ない代替制御情報（場つなぎ応答シナリオ）にしたがって、場つなぎ応答を出力するか否かを決定する場つなぎ処理部（２１）を備え、前記場つなぎ処理部は、前記時間推定部によって推定された前記所要時間が、第１閾値を超える場合に、前記場つなぎ応答を出力することを決定してもよい。これにより、所要時間が第１閾値を超えて長くなる場合には、場つなぎ応答が出力される。場つなぎ応答は、推定が完了した時点ですぐに出力されるため、正規の応答の出力に時間がかかるとしても、ユーザとの対話において不自然な間が生じることを回避することができる。
【０１４０】
本発明の態様６に係る対話装置では、前記態様５において、前記場つなぎ処理部は、前記ユーザによって前記発話がなされた時点以降の所定の時点（Ｐ０、Ｐ１）から、前記応答が前記対話装置によって出力されないまま経過した時間（実際の応答待機時間）が、第２閾値に到達した場合に、前記場つなぎ応答を出力することを決定してもよい。これにより、所要時間が第１閾値以内であると推定されて正規の応答の出力を待機している場合に、予測がはずれて所要時間が長引いている場合であっても、何も反応が示されないままの状態が第２閾値に設定された時間を超えて継続されることは確実に回避される。結果として、ユーザとの対話において不自然な間が生じることを回避することができる。
【０１４１】
本発明の態様７に係る対話装置では、前記態様２から６において、前記特徴量抽出部は、前記音声データから、母音に相当する音波形の部分を特徴量として抽出してもよい。
【０１４２】
本発明の態様８に係る応答制御装置は、ユーザの発話を含む音声データを取得して、該発話に対応した応答を出力する対話装置と通信して、前記応答を該対話装置に出力させるように、該対話装置を制御する応答制御装置であって、コーパスに含まれる発話テキストのそれぞれについて、あらかじめ定められた条件に合致する１以上の音素を特徴量として抽出する第２の特徴量抽出部と、抽出された各特徴量に基づいて、前記コーパス内の各発話テキストをグルーピングして複数のグループを作成し、グループごとに、該グループに属する各発話テキストの性質に基づいて決定された該グループの性質と、該グループの標本特徴量とを関連付けた学習データを生成する学習データ生成部とを備えている。前記の構成によれば、態様１に係る対話システムと同様の効果を奏する。
【０１４３】
本発明の態様９に係る応答制御装置は、前記態様８において、前記対話装置から受信した音声データを音声認識して得られた発話テキストに基づいて、前記応答として前記対話装置に実行させる動作を決定し、該動作を定義した制御情報を生成する制御情報生成部（シナリオ生成部６３）と、前記制御情報生成部が前記制御情報を生成するのに要した実測時間（図９：Ｔ４実測時間）を取得する時間測定部（時間測定部６４）と、受信された前記音声データに対応付けて前記実測時間を記録する実績データ管理部（６２）とを備え、前記学習データ生成部は、前記グループに属する発話テキストが前記ユーザによって発話された場合に、該発話に対応する応答を出力するための前記制御情報を生成するのに前記制御情報生成部が要すると予測される予測時間（図８：予測時間）を、前記グループの性質として決定し、記録された前記実測時間に基づいて、前記予測時間を更新してもよい。
【０１４４】
本発明の態様１０に係る応答制御装置は、前記態様９において、前記制御情報生成部は、前記発話テキストが意味する発話内容に対応して、前記対話装置に実行させるべきタスクを前記制御情報に定義し、前記応答制御装置は、さらに、タスクごとに、実測時間平均値を関連付けたタスクデータ（図５）を記憶するタスク記憶部（８０）を備え、前記実測時間平均値は、前記対話装置において過去に実行された同種の各タスクについて、各タスクが実行されるトリガとなった各発話に対応して、各制御情報を生成するのに前記制御情報生成部が要した各実測時間の平均値を示し、前記学習データ生成部は、前記グループに属する発話テキストのそれぞれに対応付けられたタスクに基づいて、該グループにどのタスクが対応付けられた発話テキストがいくつ属しているのかを示すタスク属性を、前記グループの性質として決定し、前記グループのタスク属性と、該タスク属性によって示された１以上のタスクに関連付けられている前記実測時間平均値とに基づいて、該グループの前記予測時間を算出してもよい。
【０１４５】
本発明の態様１１に係る対話装置の制御方法は、ユーザの発話を含む音声データを取得して、該発話に対応した応答を出力する対話装置の制御方法であって、前記音声データから、あらかじめ定められた条件に合致する１以上の音素を特徴量として抽出する第１の特徴量抽出ステップ（Ｓ６４）と、前記音声データの特徴量を、前記対話装置が備える学習データ記憶部においてあらかじめ学習されている複数の標本特徴量と比較することにより、前記音声データが属するグループを特定し（Ｓ６５）、特定したグループの性質に基づいて、前記応答の所要時間を推定する時間推定ステップ（Ｓ６６）とを含む。前記の方法によれば、態様２に係る対話装置と同様の効果を奏する。
【０１４６】
本発明の態様１２に係る応答制御装置の制御方法は、ユーザの発話を含む音声データを取得して、該発話に対応した応答を出力する対話装置と通信して、前記応答を該対話装置に出力させるように、該対話装置を制御する応答制御装置の制御方法であって、コーパスに含まれる発話テキストのそれぞれについて、あらかじめ定められた条件に合致する１以上の音素を特徴量として抽出する第２の特徴量抽出ステップ（Ｓ１）と、抽出された各特徴量に基づいて、前記コーパス内の各発話テキストをグルーピングして複数のグループを作成し（Ｓ３）、グループごとに、該グループに属する各発話テキストの性質に基づいて決定された該グループの性質と、該グループの標本特徴量とを関連付けた学習データを生成する（Ｓ４〜Ｓ６）学習データ生成ステップとを含む。前記の方法によれば、態様８に係る応答制御装置と同様の効果を奏する。
【０１４７】
本発明の各態様に係る対話装置および応答制御装置は、コンピュータによって実現してもよく、この場合には、コンピュータを、前記対話装置が備える各部（ソフトウェア要素）、または、前記応答制御装置が備える各部（ソフトウェア要素）として動作させることにより、前記対話装置または前記応答制御装置をコンピュータにて実現させる制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【０１４８】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。
【符号の説明】
【０１４９】
１  対話ロボット（対話装置）、２  応答制御サーバ（応答制御装置）、３  音声認識サーバ、１０，５０  制御部、１１，５１  記憶部、１２  マイク、１３，５２  通信部、１４  スピーカ、１５  サーボ、１６  ＬＥＤ、２０  入力処理部、２１  処理部、２２  特徴量抽出部（第１の特徴量抽出部）、２３  時間推定部、２４  シナリオ生成部、２５  学習データ管理部、２６  応答制御部、２７  音声出力制御部、２８  駆動制御部、２９  ＬＥＤ制御部、４０  学習データ記憶部、４１  応答データ記憶部、６０  音声認識部、６１  解釈部、６２  実績データ管理部、６３  シナリオ生成部（制御情報生成部）、６４  時間測定部、６５  特徴量抽出部（第２の特徴量抽出部）、６６  学習データ生成部、８０  タスク記憶部、８１  応答データ記憶部、８２  コーパス記憶部、８３  学習データ記憶部、８４  実績データ記憶部、１００、１００ａ  対話システム
【図１】
2018185431.tif 000003
【図２】
2018185431.tif 000004
【図３】
2018185431.tif 000005
【図４】
2018185431.tif 000006
【図５】
2018185431.tif 000007
【図６】
2018185431.tif 000008
【図７】
2018185431.tif 000009
【図８】
2018185431.tif 000010
【図９】
2018185431.tif 000011
【図１０】
2018185431.tif 000012
【図１１】
2018185431.tif 000013
【図１２】
2018185431.tif 000014
【図１３】
2018185431.tif 000015
【図１４】
2018185431.tif 000016
【図１５】
2018185431.tif 000017