(57)【要約】【課題】従来、適切な対話を継続させることができなかった。【解決手段】２以上の対話エンジンから、ユーザの発話に対応する応答である自動応答情報を受け付け得る対話制御装置であって、ユーザの発話に対応するユーザ発話情報をユーザ端末から受信する受信部と、ユーザ発話情報に対応する情報である発話情報を、１以上の対話エンジンに対して出力し得る発話情報出力部と、発話情報の出力に応じて、１以上の各対話エンジンから自動応答情報を受け付ける自動応答受付部と、自動応答受付部が受け付けた１以上の自動応答情報のうちの一の自動応答情報に対応する一の自動情報をユーザ端末に送信する応答送信部とを具備する対話制御装置により、複数の対話エンジンを効果的に用いて、適切な対話を継続させることができる。【選択図】図３
2018041124.tif 000002
【特許請求の範囲】
【請求項１】
２以上の対話エンジンから、ユーザの発話に対応する応答である自動応答情報を受け付け得る対話制御装置であって、
ユーザの発話に対応するユーザ発話情報をユーザ端末から受信する受信部と、
前記ユーザ発話情報に対応する情報である発話情報を、１以上の対話エンジンに対して出力し得る発話情報出力部と、
前記発話情報の出力に応じて、前記１以上の各対話エンジンから自動応答情報を受け付ける自動応答受付部と、
前記自動応答受付部が受け付けた１以上の自動応答情報のうちの一の自動応答情報に対応する一の自動情報を前記ユーザ端末に送信する応答送信部とを具備する対話制御装置。
【請求項２】
前記発話情報出力部は、
前記発話情報を、２以上の対話エンジンに出力し、
前記自動応答受付部は、
前記発話情報の出力に応じて、前記２以上の各対話エンジンから自動応答情報を受け付け、
前記２以上の自動応答情報から一の自動応答情報を選択する選択部をさらに具備し、
前記応答送信部は、
前記選択部が選択した自動応答情報に対応する一の自動情報を前記ユーザ端末に送信する請求項１記載の対話制御装置。
【請求項３】
前記選択部は、
前記２以上の自動応答情報から、予め決められた条件に合致する一の自動応答情報を選択する請求項２記載の対話制御装置。
【請求項４】
前記選択部は、
前記２以上の自動応答情報のうちの予め決められた条件を満たす自動応答情報の中で、前記優先度情報に基づく優先度が最も高い対話エンジンから出力された自動応答情報を選択する請求項２または請求項３記載の対話制御装置。
【請求項５】
前記２以上の対話エンジンから一の対話エンジンを選択する選択部をさらに具備し、
前記発話情報出力部は、
前記発話情報を、前記選択部が選択した一の対話エンジンに出力し、
前記自動応答受付部は、
前記発話情報の出力に応じて、前記一の対話エンジンから自動応答情報を受け付け、
前記応答送信部は、
前記自動応答受付部が受け付けた自動応答情報に対応する一の自動情報を前記ユーザ端末に送信する請求項１記載の対話制御装置。
【請求項６】
前記選択部は、
前記ユーザ発話情報または前記発話情報を用いて、一の対話エンジンを選択する請求項５記載の対話制御装置。
【請求項７】
前記発話情報出力部は、
前記発話情報を管理端末に対しても出力可能であり、
前記発話情報の前記管理端末への出力に応じて、前記管理端末からの応答である手動応答情報を受け付ける手動応答受付部をさらに具備し、
前記応答送信部は、
前記一の自動応答情報に対応する情報である一の自動情報または前記手動応答情報に対応する情報である手動情報を前記ユーザ端末に送信する請求項１から請求項６いずれか一項に記載の対話制御装置。
【請求項８】
対話エンジンを採用するか、管理端末を採用するかを決定する決定部をさらに具備し、
前記応答送信部は、
前記決定が対話エンジンを採用するとの決定の場合は、前記一の自動情報を前記ユーザ端末に送信し、前記決定が管理端末を採用するとの決定の場合は、前記手動情報を前記ユーザ端末に送信する請求項７載の対話制御装置。
【請求項９】
対話エンジンを採用する自動モード、または管理端末を採用する手動モードのいずれかを、少なくとも採り得るモード情報が格納されるモード格納部と、
モード情報を変更するための予め決められた条件を満たすか否かを判断する判断部と、
前記判断部が予め決められた条件を満たすと判断した場合に、前記モード情報を変更するモード変更部とをさらに具備し、
前記決定部は、
前記モード格納部のモード情報を取得する請求項８記載の対話制御装置。
【請求項１０】
対話エンジンを採用する自動モード、または管理端末を採用する手動モードのいずれかを、少なくとも採り得るモード情報が格納されるモード格納部と、
管理端末からモードの変更の指示である変更指示を受け付ける変更指示受付部と、
前記変更指示に応じて、前記モード格納部のモード情報を変更するモード変更部とをさらに具備し、
前記決定部は、
前記モード格納部のモード情報に従って、対話エンジンを採用するか、管理端末を採用するかを決定する請求項８記載の対話制御装置。
【請求項１１】
前記一の自動情報を前記管理端末に出力する自動情報出力部をさらに具備する請求項７から請求項１０いずれか一項に記載の対話制御装置。
【請求項１２】
前記手動情報を前記対話エンジンに出力する手動情報出力部をさらに具備する請求項７から請求項１１いずれか一項に記載の対話制御装置。
【請求項１３】
発話情報に対応する自動応答情報を取得するための情報である学習情報が格納される学習情報格納部と、
請求項１から請求項１２いずれか一項に記載の対話制御装置から発話情報を受け付ける発話受付部と、
前記発話受付部が受け付けた発話情報に対応する応答である自動応答情報を、前記学習情報を用いて取得する応答取得部と、
前記応答取得部が取得した自動応答情報を前記対話制御装置に出力する応答出力部と、
他の対話エンジンからの応答である他自動応答情報を受け付ける学習受付部と、
前記学習受付部が受け付けた他自動応答情報を用いて、前記学習情報に情報を付加する学習部とを具備する対話エンジン。
【請求項１４】
２以上の対話エンジンから、ユーザの発話に対応する応答である自動応答情報を受け付け得る対話装置であって、
前記ユーザ発話情報に対応する情報である発話情報を、１以上の対話エンジンに対して出力し得る発話情報出力部と、
前記発話情報の出力に応じて、前記１以上の各対話エンジンから自動応答情報を受け付ける自動応答受付部と、
前記自動応答受付部が受け付けた１以上の自動応答情報のうちの一の自動応答情報に対応する一の自動情報を出力する応答出力部とを具備する対話装置。
【請求項１５】
前記発話情報出力部は、
前記ユーザ発話情報に関する発話情報を、１以上の対話エンジンまたは画面のうちの少なくともどちらか一方に出力し、
前記発話情報の前記画面への出力に応じて、管理者からの応答である手動応答情報を受け付ける手動応答受付部をさらに具備し、
前記応答出力部は、
前記自動応答情報に関する自動情報または前記手動応答情報に関する手動情報を出力する請求項１４記載の対話装置。
【請求項１６】
２以上の対話エンジンから、ユーザの発話に対応する応答である自動応答情報を受け付け得る対話制御装置における対話制御方法であって、
受信部、発話情報出力部、自動応答受付部、および応答送信部により実現される対話制御方法であって、
前記受信部が、ユーザの発話に対応するユーザ発話情報をユーザ端末から受信する受信ステップと、
前記発話情報出力部が、前記ユーザ発話情報に対応する情報である発話情報を、１以上の対話エンジンに対して出力し得る発話情報出力ステップと、
前記自動応答受付部が、前記発話情報の出力に応じて、前記１以上の各対話エンジンから自動応答情報を受け付ける自動応答受付ステップと、
前記応答送信部が、前記自動応答受付ステップで受け付けられた１以上の自動応答情報のうちの一の自動応答情報に対応する一の自動情報を前記ユーザ端末に送信する応答送信ステップとを具備する対話制御方法。
【請求項１７】
発話情報出力部、自動応答受付部、応答出力部により実現される対話方法であって、
前記発話情報出力部が、前記ユーザ発話情報に対応する情報である発話情報を、２以上の対話エンジンに対して出力し得る発話情報出力ステップと、
前記自動応答受付部が、前記発話情報の出力に応じて、前記１以上の各対話エンジンから自動応答情報を受け付ける自動応答受付ステップと、
前記応答出力部が、前記自動応答受付ステップで受け付けられた１以上の自動応答情報のうちの一の自動応答情報に対応する一の自動情報を出力する応答出力ステップとを具備する対話方法。
【請求項１８】
２以上の対話エンジンから、ユーザの発話に対応する応答である自動応答情報を受け付け得る対話制御装置におけるプログラムであって、
コンピュータを、
ユーザの発話に対応するユーザ発話情報をユーザ端末から受信する受信部と、
前記ユーザ発話情報に対応する情報である発話情報を、１以上の対話エンジンに対して出力し得る発話情報出力部と、
前記発話情報の出力に応じて、前記１以上の各対話エンジンから自動応答情報を受け付ける自動応答受付部と、
前記自動応答受付部が受け付けた１以上の自動応答情報のうちの一の自動応答情報に対応する一の自動情報を前記ユーザ端末に送信する応答送信部として機能させるためのプログラム。
【請求項１９】
コンピュータを、
ユーザの発話に対応するユーザ発話情報に対応する情報である発話情報を、２以上の対話エンジンに対して出力し得る発話情報出力部と、
前記発話情報の出力に応じて、前記１以上の各対話エンジンから自動応答情報を受け付ける自動応答受付部と、
前記自動応答受付部が受け付けた１以上の自動応答情報のうちの一の自動応答情報に対応する一の自動情報を出力する応答出力部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話を制御する対話制御装置等に関するものである。
【背景技術】
【０００２】
従来、ユーザとのコミュニケーションの柔軟性を向上させることを目的とした音声対話制御装置が存在した。かかる音声対話装置の制御は、音声を取得してから応答を生成するまでの待機時間に、応答の修正要否を判定するための修正条件が満たされたと判定したとき、生成した応答を修正する修正実行部を備える（特許文献１参照）。
【０００３】
また、従来、実際のユーザの発話に適した分類カテゴリの設定が比較的容易に行えるようなメンテナンス性の高い対話システムがあった（特許文献２参照）。かかる対話システムは、対話の状態遷移情報を用いて対話を進行していく。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−２５６９号公報
【特許文献２】特開２０１１−２１５７４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の装置においては、一の対話エンジンのみを使用していたので、適切な対話が継続できない場合があった。
【０００６】
また、例えば、ユーザと対話エンジンとの対話が破綻しているにも関わらず、対話を継続するか、対話を終了するかしかなかった。
【課題を解決するための手段】
【０００７】
本第一の発明の対話制御装置は、２以上の対話エンジンから、ユーザの発話に対応する応答である自動応答情報を受け付け得る対話制御装置であって、ユーザの発話に対応するユーザ発話情報をユーザ端末から受信する受信部と、ユーザ発話情報に対応する情報である発話情報を、１以上の対話エンジンに対して出力し得る発話情報出力部と、発話情報の出力に応じて、１以上の各対話エンジンから自動応答情報を受け付ける自動応答受付部と、自動応答受付部が受け付けた１以上の自動応答情報のうちの一の自動応答情報に対応する一の自動情報をユーザ端末に送信する応答送信部とを具備する対話制御装置である。
【０００８】
かかる構成により、複数の対話エンジンを効果的に用いて、適切な対話を継続させることができる。
【０００９】
また、本第二の発明の対話制御装置は、第一の発明に対して、発話情報出力部は、発話情報を、２以上の対話エンジンに出力し、自動応答受付部は、発話情報の出力に応じて、２以上の各対話エンジンから自動応答情報を受け付け、２以上の自動応答情報から一の自動応答情報を選択する選択部をさらに具備し、応答送信部は、選択部が選択した自動応答情報に対応する一の自動情報をユーザ端末に送信する対話制御装置である。
【００１０】
かかる構成により、複数の対話エンジンを効果的に用いて、適切な対話を継続させることができる。
【００１１】
また、本第三の発明の対話制御装置は、第二の発明に対して、選択部は、２以上の自動応答情報から、予め決められた条件に合致する一の自動応答情報を選択する対話制御装置である。
【００１２】
かかる構成により、複数の対話エンジンを効果的に用いて、適切な対話を継続させることができる。
【００１３】
また、本第四の発明の対話制御装置は、第二または第三の発明に対して、選択部は、２以上の自動応答情報のうちの予め決められた条件を満たす自動応答情報の中で、優先度情報に基づく優先度が最も高い対話エンジンから出力された自動応答情報を選択する対話制御装置である。
【００１４】
かかる構成により、複数の対話エンジンから一の応答を適切に選択し、適切な対話を継続させることができる。
【００１５】
また、本第五の発明の対話制御装置は、第一の発明に対して、２以上の対話エンジンから一の対話エンジンを選択する選択部をさらに具備し、発話情報出力部は、発話情報を、選択部が選択した一の対話エンジンに出力し、自動応答受付部は、発話情報の出力に応じて、一の対話エンジンから自動応答情報を受け付け、応答送信部は、自動応答受付部が受け付けた自動応答情報に対応する一の自動情報をユーザ端末に送信する対話制御装置である。
【００１６】
かかる構成により、複数の対話エンジンから一の対話エンジンを適切に選択し、適切な対話を継続させることができる。
【００１７】
また、本第六の発明の対話制御装置は、第五の発明に対して、選択部は、ユーザ発話情報または発話情報を用いて、一の対話エンジンを選択する対話制御装置である。
【００１８】
かかる構成により、ユーザの発話を用いて、複数の対話エンジンから一の対話エンジンを適切に選択し、適切な対話を継続させることができる。
【００１９】
また、本第七の発明の対話制御装置は、第一から第六いずれか１つの発明に対して、発話情報出力部は、発話情報を管理端末に対しても出力可能であり、発話情報の管理端末への出力に応じて、管理端末からの応答である手動応答情報を受け付ける手動応答受付部をさらに具備し、応答送信部は、一の自動応答情報に対応する情報である一の自動情報または手動応答情報に対応する情報である手動情報をユーザ端末に送信する対話制御装置である。
【００２０】
かかる構成により、対話エンジンからの応答と管理者からの応答とを使い分けて、ユーザ端末に出力することにより、適切な対話を継続できる。
【００２１】
また、本第八の発明の対話制御装置は、対話エンジンを採用するか、管理端末を採用するかを決定する決定部をさらに具備し、応答送信部は、決定が対話エンジンを採用するとの決定の場合は、一の自動情報をユーザ端末に送信し、決定が管理端末を採用するとの決定の場合は、手動情報をユーザ端末に送信する請求項７載の対話制御装置である。
【００２２】
かかる構成により、対話エンジンからの応答と管理者からの応答とを使い分けて、ユーザ端末に出力することにより、適切な対話を継続できる。
【００２３】
また、本第九の発明の対話制御装置は、第八の発明に対して、対話エンジンを採用する自動モード、または管理端末を採用する手動モードのいずれかを、少なくとも採り得るモード情報が格納されるモード格納部と、モード情報を変更するための予め決められた条件を満たすか否かを判断する判断部と、判断部が予め決められた条件を満たすと判断した場合に、モード情報を変更するモード変更部とをさらに具備し、決定部は、モード格納部のモード情報を取得する対話制御装置である。
【００２４】
かかる構成により、対話エンジンからの応答と管理者からの応答とを使い分けて、ユーザ端末に出力することにより、適切な対話を継続できる。
【００２５】
また、本第十の発明の対話制御装置は、第八の発明に対して、対話エンジンを採用する自動モード、または管理端末を採用する手動モードのいずれかを、少なくとも採り得るモード情報が格納されるモード格納部と、管理端末からモードの変更の指示である変更指示を受け付ける変更指示受付部と、変更指示に応じて、モード格納部のモード情報を変更するモード変更部とをさらに具備し、決定部は、モード格納部のモード情報に従って、対話エンジンを採用するか、管理端末を採用するかを決定する対話制御装置である。
【００２６】
かかる構成により、対話エンジンからの応答と管理者からの応答とを使い分けて、ユーザ端末に出力することにより、適切な対話を継続できる。
【００２７】
また、本第十一の発明の対話制御装置は、第七から第十いずれか１つの発明に対して、一の自動情報を管理端末に出力する自動情報出力部をさらに具備する対話制御装置である。
【００２８】
かかる構成により、対話エンジンからの応答と管理者からの応答とを使い分けて、ユーザ端末に出力することにより、適切な対話を継続できる。
【００２９】
また、本第十二の発明の対話制御装置は、第七から第十一いずれか１つの発明に対して、手動情報を対話エンジンに出力する手動情報出力部をさらに具備する対話制御装置である。
【００３０】
かかる構成により、対話エンジンに管理者からの応答を渡すことにより、対話エンジンの能力の向上に寄与でき得る。
【００３１】
また、本第十三の発明の対話エンジンは、第一から第十二いずれか１つの発明に対して、発話情報に対応する自動応答情報を取得するための情報である学習情報が格納される学習情報格納部と、対話制御装置から発話情報を受け付ける発話受付部と、発話受付部が受け付けた発話情報に対応する応答である自動応答情報を、学習情報を用いて取得する応答取得部と、応答取得部が取得した自動応答情報を対話制御装置に出力する応答出力部と、他の対話エンジンからの応答である他自動応答情報を受け付ける学習受付部と、学習受付部が受け付けた他自動応答情報を用いて、学習情報に情報を付加する学習部とを具備する対話エンジンである。
【００３２】
かかる構成により、他の対話エンジンからの応答を学習できる対話エンジンを提供できる。
【００３３】
また、本第十四の発明の対話装置は、２以上の対話エンジンから、ユーザの発話に対応する応答である自動応答情報を受け付け得る対話装置であって、ユーザ発話情報に対応する情報である発話情報を、１以上の対話エンジンに対して出力し得る発話情報出力部と、発話情報の出力に応じて、１以上の各対話エンジンから自動応答情報を受け付ける自動応答受付部と、自動応答受付部が受け付けた１以上の自動応答情報のうちの一の自動応答情報に対応する一の自動情報をユーザ端末に送信する応答出力部とを具備する対話装置である。
【００３４】
かかる構成により、複数の対話エンジンを効果的に用いて、適切な対話を継続させることができる。
【００３５】
また、本第十五の発明の対話装置は、第十四の発明に対して、発話情報出力部は、ユーザ発話情報に関する発話情報を、１以上の対話エンジンまたは画面のうちの少なくともどちらか一方に出力し、発話情報の前記画面への出力に応じて、管理者からの応答である手動応答情報を受け付ける手動応答受付部をさらに具備し、応答出力部は、自動応答情報に関する自動情報または手動応答情報に関する手動情報を出力する対話装置である。
【００３６】
かかる構成により、複数の対話エンジンを効果的に用いて、適切な対話を継続させることができる。
【発明の効果】
【００３７】
本発明による対話制御装置によれば、複数の対話エンジンを効果的に用いて、適切な対話を継続させることができる。
【図面の簡単な説明】
【００３８】
【図１】実施の形態１における対話システムＡの概念図
【図２】同対話システムＡのブロック図
【図３】同対話制御装置２のブロック図
【図４】同対話制御装置２の動作について説明するフローチャート
【図５】同対話エンジン３の動作について説明するフローチャート
【図６】同優先度情報管理表を示す図
【図７】同学習情報管理表を示す図
【図８】同Ｆｏｏｄｔａｂｌｅを示す図
【図９】同ユーザ端末１の出力例を示す図
【図１０】実施の形態２における対話制御装置４のブロック図
【図１１】同対話制御装置４の動作について説明するフローチャート
【図１２】同選択条件管理表を示す図
【図１３】実施の形態３における対話システムＣの概念図
【図１４】同対話システムＣのブロック図
【図１５】同対話制御装置５のブロック図
【図１６】同対話制御装置５の動作について説明するフローチャート
【図１７】同対話エンジン６の動作について説明するフローチャート
【図１８】同管理端末７の動作について説明するフローチャート
【図１９】同破綻判断条件管理表を示す図
【図２０】同出力例を示す図
【図２１】同手動応答情報管理表を示す図
【図２２】実施の形態４における対話装置８のブロック図
【図２３】同対話装置８の動作について説明するフローチャート
【図２４】上記実施の形態におけるコンピュータシステムの概観図
【図２５】同コンピュータシステムのブロック図
【発明を実施するための形態】
【００３９】
以下、対話制御装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【００４０】
（実施の形態１）
本実施の形態において、複数の対話エンジンにリクエストを送信し、複数の応答から一の応答を採用する対話システムについて説明する。
【００４１】
本実施の形態において、予め決められた条件に合致する対話エンジンの応答を採用する対話システムについて説明する。
【００４２】
本実施の形態において、予め決められた条件を満たす応答の中で、対話エンジンに対する優先度が最も高い対話エンジンの応答を採用する対話システムについて説明する。
【００４３】
本実施の形態における対話システムを構成する対話制御装置は、２以上の対話エンジンから、ユーザの発話に対応する応答である自動応答情報を受け付け得る装置である。
【００４４】
図１は、本実施の形態における対話システムＡの概念図である。対話システムＡは、１または２以上のユーザ端末１、対話制御装置２、および２以上の対話エンジン３を備える。ユーザ端末１は、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン等であり、その種類は問わない。なお、ユーザ端末１は、ユーザが使用する端末である。ユーザは、対話エンジンとの対話を行う人である。対話制御装置２は、対話を制御する装置である。対話制御装置２は、例えば、ＡＳＰのサーバ、クラウドサーバ等である。但し、対話制御装置２の種類は問わない。２以上の各対話エンジン３は、ユーザからの発話の情報を受け付け、応答を返す装置である。対話エンジン３は、例えば、ＡＳＰのサーバ、クラウドサーバ等である。但し、対話エンジン３の種類は問わない。また、対話エンジン３は、発話情報を受け付け、自動応答情報を出力する。対話エンジン３は、公知の対話エンジンでも良い。
【００４５】
また、通常、１以上の各ユーザ端末１と対話制御装置２とはインターネット、ＬＡＮ等のネットワークにより通信可能である。また、通常、対話制御装置２と１以上の各対話エンジン３とはインターネット、ＬＡＮ等のネットワークにより通信可能である。ただし、対話制御装置２は、１以上のユーザ端末１、１以上の対話エンジン３のうちの１以上の装置を内部に含んでいても良い。つまり、ユーザ端末１と対話制御装置２と対話エンジン３のうちの２以上の装置は、物理的に一の装置で実現されても良い。
【００４６】
図２は、本実施の形態における対話システムＡのブロック図である。図３は、対話制御装置２のブロック図である。
【００４７】
ユーザ端末１は、ユーザ受付部１１、ユーザ処理部１２、ユーザ送信部１３、ユーザ受信部１４、およびユーザ出力部１５を備える。
【００４８】
対話制御装置２は、格納部２１、受信部２２、処理部２３、出力部２４、受付部２５、および送信部２６を備える。処理部２３は、選択部２３１を備える。出力部２４は、発話情報出力部２４１を備える。受付部２５は、自動応答受付部２５１を備える。送信部２６は、応答送信部２６１を備える。
【００４９】
対話エンジン３は、学習情報格納部３１、発話受付部３２、応答取得部３３、応答出力部３４、学習受付部３５、および学習部３６を備える。
【００５０】
ユーザ端末１を構成するユーザ受付部１１は、ユーザからの発話を受け付ける。発話の受け付けは、音声での受け付けでも良いし、テキストでの受け付けでも良い。発話は、ユーザが発した情報、ユーザが入力した情報であれば良い。発話の入力手段は、マイク、キーボード、マウス、メニュー画面によるもの等、何でも良い。ユーザ受付部１１は、マイクやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【００５１】
ユーザ処理部１２は、ユーザ受付部１１が受け付けた発話から、当該発話に対応するユーザ発話情報を取得する。ユーザ処理部１２は、例えば、音声である発話を音声認識し、テキストであるユーザ発話情報を取得する。なお、ユーザ発話情報は、ユーザが入力した発話と同じでも良い。
【００５２】
また、ユーザ処理部１２は、ユーザ受信部１４が受信した自動情報がテキストの場合、当該を自動情報から音声データを生成しても良い。
【００５３】
ユーザ送信部１３は、ユーザ処理部１２が取得したユーザ発話情報を対話制御装置２に送信する。
【００５４】
ユーザ受信部１４は、後述する自動情報を受信する。自動情報は、通常、対話制御装置２から送信される。
【００５５】
ユーザ出力部１５は、ユーザ受信部１４が受信した自動情報を出力する。ユーザ出力部１５は、ユーザ処理部１２が自動情報から取得した音声データを音声出力しても良い。なお、かかる場合も、自動情報を出力したものとする。また、ここでの出力とは、通常、ディスプレイへの表示、またはスピーカーへの音声出力であるが、プロジェクターを用いた投影、プリンタでの印字、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である、と考えても良い。
【００５６】
対話制御装置２を構成する格納部２１は、各種の情報が格納される。各種の情報とは、例えば、後述する自動応答情報の選択条件、後述する優先度情報、対話の履歴、２以上の各対話エンジン３と通信を行うための情報（例えば、対話エンジン３のＩＰアドレス、ＵＲＬ、ＭＡＣアドレス等）である。対話の履歴は、例えば、ユーザ発話情報、発話情報、自動応答情報、自動情報等である。
【００５７】
受信部２２は、ユーザ発話情報をユーザ端末１から受信する。また、ユーザ発話情報は、通常、テキストであるが、音声データでも良い。ユーザ発話情報のデータ構造やータタイプは問わない。
【００５８】
処理部２３は、各種の処理を行う。各種の処理とは、選択部２３１が行う処理等である。
【００５９】
選択部２３１は、２以上の自動応答情報から一の自動応答情報を選択する。かかる選択方法は、ランダムでも良い。ランダムとは、２以上の自動応答情報から任意に一の自動応答情報を選択することである。
【００６０】
また、選択部２３１は、２以上の自動応答情報から、予め決められた条件に合致する一の自動応答情報を選択する。予め決められた条件は、例えば、スコアに基づく条件、自動応答情報の内容に基づく条件、時間に基づく条件、優先度に基づく条件等、またはこれらの組み合わせである。スコアに基づく条件は、例えば、自動応答情報に対応付いているスコアが最も高い、という条件である。また、自動応答情報の内容に基づく条件とは、例えば、最も長い文字列の自動応答情報、または文の数が最も多い自動応答情報、という条件である。また、時間に基づく条件とは、例えば、最も早く受け付けられた自動応答情報である、という条件である。また、優先度に基づく条件とは、例えば、閾値の時間内に受け付けられた自動応答情報の中で、優先度情報に基づく優先度が最も高い対話エンジン３から出力された自動応答情報である、という条件である。なお、かかる条件は問わない。優先度に基づく場合、通常、格納部２１は優先度情報を格納している。優先度情報とは、２以上の対話エンジン３の優先度を示す情報である。優先度情報は、例えば、優先度の高い順に並べられた対話エンジン３の識別子である。優先度情報は、例えば、優先度（例えば、数値）と対話エンジン３の識別子との組を、２組以上有する情報である。
【００６１】
選択部２３１は、２以上の自動応答情報のうちの予め決められた条件を満たす自動応答情報の中で、優先度情報に基づく優先度が最も高い対話エンジン３から出力された自動応答情報を選択する。ここで、予め決められた条件を満たす自動応答情報とは、例えば、対話の破綻を示す情報（例えば、「理解できない」「理解不能」など）を有しない自動応答情報、スコアが閾値以上の自動応答情報等である。
【００６２】
なお、選択部２３１が２以上の自動応答情報の中から一の自動応答情報を選択するアルゴリズム（上記の予め決められた条件）は問わない。
【００６３】
出力部２４は、各種の情報を出力する。ここでの出力とは、通常、送信である。ただし、出力とは、情報が出力先に渡れば良い。
【００６４】
発話情報出力部２４１は、ユーザ発話情報に対応する情報である発話情報を、１以上の各対話エンジン３に出力する。ここでは、主に、発話情報出力部２４１が、発話情報を、２以上の各対話エンジン３に出力する場合について説明する。ここで、発話情報は、ユーザ発話情報と同じ情報でも良い。また、発話情報は、ユーザ発話情報を音声認識し、得られたテキストでも良い。発話情報は、発話識別子が付加された情報であることは好適である。なお、発話識別子は、発話を識別する情報である。
【００６５】
自動応答情報出力部２４２は、選択部２３１が選択した一の自動応答情報を、当該一の自動応答情報を出力した対話エンジン３以外の１以上の対話エンジン３に出力する。なお、自動応答情報出力部２４２は、自動応答受付部２５１が受け付けた１以上の自動応答情報を、自身が出力した自動応答情報を除いて、他の全ての対話エンジン３に出力しても良いし、他の対話エンジン３の中の一部の対話エンジン３に出力しても良い。また、自動応答情報出力部２４２が自動応答情報を対話エンジン３に出力するのは、対話エンジン３の学習のためである。
【００６６】
受付部２５は、各種の情報や指示等を受け付ける。ここでの受け付けとは、通常、受信である。但し、受け付けは、情報等を受け取れれば良い。
【００６７】
自動応答受付部２５１は、発話情報の対話エンジン３への出力に応じて、対話エンジン３からの応答である１または２以上の自動応答情報を受け付ける。通常、自動応答受付部２５１は、発話情報の出力に応じて、２以上の各対話エンジンから自動応答情報を受け付ける。なお、ここでの受け付けとは、例えば、受信である。
【００６８】
送信部２６は、各種の情報を送信する。各種の情報とは、例えば、自動情報等である。
【００６９】
応答送信部２６１は、自動応答受付部２５１が受け付けた１以上の自動応答情報のうちの一の自動応答情報に対応する一の自動情報をユーザ端末１に送信する。
【００７０】
応答送信部２６１は、通常、選択部２３１が選択した自動応答情報に対応する一の自動情報をユーザ端末１に送信する。
【００７１】
対話エンジン３を構成する学習情報格納部３１は、１または２以上の学習情報を格納している。なお、単に「学習情報」と言うときは、２以上の学習情報でも良い。また、学習情報とは、発話情報に対応する自動応答情報を取得するための情報である。学習情報は、例えば、発話情報と自動応答情報との組である。また、学習情報は、例えば、発話情報の文字列パターンと自動応答情報の文字列パターンとの組である。また、学習情報は、例えば、会話の状態遷移を示す情報（例えば、特許文献２参照）等でも良い。また、学習情報は、単語の辞書等を含んでも良い。なお、学習情報のデータ構造や内容は問わないことは言うまでもない。
【００７２】
発話受付部３２は、対話制御装置２から発話情報を受け付ける。発話受付部３２は、通常、対話制御装置２から発話情報を受信する。
【００７３】
応答取得部３３は、発話受付部３２が受け付けた発話情報に対応する応答である自動応答情報を、学習情報格納部３１の学習情報を用いて取得する。なお、かかる応答取得部３３の処理は公知技術である。例えば、応答取得部３３は、発話受付部３２が受け付けた発話情報と対になる自動応答情報を学習情報格納部３１から検索する。また、例えば、応答取得部３３は、発話受付部３２が受け付けた発話情報に合致する発話情報の文字列パターンを検知し、当該発話情報の文字列パターンと対になる自動応答情報の文字列パターンを取得し、当該自動応答情報の文字列パターンの変数部分に発話情報から抽出した単語または句を代入して、自動応答情報を構成する。
【００７４】
応答出力部３４は、応答取得部３３が取得した自動応答情報を対話制御装置２に出力する。ここでの出力は、通常、送信である。ただし、出力とは、対話制御装置２に自動応答情報が渡されれば良い。
【００７５】
学習受付部３５は、他の対話エンジン３からの応答である自動応答情報を受け付ける。ここでの自動応答情報の受け付けは、自動情報の受け付けでも良い趣旨である。
【００７６】
学習部３６は、学習受付部３５が受け付けた自動応答情報を用いて、学習処理を行う。学習処理は、例えば、自動応答情報を用いて、学習情報格納部３１の学習情報に情報を付加することである。学習処理は、例えば、自動応答情報を用いて、学習情報格納部３１の学習情報を変更することである。学習情報に情報を付加する処理は、学習情報格納部３１に新しい学習情報を追記する処理を含む。
【００７７】
学習部３６は、例えば、自動応答情報と当該自動応答情報に対応する発話情報の組である学習情報を学習情報格納部３１に追記する。
【００７８】
学習部３６は、例えば、他の対話エンジン３からの自動応答情報と当該自動応答情報に対応する発話情報の組の情報から、状態遷移情報である学習情報に、当該発話情報の前の自動応答情報のノード（状態）の先の状態として、発話情報のノードを付加し、当該発話情報のノードに、自動応答情報のノードを付加する。
【００７９】
学習部３６は、例えば、他の対話エンジン３からの自動応答情報から自動応答情報のパターンを構成し、かつ当該自動応答情報に対応する発話情報から発話情報のパターンを構成し、発話情報のパターンと応答のパターンとの組である学習情報を学習情報格納部３１に追記する。
【００８０】
学習部３６は、例えば、他の対話エンジン３からの自動応答情報から自動応答情報のパターンを構成し、かつ当該自動応答情報に対応する発話情報から発話情報のパターンを構成し、当該パターンの組に合致する、発話情報のパターンと自動応答情報のパターンの組の出現頻度または出現確率を増加させるように、学習情報格納部３１の学習情報を更新する。かかる場合、学習情報は、発話情報のパターンと自動応答情報のパターンの組、および出現頻度または出現確率を有する。
【００８１】
なお、学習部３６は、例えば、発話情報に対応する発話識別子と自動応答情報に対応する発話識別子とが同一の、発話情報と自動応答情報とを用いて、上記の学習処理を行う。
【００８２】
また、他の対話エンジン３からの自動応答情報を用いた学習処理は種々あり得る。他の対話エンジン３からの自動応答情報を用いる点を除いて、学習部３６が行う学習処理は他の公知の学習処理のアルゴリズムを用いても良い。
【００８３】
ユーザ処理部１２、処理部２３、選択部２３１、応答取得部３３、および学習部３６は、通常、ＭＰＵやメモリ等から実現され得る。ユーザ処理部１２の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００８４】
ユーザ送信部１３、出力部２４、発話情報出力部２４１、送信部２６、応答送信部２６１、および応答出力部３４は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【００８５】
なお、出力部２４、発話情報出力部２４１、自動情報出力部２４２、および応答出力部３４は、情報を出力する出力手段で実現されても良い。ここでの情報の出力とは、例えば、プログラムによる情報の引き渡しである。
【００８６】
ユーザ受信部１４、受信部２２、受付部２５、自動応答受付部２５１、発話受付部３２、および学習受付部３５は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【００８７】
なお、受付部２５、自動応答受付部２５１、発話受付部３２、および学習受付部３５は、情報を受け付ける受付手段で実現されても良い。ここでの情報の受け付けとは、例えば、プログラムによる情報の引き渡しである。
【００８８】
ユーザ出力部１５は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。ユーザ出力部１５は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【００８９】
格納部２１、および学習情報格納部３１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００９０】
格納部２１等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部２１等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部２１等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部２１等で記憶されるようになってもよい。
【００９１】
次に、対話システムＡの動作について説明する。まず、ユーザ端末１の動作例について説明する。
【００９２】
ユーザ端末１のユーザ受付部１１は、ユーザからの発話を受け付ける。次に、ユーザ処理部１２は、ユーザ受付部１１が受け付けた発話から、当該発話に対応するユーザ発話情報を取得する。ここで、ユーザ処理部１２は、例えば、音声である発話を音声認識し、テキストであるユーザ発話情報を取得する。次に、ユーザ送信部１３は、ユーザ処理部１２が取得したユーザ発話情報を対話制御装置２に送信する。次に、ユーザ発話情報の送信に応じて、ユーザ受信部１４は、自動情報を受信する。なお、自動情報は、ユーザの発話に対する応答の情報である。次に、ユーザ出力部１５は、ユーザ受信部１４が受信した自動情報を出力する。以上の処理を繰り返し、ユーザと対話エンジン３との対話が継続される。なお、自動情報がテキストの場合、ユーザ出力部１５は、当該テキストを音声合成し、音声出力しても良い。また、ユーザの指示等により、対話は終了する。
【００９３】
次に、対話制御装置２の動作について、図４のフローチャートを用いて説明する。
【００９４】
（ステップＳ４０１）受信部２２は、ユーザ発話情報をユーザ端末１から受信したか否かを判断する。ユーザ発話情報を受信した場合はステップＳ４０２に行き、受信しない場合はステップＳ４０１に戻る。
【００９５】
（ステップＳ４０２）処理部２３は、ユーザ発話情報から発話情報を取得する。
【００９６】
（ステップＳ４０３）出力部２４は、発話情報の２以上の出力先を取得する。かかる出力先は、２以上の対話エンジン３であり、例えば、格納部２１に格納されている。出力先は、例えば、後述する通信先識別子である。
【００９７】
（ステップＳ４０４）発話情報出力部２４１は、ステップＳ４０３で取得された２以上の出力先に、ステップＳ４０２で取得された発話情報を出力する。
【００９８】
（ステップＳ４０５）受付部２５は、２以上の対話エンジン３への発話情報の出力に応じて、１以上の自動応答情報を受け付ける。なお、受付部２５は、発話情報の出力から閾値以内の時間のみ、自動応答情報を受け付けることは好適である。
【００９９】
（ステップＳ４０６）選択部２３１は、ステップＳ４０５で受け付けられた１以上の自動応答情報から一の自動応答情報を選択する。なお、ステップＳ４０５で受け付けられた自動応答情報が一つの場合、本ステップは省略し得る。
【０１００】
（ステップＳ４０７）処理部２３は、ステップＳ４０６で選択された自動応答情報から自動情報を取得する。
【０１０１】
（ステップＳ４０８）応答送信部２６１は、ステップＳ４０７で取得された自動情報をユーザ端末１に送信する。
【０１０２】
（ステップＳ４０９）自動応答情報出力部２４２は、ステップＳ４０６で選択された一の自動応答情報を、当該一の自動応答情報を出力した対話エンジン３以外の対話エンジン３に出力する。ステップＳ４０１に戻る。
【０１０３】
なお、図４のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０１０４】
次に、対話エンジン３の動作について、図５のフローチャートを用いて説明する。
【０１０５】
（ステップＳ５０１）発話受付部３２は、対話制御装置２から発話情報を受け付けたか否かを判断する。発話情報を受け付けた場合はステップＳ５０２に行き、発話情報を受け付けない場合はステップＳ５０４に行く。
【０１０６】
（ステップＳ５０２）応答取得部３３は、ステップＳ５０１で受け付けられた発話情報に対応する自動応答情報を、学習情報格納部３１の学習情報を用いて取得する。
【０１０７】
（ステップＳ５０３）応答出力部３４は、応答取得部３３が取得した自動応答情報を対話制御装置２に出力する。
【０１０８】
（ステップＳ５０４）学習受付部３５は、学習対象の自動応答情報を受け付けたか否かを判断する。自動応答情報を受け付けた場合はステップＳ５０５に行き、自動応答情報を受け付けない場合はステップＳ５０１に戻る。
【０１０９】
（ステップＳ５０５）学習部３６は、学習受付部３５が受け付けた自動応答情報を用いて、学習情報に、追記する情報を構成する。
【０１１０】
（ステップＳ５０６）学習部３６は、ステップＳ５０５で構成した情報を学習情報格納部３１に追記する。ステップＳ５０１に戻る。
【０１１１】
なお、図５のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０１１２】
以下、本実施の形態における対話システムＡの具体的な動作について説明する。本具体例において、対話システムＡは、３つの対話エンジンを具備する、とする。なお、対話システムＡの概念図は図１である。
【０１１３】
今、対話制御装置２の格納部２１は、図６に示す優先度情報管理表を格納している。優先度情報管理表は、各対話エンジン３の優先度等を管理する表である。優先度情報管理表は、「優先度」「対話エンジン識別子」「通知先識別子」を有する３つのレコードを有する。「優先度」は小さい数値ほど、優先度が高いことを示す。「通知先識別子」は、ここではＩＰアドレスであるが、対話制御装置２が対話エンジン３と通信するための情報であれば何でも良い。
【０１１４】
また、３つの対話エンジン３の中の一の対話エンジン３（例えば、「ｅ１」で識別される対話エンジン３。なお、以後、かかる対話エンジンを対話エンジン「ｅ１」とする。）を構成する学習情報格納部３１は、図７に示す学習情報管理表を格納している、とする。学習情報管理表は、「ＩＤ」「学習情報」を有する１以上のレコードを管理している。「ＩＤ」はレコードを識別する情報である。「学習情報」は「発話情報」と「自動応答情報」との対である。「発話情報」「自動応答情報」は、定数（固定的な文字列）でも良いし、変数を有する情報でも良い。また、「自動応答情報」は、プログラムや検索式（ここでは、例えば、ＳＱＬ文であるが、他の形式でも構わない）などの実行可能な情報でも良い。学習情報の中の｛｝は変数を示し、学習情報の中の＊は０文字以上の文字を示す。また、自動応答情報の中の＄は変数であり、学習情報格納部３１に値が保持されている。なお、「＄営業日」の値は、ここでは「日曜日、火曜日、水曜日、木曜日、金曜日、土曜日」である、とする。また、自動応答情報の中の「ｉｎｃｌｕｄｅ」は、含まれるか否かの論理演算子である、とする。つまり、「｛ｔｉｍｅＥｘｐｒｅｓｓｉｏｎ｝  ｉｎｃｌｕｄｅ  ＄営業日」は、変数「ｔｉｍｅＥｘｐｒｅｓｓｉｏｎ」の情報が変数「営業日」の中に含まれるか否かを判断することを示す。そして、含まれる場合は真「１」を、含まれない場合は偽「０」を返す、とする。
【０１１５】
また、対話エンジン「ｅ１」の学習情報格納部３１は、図８に示すＦｏｏｄｔａｂｌｅを格納している、とする。Ｆｏｏｄｔａｂｌｅは、「ＩＤ」「料理」「作り方」を有するレコードを１以上格納している。
【０１１６】
さらに、対話エンジン「ｅ１」の学習情報格納部３１は、料理名を格納しているｆｏｏｄ辞書、作物名を格納しているｃｒｏｐｓ辞書を有する、とする。ｆｏｏｄ辞書には、「カツ丼、牛丼、親子丼、・・・」等の多数の料理名が格納されている。また、ｃｒｏｐｓ辞書には、「お米、ナス、にんじん、・・・」等の多数の作物名が格納されている。
【０１１７】
かかる状況において、以下の３つの具体例について説明する。具体例１は、優先度に基づいて自動応答情報を選択する場合である。さらに具体的には、具体例１は、対話制御装置２が、予め決められた条件を満たす自動応答情報の中で、優先度情報に基づく優先度が最も高い対話エンジン３から出力された自動応答情報を選択する場合である。また、ここでの予め決められた条件は、例えば、対話エンジン３からの応答である自動応答情報に予め決められた用語（例えば、「理解できなかった」「理解不能」）を含まないことである。
【０１１８】
具体例２は、時間条件に基づく場合である。時間条件は、自動応答情報を受け付ける早さに基づく場合と言っても良い。さらに具体的には、具体例２は、対話制御装置２が、予め決められた条件を満たす、最初に受け付けられた自動応答情報を選択する場合である。ここでの予め決められた条件も、例えば、対話エンジン３からの応答である自動応答情報に予め決められた用語（例えば、「理解できなかった」「理解不能」）を含まないこととする。
【０１１９】
具体例３は、内容条件に基づく場合である。内容条件は、自動応答情報（応答）の内容に基づく条件である。さらに具体的には、具体例３は、対話制御装置２が、予め決められた条件を満たす自動応答情報の中で、最も文長が長い自動応答情報または自立語の数が多い自動応答情報または文の数が最も多い自動応答情報を選択する場合である。ここでの予め決められた条件も、例えば、対話エンジン３からの応答である自動応答情報に予め決められた用語（例えば、「理解できなかった」「理解不能」）を含まないこととする。
【０１２０】
（具体例１）
今、ユーザは、ユーザ端末１に対して、「牛丼の作り方を教えて」と音声入力した、とする。すると、ユーザ端末１のユーザ受付部１１は、ユーザからの発話「牛丼の作り方を教えて」を受け付ける。次に、ユーザ処理部１２は、ユーザの音声入力に対して音声認識し、ユーザ発話情報「牛丼の作り方を教えて」を取得する。次に、ユーザ送信部１３は当該ユーザ発話情報を対話制御装置２に送信する。
【０１２１】
次に、対話制御装置２の受信部２２は、ユーザ発話情報「牛丼の作り方を教えて」をユーザ端末１から受信する。
【０１２２】
そして、処理部２３は、当該ユーザ発話情報から発話情報「１：牛丼の作り方を教えて」を取得する。発話情報の「１」は発話識別子である。
【０１２３】
次に、発話情報出力部２４１は、図６の優先度情報管理表から、発話情報の出力先（３つの通信先識別子）を取得する。そして、発話情報出力部２４１は、３つの各通信先識別子で識別される３つの対話エンジン３に、発話情報「１：牛丼の作り方を教えて」を送信する。
【０１２４】
次に、３つの各対対話エンジン３の発話受付部３２は、対話制御装置２から発話情報を受け付ける。そして、３つの各対話エンジン３の応答取得部３３は、発話受付部３２が受け付けた発話情報に対応する応答である自動応答情報を、学習情報格納部３１の学習情報を用いて取得する。例えば、対話エンジン識別子「ｅ１」で識別される対話エンジン３の応答取得部３３は、発話情報が有する「牛丼の作り方を教えて」を形態素解析する。そして、応答取得部３３は、取得した形態素「牛丼」をキーとして、辞書を検索し、「牛丼」は｛ｆｏｏｄ｝に含まれることを検出する。次に、応答取得部３３は、「牛丼の作り方を教えて」が図７の学習情報管理表の「ＩＤ＝４」の発話情報に合致することを検出する。そして、応答取得部３３は、「ＩＤ＝４」の自動応答情報を取得し、当該自動応答情報を実行し、図８のＦｏｏｄｔａｂｌｅから料理「牛丼」に対応する作り方「４人前の材料をご紹介します。・・・」を取得する。そして、応答出力部３４は、応答取得部３３が取得した自動応答情報「１：４人前の材料をご紹介します。・・・」を対話制御装置２に送信する。
【０１２５】
次に、対話制御装置２の受付部２５は、閾値の時間以内に受信された対話エンジン３から自動応答情報を受信する。ここでは、受付部２５は、閾値の時間以内に３つの対話エンジン３から自動応答情報を受信した、とする。
【０１２６】
次に、選択部２３１は、３つの自動応答情報から一の自動応答情報を選択する。つまり、選択部２３１は、自動応答情報に予め決められた用語（「理解できなかった」または「理解不能」）を含む「ｅ２」の対話エンジン３から送信された自動応答情報を選択しない、と決定する。次に、「ｅ１」「ｅ３」の対話エンジン３の優先度情報「１」「３」を取得し、優先度が高い（優先度情報「１」の）「ｅ１」の対話エンジン３の自動応答情報「１：４人前の材料をご紹介します。・・・」を選択する。
【０１２７】
次に、処理部２３は、選択された自動応答情報から自動情報「４人前の材料をご紹介します。・・・」を取得する。
【０１２８】
次に、応答送信部２６１は、当該自動情報をユーザ端末１に送信する。
【０１２９】
次に、ユーザ端末１のユーザ受信部１４は、当該自動情報を受信する。そして、ユーザ出力部１５は、当該自動情報を出力する。
【０１３０】
また、自動応答情報出力部２４２は、選択された一の自動応答情報「１：４人前の材料をご紹介します。・・・」を、当該一の自動応答情報を出力した対話エンジン３以外の対話エンジン３（「ｅ２」「ｅ３」の対話エンジン３）に送信する。
【０１３１】
そして、「ｅ２」「ｅ３」の対話エンジン３の学習受付部３５は、当該自動応答情報を受信する。
【０１３２】
次に、「ｅ２」「ｅ３」の対話エンジン３の学習部３６は、学習受付部３５が受け付けた自動応答情報を用いて、学習情報に、追記する情報を構成する。つまり、学習部３６は、自動応答情報「１：４人前の材料をご紹介します。・・・」が有する発話識別子「１」に対応する発話情報を取得する。そして、発話識別子「１」に対応する発話情報の内容「牛丼の作り方を教えて」と自応答情報の内容「４人前の材料をご紹介します。・・・」との組を、図８の学習情報管理表に追記する。
【０１３３】
なお、学習部３６は、発話情報の内容「牛丼の作り方を教えて」のうち、名詞または名詞句「牛丼」「作り方」を変数に置き換え、「｛変数１｝の{変数２}を教えて」というパターンに変更し、「４人前の材料をご紹介します。・・・」のうち、名詞または名詞句「４人前」「材料」を変数に置き換え、「｛変数３｝の{変数４}をご紹介します。・・・」というパターンに変更し、２つのパターンの組を、図８の学習情報管理表に追記するなどしても良い。
【０１３４】
つまり、本具体例において、他の対話エンジン３からの入力である自動応答情報を用いて、学習情報をよくすれば良く、学習情報の構造は問わない。
【０１３５】
次に、ユーザは、ユーザ端末１に対して、「粉末うどんスープはどちらのスープがお勧めですか？」と音声入力した、とする。すると、ユーザ端末１のユーザ受付部１１は、当該ユーザの音声入力を受け付ける。次に、ユーザ処理部１２は、ユーザの音声入力に対して音声認識し、ユーザ発話情報「粉末うどんスープはどちらのスープがお勧めですか？」を取得する。次に、ユーザ送信部１３は、当該ユーザ発話情報を対話制御装置２に送信する。
【０１３６】
次に、対話制御装置２の受信部２２は、当該ユーザ発話情報をユーザ端末１から受信する。
【０１３７】
そして、処理部２３は、当該ユーザ発話情報から発話情報「２：粉末うどんスープはどちらのスープがお勧めですか？」を取得する。
【０１３８】
次に、発話情報出力部２４１は、図６の優先度情報管理表から３つの通信先識別子を取得する。そして、発話情報出力部２４１は、３つの各通信先識別子で識別される３つの対話エンジン３に、当該話情報を送信する。
【０１３９】
次に、３つの各対話エンジン３の発話受付部３２は、対話制御装置２から発話情報を受け付ける。そして、３つの各対話エンジン３の応答取得部３３は、発話受付部３２が受け付けた発話情報に対応する応答である自動応答情報を、学習情報格納部３１の学習情報を用いて取得する。そして、３つの各対話エンジン３の応答出力部３４は、応答取得部３３が取得した自動応答情報を対話制御装置２に送信する。
【０１４０】
次に、対話制御装置２の受付部２５は、閾値の時間以内に受信された対話エンジン３から自動応答情報を受信する。
【０１４１】
次に、選択部２３１は、上述した優先度情報を用いるアルゴリズムにより、受信された自動応答情報から一の自動応答情報を選択する。そして、処理部２３は、当該一の自動応答情報から自動情報を取得する。
【０１４２】
次に、応答送信部２６１は、当該自動情報をユーザ端末１に送信する。
【０１４３】
次に、ユーザ端末１のユーザ受信部１４は、自動情報「４人前の材料をご紹介します。・・・」を受信する。そして、ユーザ出力部１５は、当該自動情報を出力する。
【０１４４】
また、自動応答情報出力部２４２は、選択された一の自動応答情報を、当該一の自動応答情報を出力した対話エンジン３以外の対話エンジン３に送信する。
【０１４５】
そして、当該一の自動応答情報を送信していない対話エンジン３の学習受付部３５は、当該一の自動応答情報を受信する。学習部３６は、学習受付部３５が受け付けた自動応答情報を用いて、上述した学習処理を行う。
【０１４６】
以上の処理を繰り返すことにより、適切な対話を継続させることができる。また、ユーザは、適切な応答を得ることができる。さらに、対話エンジン３は、他の対話エンジン３の能力（知識といっても良い）を学習できる。
【０１４７】
（具体例２）
今、ユーザは、ユーザ端末１に対して、「牛丼の作り方を教えて」と音声入力した、とする。すると、ユーザ端末１のユーザ受付部１１は、ユーザからの発話「牛丼の作り方を教えて」を受け付ける。次に、ユーザ処理部１２は、ユーザの音声入力に対して音声認識し、ユーザ発話情報「牛丼の作り方を教えて」を取得する。次に、ユーザ送信部１３は当該ユーザ発話情報を対話制御装置２に送信する。
【０１４８】
次に、対話制御装置２の受信部２２は、当該ユーザ発話情報をユーザ端末１から受信する。
【０１４９】
そして、処理部２３は、当該ユーザ発話情報から発話情報「１：牛丼の作り方を教えて」を取得する。
【０１５０】
次に、発話情報出力部２４１は、３つの通信先識別子を取得する。そして、発話情報出力部２４１は、３つの各通信先識別子で識別される３つの対話エンジン３に、当該発話情報を送信する。なお、３つの通信先識別子は、格納部２１に格納されている、とする。
【０１５１】
次に、３つの各対話エンジン３の発話受付部３２は、対話制御装置２から発話情報を受け付ける。そして、３つの各対話エンジン３の応答取得部３３は、発話受付部３２が受け付けた発話情報に対応する応答である自動応答情報を、学習情報格納部３１の学習情報を用いて取得する。
【０１５２】
次に、対話制御装置２の受付部２５は、３つの各対話エンジン３から自動応答情報を受信する。受付部２５は、最初に対話エンジン「ｅ２」からの自動応答情報「１：理解できなかった。・・・」を受信した、とする。次に、受付部２５は、対話エンジン「ｅ１」からの自動応答情報「１：４人前の材料をご紹介します。・・・」を受信した、とする。さらに次に、受付部２５は、対話エンジン「ｅ３」からの自動応答情報「１：まず、水、粉末うどんスープ、・・・を用意します。次に、・・・」を受信した、とする。
【０１５３】
次に、選択部２３１は、３つの自動応答情報から一の自動応答情報を選択する。つまり、選択部２３１は、予め決められた用語（「理解できなかった」または「理解不能」）を含まない自動応答情報の中で、最初に受信された「ｅ１」の対話エンジン３の自動応答情報「１：４人前の材料をご紹介します。・・・」を選択する。
【０１５４】
次に、処理部２３は、選択された自動応答情報から自動情報「４人前の材料をご紹介します。・・・」を取得する。
【０１５５】
次に、応答送信部２６１は、当該自動情報をユーザ端末１に送信する。
【０１５６】
次に、ユーザ端末１のユーザ受信部１４は、当該自動情報を受信する。そして、ユーザ出力部１５は、当該自動情報を出力する。
【０１５７】
また、自動応答情報出力部２４２は、選択された一の自動応答情報「１：４人前の材料をご紹介します。・・・」を、当該一の自動応答情報を出力した対話エンジン３以外の対話エンジン３（「ｅ２」「ｅ３」の対話エンジン３）に送信する。
【０１５８】
そして、「ｅ２」「ｅ３」の対話エンジン３の学習受付部３５は、当該自動応答情報を受信する。
【０１５９】
次に、「ｅ２」「ｅ３」の対話エンジン３の学習部３６は、当該自動応答情報を用いて、上述した学習処理を行う。
【０１６０】
以上の処理を繰り返すことにより、適切な対話を継続させることができる。また、ユーザは、適切な応答を得ることができる。さらに、対話エンジン３は、他の対話エンジン３の能力（知識といっても良い）を得ることができる。
【０１６１】
（具体例３）
今、ユーザは、ユーザ端末１に対して、「牛丼の作り方を教えて」と音声入力した、とする。すると、ユーザ端末１のユーザ受付部１１は、ユーザからの発話「牛丼の作り方を教えて」を受け付ける。次に、ユーザ処理部１２は、ユーザの音声入力に対して音声認識し、ユーザ発話情報「牛丼の作り方を教えて」を取得する。次に、ユーザ送信部１３は当該ユーザ発話情報を対話制御装置２に送信する。
【０１６２】
次に、対話制御装置２の受信部２２は、当該ユーザ発話情報をユーザ端末１から受信する。
【０１６３】
そして、処理部２３は、当該ユーザ発話情報から発話情報「１：牛丼の作り方を教えて」を取得する。
【０１６４】
次に、発話情報出力部２４１は、３つの通信先識別子を取得する。そして、発話情報出力部２４１は、３つの各通信先識別子で識別される３つの対話エンジン３に、当該発話情報を送信する。
【０１６５】
次に、３つの各対話エンジン３の発話受付部３２は、対話制御装置２から発話情報を受け付ける。そして、３つの各対話エンジン３の応答取得部３３は、発話受付部３２が受け付けた発話情報に対応する応答である自動応答情報を、学習情報格納部３１の学習情報を用いて取得する。
【０１６６】
次に、対話制御装置２の受付部２５は、３つの各対話エンジン３から自動応答情報を受信する。
【０１６７】
次に、選択部２３１は、３つの自動応答情報から一の自動応答情報を選択する。つまり、選択部２３１は、予め決められた用語（「理解できなかった」または「理解不能」）を含まない自動応答情報の中で、文の長さが最も長い「ｅ１」の対話エンジン３の自動応答情報「１：４人前の材料をご紹介します。・・・」を選択する。
【０１６８】
次に、処理部２３は、選択された自動応答情報から自動情報「４人前の材料をご紹介します。・・・」を取得する。
【０１６９】
次に、応答送信部２６１は、当該自動情報をユーザ端末１に送信する。
【０１７０】
次に、ユーザ端末１のユーザ受信部１４は、当該自動情報を受信する。そして、ユーザ出力部１５は、当該自動情報を出力する。
【０１７１】
また、自動応答情報出力部２４２は、選択された一の自動応答情報「１：４人前の材料をご紹介します。・・・」を、当該一の自動応答情報を出力した対話エンジン３以外の対話エンジン３（「ｅ２」「ｅ３」の対話エンジン３）に送信する。
【０１７２】
そして、「ｅ２」「ｅ３」の対話エンジン３の学習受付部３５は、当該自動応答情報を受信する。
【０１７３】
次に、「ｅ２」「ｅ３」の対話エンジン３の学習部３６は、当該自動応答情報を用いて、上述した学習処理を行う。
【０１７４】
以上の処理を繰り返すことにより、適切な対話を継続させることができる。また、ユーザは、適切な応答を得ることができる。さらに、対話エンジン３は、他の対話エンジン３の能力（知識といっても良い）を得ることができる。
【０１７５】
なお、上記具体例で、ユーザ端末１において、図９に示すようにキャラクタがお話しているように、自動情報を音声出力することは好適である。
【０１７６】
以上、本実施の形態によれば、複数の対話エンジンを効果的に用いて、適切な対話を継続させることができる。
【０１７７】
特に、本実施の形態によれば、対話ごとに、複数の対話エンジンから送信された複数の自動応答情報から適切な自動応答情報を選択し、ユーザに応答できる。かかることにより、ユーザに極めて適切な応答を行える。
【０１７８】
なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における対話制御装置２を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、２以上の対話エンジンから、ユーザの発話に対応する応答である自動応答情報を受け付け得る対話制御装置におけるプログラムであって、コンピュータを、ユーザの発話に対応するユーザ発話情報をユーザ端末から受信する受信部と、前記ユーザ発話情報に対応する情報である発話情報を、１以上の対話エンジンに対して出力し得る発話情報出力部と、前記発話情報の出力に応じて、前記１以上の各対話エンジンから自動応答情報を受け付ける自動応答受付部と、前記自動応答受付部が受け付けた１以上の自動応答情報のうちの一の自動応答情報に対応する一の自動情報を前記ユーザ端末に送信する応答送信部として機能させるためのプログラムである。
【０１７９】
また、上記プログラムにおいて、前記発話情報出力部は、前記発話情報を、２以上の対話エンジンに出力し、前記自動応答受付部は、前記発話情報の出力に応じて、前記２以上の各対話エンジンから自動応答情報を受け付け、コンピュータを、前記２以上の自動応答情報から一の自動応答情報を選択する選択部としてさらに機能させ、前記応答送信部は、前記選択部が選択した自動応答情報に対応する一の自動情報を前記ユーザ端末に送信するものとして、コンピュータを機能させるプログラムであることは好適である。
【０１８０】
また、上記プログラムにおいて、前記選択部は、前記２以上の自動応答情報から、予め決められた条件に合致する一の自動応答情報を選択するものとして、コンピュータを機能させるプログラムであることは好適である。
【０１８１】
また、上記プログラムにおいて、前記選択部は、前記２以上の自動応答情報のうちの予め決められた条件を満たす自動応答情報の中で、前記優先度情報に基づく優先度が最も高い対話エンジンから出力された自動応答情報を選択するものとして、コンピュータを機能させるプログラムであることは好適である。
【０１８２】
また、本実施の形態における対話エンジン３を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータがアクセス可能な記録媒体は、発話情報に対応する自動応答情報を取得するための情報である学習情報が格納される学習情報格納部を具備し、コンピュータを、対話制御装置２から発話情報を受け付ける発話受付部と、前記発話受付部が受け付けた発話情報に対応する応答である自動応答情報を、前記学習情報を用いて取得する応答取得部と、前記応答取得部が取得した自動応答情報を前記対話制御装置に出力する応答出力部と、他の対話エンジンからの応答である他自動応答情報を受け付ける学習受付部と、前記学習受付部が受け付けた他自動応答情報を用いて、前記学習情報に情報を付加する学習部として機能させるプログラムである。
【０１８３】
（実施の形態２）
本実施の形態において、複数の対話エンジンから一部の対話エンジンを選択し、当該対話エンジンと対話を行える対話システムについて説明する。なお、一部の対話エンジンは、一つであることは好適であるが、２以上でも良い。
【０１８４】
本実施の形態における対話システムＢの概念図は、符号以外、図１と同様である。対話システムＢは、１または２以上のユーザ端末１、対話制御装置４、および２以上の対話エンジン３を備える。対話制御装置４は、対話を制御する装置である。対話制御装置４は、例えば、ＡＳＰのサーバ、クラウドサーバ等である。但し、対話制御装置４の種類は問わない。
【０１８５】
また、通常、１以上の各ユーザ端末１と対話制御装置４とはインターネット、ＬＡＮ等のネットワークにより通信可能である。また、通常、対話制御装置４と１以上の各対話エンジン３とはインターネット、ＬＡＮ等のネットワークにより通信可能である。ただし、対話制御装置４は、１以上のユーザ端末１、１以上の対話エンジン３のうちの１以上の装置を内部に含んでいても良い。つまり、ユーザ端末１と対話制御装置４と対話エンジン３のうちの２以上の装置は、物理的に一の装置で実現されても良い。
【０１８６】
本実施の形態における対話システムＢのブロック図は、対話制御装置の符号以外は図２と同様である。図１０は、対話制御装置４のブロック図である。
【０１８７】
対話制御装置４は、格納部４１、受信部２２、処理部４３、出力部２４、受付部２５、および送信部２６を備える。処理部４３は、選択部４３１を備える。出力部２４は、発話情報出力部２４１、および自動情報出力部２４２を備える。受付部２５は、自動応答受付部２５１を備える。
【０１８８】
対話制御装置４を構成する格納部４１は、各種の情報が格納される。各種の情報とは、例えば、後述する対話エンジン３の選択条件、優先度情報、対話の履歴、２以上の各対話エンジン３と通信を行うための情報（例えば、対話エンジン３のＩＰアドレス、ＵＲＬ、ＭＡＣアドレス等）、である。
【０１８９】
処理部４３は、各種の処理を行う。各種の処理とは、選択部４３１が行う処理等である。
【０１９０】
選択部４３１は、２以上の対話エンジン３から一部の対話エンジン３を選択する。選択部４３１は、Ｎ（Ｎは２以上の自然数）の対話エンジン３からＭ（Ｎは１以上の自然数，Ｍ＜Ｎ）の対話エンジン３を選択する。一部の対話エンジン３とは、２以上の対話エンジン３のうちの一部である。なお、一部の対話エンジン３とは、一の対話エンジン３であることは好適である。
【０１９１】
選択部４３１は、ユーザ発話情報または発話情報を用いて、一部の対話エンジン３を選択することは好適である。
【０１９２】
選択部４３１は、例えば、選択条件に基づいて、一部の対話エンジン３を選択する。  選択条件とは、例えば、対話（発話）の主題が合致することである。主題が合致するという選択条件は、例えば、発話から取得されるジャンルと、対話エンジン３に対応付けて格納されているジャンルが一致する対話エンジン３を選択することである。選択条件は、例えば、予め決められた条件を満たすほど負荷が小さい（例えば、最も負荷が小さい、ログインユーザ数が閾値以下）ことである。選択条件は、例えば、予め決められた条件を満たすほどレスポンスが早い（例えば、最もレスポンスが早い）ことである。
【０１９３】
選択部４３１が対話エンジン３を選択するタイミングは問わない。選択部４３１は、ユーザ発話情報が受け付けられる毎（対話毎）に、対話エンジン３を選択しても良い。また、選択部４３１は、一連の対話の始まりの際に、対話エンジン３を選択しても良い。選択部４３１は、例えば、一連の対話の始まりの際に、主題が合致する対話エンジン３を選択したり、負荷が最小の対話エンジン３を選択したり、レスポンスが早い対話エンジン３を選択したりしても良い。なお、レスポンスを検知するために、事前に命令を対話エンジン３に送信し、応答を受信し、レスポンスの早さを検知する等しても良い。
【０１９４】
複数の対話エンジン３から自動応答情報が受け付けられた場合、選択部４３１は、当該自動応答情報から一の自動応答情報を選択する。なお、かかる選択は、選択部２３１の処理と同様である。
【０１９５】
ここでの自動応答受付部２５１は、通常、一の対話エンジン３から自動応答情報を受け付ける。ただし、自動応答受付部２５１は、複数の各対話エンジンから自動応答情報を受け付けても良い。
【０１９６】
格納部４１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【０１９７】
格納部４１に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部４１で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部４１で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部４１で記憶されるようになってもよい。
【０１９８】
処理部４３、および選択部４３１は、通常、ＭＰＵやメモリ等から実現され得る。処理部４３等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０１９９】
次に、対話制御装置４の動作について、図１１のフローチャートを用いて説明する。図１１のフローチャートにおいて、図４のフローチャートと同一のステップについて説明を省略する。
【０２００】
（ステップＳ１１０１）選択部４３１は、２以上の対話エンジン３から一部の対話エンジン３（出力先）を選択する。
【０２０１】
（ステップＳ１１０２）選択部４３１は、複数の自動応答情報から一の自動応答情報を選択するか否かを判断する。一の自動応答情報を選択する場合はステップＳ４０６に行き、一の自動応答情報を選択しない場合はステップＳ４０７に行く。ここで、選択部４３１は、例えば、ステップＳ１１０１で２以上の対話エンジン３を選択したか否かを判断しても良い。選択部４３１は、例えば、２以上の自動応答情報が受け付けられたか否かを判断しても良い。
【０２０２】
なお、図１１のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０２０３】
以下、本実施の形態における対話システムＢの具体的な動作について説明する。本具体例において、対話システムＢは、３つの対話エンジンを具備する、とする。なお、対話システムＡの概念図は図１である。
【０２０４】
今、３つの対話エンジン３の中の一の対話エンジン３（例えば、対話エンジン「ｅ１」）を構成する学習情報格納部３１は、図７に示す学習情報管理表を格納している、とする。また、対話エンジン「ｅ１」の学習情報格納部３１は、図８に示すＦｏｏｄｔａｂｌｅを格納している、とする。さらに、対話エンジン「ｅ１」の学習情報格納部３１は、料理名を格納しているｆｏｏｄ辞書、作物名を格納しているｃｒｏｐｓ辞書を有する、とする。ｆｏｏｄ辞書には、「カツ丼、牛丼、親子丼、・・・」等の多数の料理名が格納されている。また、ｃｒｏｐｓ辞書には、「お米、ナス、にんじん、・・・」等の多数の作物名が格納されている。
【０２０５】
かかる状況において、以下の２つの具体例について説明する。具体例１は、一の対話エンジンを選択する場合である。具体例２は、２以上の対話エンジンを選択し、かつ２以上の自動応答情報を選択する場合である。２以上の自動応答情報を選択する方法は、実施の形態１で説明したように種々のアルゴリズムがあり得る。
【０２０６】
（具体例１）
今、対話制御装置２の格納部２１は、図１２に示す選択条件管理表を格納している、とする。選択条件管理表は、対話エンジンを選択するための条件を管理する表である。選択条件管理表は、「対話エンジン識別子」「ジャンル」「通知先識別子」を有する３つのレコードを有する。「ジャンル」は、各対話エンジンが応答可能なジャンルである。
【０２０７】
かかる状況において、ユーザは、ユーザ端末１に対して、「牛丼の作り方を教えて」と音声入力した、とする。すると、ユーザ端末１のユーザ受付部１１は、ユーザからの発話「牛丼の作り方を教えて」を受け付ける。次に、ユーザ処理部１２は、ユーザの音声入力に対して音声認識し、ユーザ発話情報「牛丼の作り方を教えて」を取得する。次に、ユーザ送信部１３は当該ユーザ発話情報を対話制御装置２に送信する。
【０２０８】
次に、対話制御装置２の受信部２２は、ユーザ発話情報「牛丼の作り方を教えて」をユーザ端末１から受信する。
【０２０９】
そして、処理部２３は、当該ユーザ発話情報から発話情報「１：牛丼の作り方を教えて」を取得する。
【０２１０】
次に、選択部４３１は、２以上の対話エンジン３から一の対話エンジン３を選択する。ここでは、選択部４３１は、「牛丼の作り方を教えて」に対して自然言語処理を行い、ジャンル「料理」を取得する。そして、選択部４３１は、ジャンル「料理」と対になる対話エンジン「ｅ２」を選択する。なお、選択部４３１は、例えば、「牛丼の作り方を教えて」を形態素解析し、自立語「牛丼」「作り方」「教えて」を取得し、当該自立語から機械学習（例えば、深層学習、決定木、ＳＶＭ）により、ジャンル「料理」を取得する。なお、機械学習により文を分類し、当該文のジャンル（クラスと言っても良い）を決定する技術は公知技術であるので、詳細な説明を省略する。また、選択部４３１は、例えば、「牛丼の作り方を教えて」を形態素解析し、自立語「牛丼」「作り方」「教えて」を取得し、当該自立語をキーとしてＤＢ検索を行い、ＤＢからジャンル「料理」を取得する。かかる場合、自立語とジャンルとを対応付けるレコードがＤＢに格納されている、とする。なお、ユーザが入力したジャンルがユーザ端末１から受信され、受信部２２が当該ジャンルを受信し、選択部４３１が当該ジャンルを用いて、ジャンル「料理」を取得しても良い。
【０２１１】
そして、発話情報出力部２４１は、対話エンジン「ｅ２」の通信先識別子を図１２の表から取得し、当該通信先識別子で識別される対話エンジン３に、発話情報「１：牛丼の作り方を教えて」を送信する。
【０２１２】
次に、対話エンジン「ｅ２」の発話受付部３２は、対話制御装置２から当該発話情報を受け付ける。そして、応答取得部３３は、発話受付部３２が受け付けた発話情報に対応する応答である自動応答情報「１：４人前の材料をご紹介します。・・・」を、学習情報格納部３１の学習情報を用いて取得する。そして、応答出力部３４は、応答取得部３３が取得した当該自動応答情報を対話制御装置２に送信する。
【０２１３】
次に、対話制御装置２の受付部２５は、対話エンジン「ｅ２」から当該自動応答情報を受信する。
【０２１４】
次に、処理部２３は、選択された自動応答情報から自動情報「４人前の材料をご紹介します。・・・」を取得する。
【０２１５】
次に、応答送信部２６１は、当該自動情報をユーザ端末１に送信する。
【０２１６】
次に、ユーザ端末１のユーザ受信部１４は、当該自動情報を受信する。そして、ユーザ出力部１５は、当該自動情報を出力する。
【０２１７】
また、自動応答情報出力部２４２は、選択された一の自動応答情報「１：４人前の材料をご紹介します。・・・」および発話情報「１：牛丼の作り方を教えて」を、当該一の自動応答情報を出力した対話エンジン３以外の対話エンジン３（「ｅ１」「ｅ３」の対話エンジン３）に送信する。
【０２１８】
そして、「ｅ１」「ｅ３」の対話エンジン３の学習受付部３５は、当該自動応答情報等受信する。
【０２１９】
次に、「ｅ１」「ｅ３」の対話エンジン３の学習部３６は、学習受付部３５が受け付けた自動応答情報を用いて、学習情報に、追記する情報を構成する。つまり、学習部３６は、発話情報の内容「牛丼の作り方を教えて」と自応答情報の内容「４人前の材料をご紹介します。・・・」との組を、図８の学習情報管理表に追記する。
【０２２０】
なお、学習部３６は、発話情報の内容「牛丼の作り方を教えて」のうち、名詞または名詞句「牛丼」「作り方」を変数に置き換え、「｛変数１｝の{変数２}を教えて」というパターンに変更し、「４人前の材料をご紹介します。・・・」のうち、名詞または名詞句「４人前」「材料」を変数に置き換え、「｛変数３｝の{変数４}をご紹介します。・・・」というパターンに変更し、２つのパターンの組を、図８の学習情報管理表に追記するなどしても良い。
【０２２１】
つまり、本具体例において、他の対話エンジン３からの入力である自動応答情報を用いて、学習情報が充実すれば良く、学習情報の構造は問わない。
【０２２２】
以上の処理を繰り返すことにより、適切な対話を継続させることができる。また、ユーザは、適切な応答を得ることができる。さらに、対話エンジン３は、他の対話エンジン３の能力（知識といっても良い）を得ることができる。
【０２２３】
（具体例２）
今、対話制御装置２の格納部２１は、図１２に示す選択条件管理表を格納している、とする。また、格納部２１は、図６に示す優先度情報管理表を格納している。
【０２２４】
かかる状況において、ユーザは、ユーザ端末１に対して、「京都でフットサルができるホテルを教えて」と音声入力した、とする。すると、ユーザ端末１のユーザ受付部１１は、当該話を受け付ける。次に、ユーザ処理部１２は、ユーザの音声入力に対して音声認識し、ユーザ発話情報「京都でフットサルができるホテルを教えて」を取得する。次に、ユーザ送信部１３は当該ユーザ発話情報を対話制御装置２に送信する。
【０２２５】
次に、対話制御装置２の受信部２２は、当該ユーザ発話情報をユーザ端末１から受信する。
【０２２６】
そして、処理部２３は、当該ユーザ発話情報から発話情報「１：京都でフットサルができるホテルを教えて」を取得する。
【０２２７】
次に、選択部４３１は、２以上の対話エンジン３から１または２以上の対話エンジン３を選択する。ここでは、選択部４３１は、「京都でフットサルができるホテルを教えて」に対して自然言語処理を行い、ジャンル「旅行、スポーツ」を取得する。そして、選択部４３１は、ジャンル「旅行」または「スポーツ」と対になる対話エンジン「ｅ１」「ｅ３」を選択する。
【０２２８】
そして、発話情報出力部２４１は、対話エンジン「ｅ１」「ｅ３」の通信先識別子を図１２の表から取得し、当該通信先識別子で識別される２つの対話エンジン３に、発話情報「１：京都でフットサルができるホテルを教えて」を送信する。
【０２２９】
次に、「ｅ１」「ｅ３」の各対話エンジンの発話受付部３２は、対話制御装置２から発話情報を受け付ける。そして、２つの各対話エンジン３の応答取得部３３は、発話受付部３２が受け付けた発話情報に対応する応答である自動応答情報を、学習情報格納部３１の学習情報を用いて取得する。次に、２つの各対話エンジン３の応答出力部３４は、応答取得部３３が取得した自動応答情報を対話制御装置２に送信する。
【０２３０】
次に、対話制御装置２の受付部２５は、２つの各対話エンジン３から自動応答情報を受信する。
【０２３１】
次に、選択部４３１は、２つの自動応答情報から一の自動応答情報を選択する。かかる選択方法は、実施の形態１で説明した。また、ここで、選択部４３１は、対話エンジン「ｅ１」からの自動応答情報を選択した、とする。
【０２３２】
次に、処理部２３は、選択された自動応答情報から自動情報を取得する。そして、応答送信部２６１は、当該自動情報をユーザ端末１に送信する。
【０２３３】
次に、ユーザ端末１のユーザ受信部１４は、当該動情報を受信する。そして、ユーザ出力部１５は、当該自動情報を出力する。
【０２３４】
また、自動応答情報出力部２４２は、選択された一の自動応答情報を、当該一の自動応答情報を出力した対話エンジン３以外の対話エンジン３（「ｅ２」「ｅ３」の対話エンジン３）に送信する。
【０２３５】
そして、「ｅ２」「ｅ３」の対話エンジン３の学習受付部３５は、当該自動応答情報を受信する。
【０２３６】
次に、「ｅ２」「ｅ３」の対話エンジン３の学習部３６は、学習受付部３５が受け付けた自動応答情報を用いて、上述した学習処理を行う。
【０２３７】
以上の処理を繰り返すことにより、適切な対話を継続させることができる。また、ユーザは、適切な応答を得ることができる。さらに、対話エンジン３は、他の対話エンジン３の能力（知識といっても良い）を得ることができる。
【０２３８】
以上、本実施の形態によれば、複数の対話エンジンを効果的に用いて、適切な対話を継続させることができる。特に、本実施の形態によれば、複数の対話エンジンの中から、対話エンジンを選択することにより、少ない負荷で、適切な応答をユーザに提供できる。
【０２３９】
なお、本実施の形態における対話制御装置４を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、２以上の対話エンジンから、ユーザの発話に対応する応答である自動応答情報を受け付け得る対話制御装置におけるプログラムであって、コンピュータを、ユーザの発話に対応するユーザ発話情報をユーザ端末から受信する受信部と、前記ユーザ発話情報に対応する情報である発話情報を、１以上の対話エンジンに対して出力し得る発話情報出力部と、前記発話情報の出力に応じて、前記１以上の各対話エンジンから自動応答情報を受け付ける自動応答受付部と、前記自動応答受付部が受け付けた１以上の自動応答情報のうちの一の自動応答情報に対応する一の自動情報を前記ユーザ端末に送信する応答送信部として機能させるためのプログラムである。
【０２４０】
また、上記プログラムにおいて、コンピュータを、前記２以上の対話エンジンから一部の対話エンジンを選択する選択部としてさらに機能させ、前記発話情報出力部は、前記発話情報を、前記選択部が選択した一部の対話エンジンに出力し、前記自動応答受付部は、前記発話情報の出力に応じて、前記一部の対話エンジンから自動応答情報を受け付け、前記応答送信部は、前記自動応答受付部が受け付けた自動応答情報に対応する一の自動情報を前記ユーザ端末に送信するものとして、コンピュータを機能させるプログラムであることは好適である。
【０２４１】
また、上記プログラムにおいて、前記選択部は、前記ユーザ発話情報または前記発話情報を用いて、一の対話エンジンを選択するものとして、コンピュータを機能させるプログラムであることは好適である。
【０２４２】
（実施の形態３）
本実施の形態において、複数の対話エンジンの中のいずれかの応答を採用する自動モード、管理者の応答を採用する手動モードが存在する対話制御装置を具備する対話システムについて説明する。
【０２４３】
また、本実施の形態において、モードを自動決定、または自動変更する対話システムについて説明する。なお、本実施の形態において、対話の破綻等を自動検知し、モードを自動変更する。
【０２４４】
また、本実施の形態において、管理者からの指示によりモードを変更する対話システムについて説明する。
【０２４５】
また、本実施の形態において、自動モードの場合に、対話エンジンからの応答を管理端末に出力する対話システムについて説明する。
【０２４６】
さらに、本実施の形態において、手動モードの場合に、管理者からの応答を対話エンジンに提供する対話システムについて説明する。
【０２４７】
図１３は、本実施の形態における対話システムＣの概念図である。対話システムＡは、１または２以上のユーザ端末１、対話制御装置５、２以上の対話エンジン６、および１または２以上の管理端末７を備える。対話制御装置５は、対話を制御する装置である。対話制御装置５は、例えば、ＡＳＰのサーバ、クラウドサーバ等である。但し、対話制御装置５の種類は問わない。対話エンジン６は、ユーザからの発話の情報を受け付け、応答を返す装置である。対話エンジン６は、例えば、ＡＳＰのサーバ、クラウドサーバ等である。但し、対話エンジン６の種類は問わない。また、対話エンジン６は、発話情報を受け付け、自動応答情報を出力する。対話エンジン６は、公知の対話エンジンでも良い。管理端末７は、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン等であり、その種類は問わない。管理端末７は、管理者が使用する端末である。管理者は、対話の管理者であり、手動モードの場合に、ユーザと対話を行う人である。管理者は、対話を支援する人である、と言っても良い。
【０２４８】
また、通常、１以上のユーザ端末１と対話制御装置５とは、インターネット、ＬＡＮ等のネットワークにより通信可能である。また、通常、対話制御装置５と対話エンジン６とは、インターネット、ＬＡＮ等のネットワークにより通信可能である。また、通常、対話制御装置５と１以上の管理端末７とは、インターネット、ＬＡＮ等のネットワークにより通信可能である。ただし、対話制御装置５は、対話エンジン６、管理端末７のうちの１以上の装置を内部に含んでいても良い。つまり、対話制御装置５と対話エンジン６と管理端末７のうちの２以上の装置は、物理的に一の装置で実現されても良い。また、対話制御装置５は、ユーザ端末１、対話エンジン６のうちの１以上の装置を内部に含んでいても良い。つまり、対話制御装置５とユーザ端末１と対話エンジン６のうちの２以上の装置は、物理的に一の装置で実現されても良い。
【０２４９】
図１４は、本実施の形態における対話システムＣのブロック図である。また、図１５は、対話制御装置５のブロック図である。
【０２５０】
対話制御装置５は、格納部５１、受信部２２、処理部５３、出力部５４、受付部５５、および送信部５６を備える。格納部５１は、モード格納部５１１を備える。処理部５３は、決定部５３１、判断部５３２、モード変更部５３３、および選択部５３４を備える。出力部５４は、発話情報出力部５４１、自動情報出力部５４２、および手動情報出力部５４３を備える。受付部５５は、自動応答受付部５５１、手動応答受付部５５２、および変更指示受付部５５３を備える。送信部５６は、応答送信部５６１を備える。
【０２５１】
対話エンジン６は、学習情報格納部３１、発話受付部３２、応答取得部３３、応答出力部３４、学習受付部６５、および学習部６６を備える。
【０２５２】
管理端末７は、管理情報受付部７１、管理処理部７２、管理者出力部７３、管理指示受付部７４、および管理出力部７５を備える。
【０２５３】
対話制御装置５を構成する格納部５１は、各種の情報が格納される。各種の情報とは、例えば、後述するモード情報、自動応答情報の選択条件、対話エンジン３の選択条件、優先度情報、対話の履歴である。
【０２５４】
モード格納部５１１は、モード情報が格納される。モード情報は、ユーザとの対話が自動であるか手動であるかを示す情報である。モード情報には、通常、いずれかの対話エンジン６を採用する自動モード、または管理端末７を採用する手動モードがある。つまり、モード情報は、自動モード、手動モードのいずれかを、少なくとも採り得る。ただし、モード情報は、自動モード、手動モード以外のモードを採り得ても良い。自動モード、手動モード以外のモードとは、例えば、動作しない停止モード等である。また、対話エンジン６を採用することは、対話エンジン６からの応答がユーザ端末１に送信されることである。また、管理端末７を採用することは、管理端末７からの応答がユーザ端末１に送信されることである。
【０２５５】
処理部５３は、各種の処理を行う。各種の処理とは、決定部５３１、判断部５３２、モード変更部５３３、選択部５３４等が行う処理である。
【０２５６】
各種の処理とは、例えば、ユーザ発話情報から発話情報を取得する処理である。処理部５３は、例えば、ユーザ発話情報の受信に応じて、発話識別子を生成する。そして、処理部５３は、例えば、ユーザ発話情報に発話識別子を付加し、発話情報を構成する。なお、発話識別子は、ユーザ発話情報の識別子であり、ユニークな情報である。また、処理部５３は、例えば、最近に生成した発話識別子を１インクリメントし、ユニークな発話識別子を生成する。
【０２５７】
また、処理部５３は、例えば、自動応答情報または手動応答情報から自動情報または手動情報を取得しても良い。処理部５３は、例えば、テキストの自動応答情報からその音声データである自動情報を生成しても良い。処理部５３は、例えば、テキストの手動応答情報からその音声データである手動情報を生成しても良い。また、処理部５３は、例えば、自動応答情報または手動応答情報から、送信するデータ構造の自動情報または送信するデータ構造の手動情報を取得しても良い。かかる場合、処理部５３は、例えば、自動応答情報または手動応答情報のデータ構造を変更し、自動情報または手動情報を取得する。なお、処理部５３は、例えば、自動応答情報と自動情報が同じ情報である場合、単に、受付部５５が受け付けた自動応答情報を取得する。また、処理部５３は、例えば、手動応答情報と手動情報が同じ情報である場合、単に、受付部５５が受け付けた手動応答情報を取得する。
【０２５８】
決定部５３１は、対話エンジン６を採用するか、管理端末７を採用するかを決定する。対話エンジン６の採用とは、対話エンジン６の応答の採用であり、対話エンジン６の応答である自動応答情報に対する情報である自動情報をユーザ端末１に送信することである。また、管理端末７の採用とは、管理端末７からの応答の採用であり、管理端末７の応答である手動応答情報に対する情報である手動情報をユーザ端末１に送信することである。
【０２５９】
決定部５３１は、モード格納部５１１のモード情報を取得する。そして、決定部５３１は、モード格納部５１１のモード情報に従って、対話エンジン６を採用するか、管理端末７を採用するかを決定する。このモード情報は、例えば、対話エンジン６を採用することを示す自動モード、または管理端末７を採用することを示す手動モードである。
【０２６０】
なお、決定部５３１の上記決定の処理は、モード格納部５１１のモード情報の読み出しでも良い。
【０２６１】
また、決定部５３１は、発話情報の出力先を決定しても良い。決定部５３１は、例えば、モード格納部５１１のモード情報に従って、発話情報の出力先を対話エンジン６とするか、管理端末７とするかを決定する。また、決定部５３１は、発話情報の出力先を、常に、対話エンジン６と管理端末７との両方にする、としても良い。
【０２６２】
判断部５３２は、予め決められた条件を満たすか否かを判断する。ここで、予め決められた条件とは、モード情報を変更するための条件である。モード情報を変更するための条件は、自動モードから手動モードに変更するための第一の条件、手動モードから自動モードに変更するための第二の条件がある。
【０２６３】
第一の条件は、例えば、対話が破綻していることを特定するための条件、管理端末７からの指示を受け付けたこと等である。対話が破綻していることを特定するための条件は、例えば、対話エンジン６からの応答である１または２以上の自動応答情報を用いて対話の破綻を検出するための条件、ユーザ端末１からの１または２以上のユーザ発話情報を用いて対話の破綻を検出するための条件、管理端末７からの入力に基づいて対話の破綻を検出するための条件である。対話が破綻していることを特定するための条件は、例えば、対話エンジン６からの応答である自動応答情報に予め決められた用語（例えば、「理解できなかった」「理解不能」）を含むこと、予め決められた用語を含む自動応答情報が予め決められた期間内に閾値以上または閾値より多い回数受け付けられたこと、受信された２以上の連続するユーザ発話情報が同一または閾値以上の類似度であること、ユーザ発話情報に予め決められた用語（例えば、「何言っているのか」「駄目だな」）を含むこと等である。また、管理端末７からの指示とは、例えば、モード情報を変更する指示、モード情報を指定する指示である。なお、対話の破綻とは、ユーザと対話エンジン６との対話の破綻である。また、予め決められた条件は、例えば、格納部５１に格納されている。
【０２６４】
第二の条件は、例えば、管理端末７からの応答を閾値以上の回数受け付けたこと、管理端末７からの指示を受け付けたこと等である。
【０２６５】
モード変更部５３３は、判断部５３２が予め決められた条件を満たすと判断した場合に、モード情報を変更する。モード情報の変更とは、通常、モード情報をモード格納部２１１に書き込むことである。モード変更部５３３は、変更指示に応じて、モード格納部５１１のモード情報を変更する。
【０２６６】
選択部５３４は、例えば、２以上の自動応答情報から一の自動応答情報を選択する。選択部５３４は、２以上の自動応答情報から、予め決められた条件に合致する一の自動応答情報を選択する。選択部５３４は、２以上の自動応答情報のうちの予め決められた条件を満たす自動応答情報の中で、優先度情報に基づく優先度が最も高い対話エンジン６から出力された自動応答情報を選択する。選択部５３４は、例えば、２以上の対話エンジン６から一の対話エンジン６を選択する。選択部５３４は、ユーザ発話情報または発話情報を用いて、一の対話エンジン６を選択する。選択部５３４は、選択部２３１または選択部４３１と同じ処理でも良い。
【０２６７】
出力部５４は、各種の情報を出力する。ここでの出力とは、通常、送信である。ただし、出力とは、情報が出力先に渡れば良い。
【０２６８】
発話情報出力部５４１は、ユーザ発話情報に対応する情報である発話情報を、対話エンジン６または管理端末７のうちの少なくともどちらか一方に出力する。発話情報出力部５４１は、発話情報を、モード情報に関係なく、対話エンジン６および管理端末７に出力しても良い。ここで、発話情報は、ユーザ発話情報と同じ情報でも良い。また、発話情報は、ユーザ発話情報を音声認識し、得られたテキストでも良い。発話情報は、発話識別子が付加された情報であることは好適である。
【０２６９】
発話情報出力部５４１は、上記のように、発話情報を管理端末７に対して出力し得る。決定部５３１が管理端末７を採用すると決定した場合、発話情報出力部５４１は、発話情報を管理端末７に対して出力する。なお、決定部５３１が管理端末７を採用すると決定した場合でも、１以上の対話エンジン６に発話情報を出力しても良い。
【０２７０】
発話情報出力部５４１は、ユーザ発話情報に対応する情報である発話情報を、１以上の対話エンジン６に対して出力し得る。発話情報出力部５４１は、発話情報を、２以上の対話エンジン６に出力しても良い。発話情報出力部５４１は、発話情報を、選択部５３４が選択した一の対話エンジン６に出力しても良い。
【０２７１】
自動情報出力部５４２は、一の自動情報を管理端末７に出力する。自動情報出力部５４２は、自動応答受付部５５１が受け付けた自動応答情報に対応する自動情報を管理端末７に出力する。
【０２７２】
手動情報出力部５４３は、手動情報を１または２以上の対話エンジン６に出力する。手動情報出力部５４３は、手動応答受付部５５２が受け付けた手動応答情報に対応する手動情報を１以上の対話エンジン６に出力する。
【０２７３】
受付部５５は、各種の情報や指示等を受け付ける。ここでの受け付けとは、通常、受信である。但し、受け付けは、情報等を受け取れれば良い。
【０２７４】
自動応答受付部５５１は、発話情報の１以上の対話エンジン６への出力に応じて、１以上の各対話エンジン６からの応答である自動応答情報を受け付ける。かかる受け付けは、例えば、受信である。
【０２７５】
手動応答受付部５５２は、発話情報の管理端末７への出力に応じて、管理端末７からの応答である手動応答情報を受け付ける。かかる受け付けは、例えば、受信である。
【０２７６】
変更指示受付部５５３は、管理端末７からモードの変更の指示である変更指示を受け付ける。かかる受け付けは、例えば、受信である。また、この変更指示は、自動モードから手動モードへの変更でも良いし、手動モードから自動モードへの変更でも良い。
【０２７７】
送信部５６は、各種の情報を送信する。各種の情報とは、例えば、手動情報、自動情報等である。
【０２７８】
応答送信部５６１は、自動応答情報に対応する情報である自動情報または手動応答情報に対応する情報である手動情報をユーザ端末１に送信する。
【０２７９】
応答送信部５６１は、決定部５３１の決定が対話エンジン６を採用するとの決定の場合は、自動情報をユーザ端末１に送信しても良い。また、応答送信部５６１は、決定部５３１の決定が管理端末７を採用するとの決定の場合は、手動情報をユーザ端末１に送信しても良い。ここで、自動情報は、自動応答情報と同じ情報でも良い。自動情報と自動応答情報の内容は、通常、同じである。自動情報は、例えば、自動応答情報を音声に変換した音声データである。手動情報は、手動応答情報と同じ情報でも良い。手動情報と手動応答情報の内容は、通常、同じである。手動情報は、例えば、手動応答情報を音声に変換した音声データである。
【０２８０】
応答送信部５６１は、自動応答受付部５５１が受け付けた１以上の自動応答情報のうちの一の自動応答情報に対応する一の自動情報をユーザ端末１に送信しても良い。応答送信部５６１は、選択部５３４が選択した自動応答情報に対応する一の自動情報をユーザ端末１に送信しても良い。応答送信部５６１は、自動応答受付部５５１が受け付けた自動応答情報に対応する一の自動情報をユーザ端末１に送信しても良い。
【０２８１】
対話エンジン６を構成する学習受付部６５は、管理端末７からの応答である手動応答情報を受け付ける。また、学習受付部６５は、他の対話エンジン６からの応答である自動応答情報を受け付ける。ここでの手動応答情報または自動応答情報の受け付けは、手動情報または自動情報の受け付けでも良い趣旨である。
【０２８２】
学習部６６は、学習受付部３５が受け付けた手動応答情報を用いて、学習処理を行う。また、学習部６６は、学習受付部３５が受け付けた自動応答情報を用いて、学習処理を行う。自動応答情報を用いた学習処理については、上述した。
【０２８３】
学習処理は、例えば、手動応答情報を用いて、学習情報格納部３１の学習情報に情報を付加することである。学習処理は、例えば、手動応答情報を用いて、学習情報格納部３１の学習情報を変更することである。学習情報に情報を付加する処理は、学習情報格納部３１に新しい学習情報を追記する処理を含む。
【０２８４】
学習部６６は、例えば、手動応答情報と当該手動応答情報に対応する発話情報の組である学習情報を学習情報格納部３１に追記する。
【０２８５】
学習部６６は、例えば、手動応答情報と当該手動応答情報に対応する発話情報の組の情報から、状態遷移情報である学習情報に、当該発話情報の前の自動応答情報のノード（状態）の先の状態として、発話情報のノードを付加し、当該発話情報のノードに、手動応答情報のノードを付加する。
【０２８６】
学習部６６は、例えば、手動応答情報から手動応答情報のパターンを構成し、かつ当該手動応答情報に対応する発話情報から発話情報のパターンを構成し、発話情報のパターンと応答のパターンとの組である学習情報を学習情報格納部３１に追記する。なお、応答のパターンは、自動応答情報のパターンとなる。
【０２８７】
学習部６６は、例えば、手動応答情報から手動応答情報のパターンを構成し、かつ当該手動応答情報に対応する発話情報から発話情報のパターンを構成し、当該パターンの組に合致する、発話情報のパターンと自動応答情報のパターンの組の出現頻度または出現確率を増加させるように、学習情報格納部３１の学習情報を更新する。かかる場合、学習情報は、発話情報のパターンと自動応答情報のパターンの組、および出現頻度または出現確率を有する。
【０２８８】
なお、学習部６６は、例えば、発話情報に対応する発話識別子と手動応答情報に対応する発話識別子とが同一の、発話情報と手動応答情報とを用いて、上記の学習処理を行う。
【０２８９】
また、学習部６６が行う手動応答情報を用いた学習処理は種々あり得る。手動応答情報または他の対話エンジン６からの自動応答情報を用いる点を除いて、学習部６６が行う学習処理は他の公知の学習処理のアルゴリズムを用いても良い。
【０２９０】
管理端末７を構成する管理格納部７０は、各種の情報が格納される。各種の情報は、例えば、モード情報、発話情報、自動情報、手動応答情報等である。
【０２９１】
管理情報受付部７１は、管理者からの手動応答情報を受け付ける。ここでの受け付けは、音声による受け付けでも良いし、キーボードやマウス等の入力手段からの受け付けでも良い。
【０２９２】
管理情報受付部７１は、管理者からの手動応答情報を音声で受け付けることは好適である。また、管理情報受付部７１は、管理者からの手動応答情報をキーボード、マウス、タッチパネル、メニュー画面によるもの等から受け付けても良い。管理情報受付部７１は、一の手動応答情報を、音声で受け付けたり、キーボード等の入力手段により受け付けたりすることは好適である。つまり、管理情報受付部７１は、音声による受け付け手段と、キーボード、マウス、タッチパネル、またはメニュー画面等の入力手段との両方を具備し、一の手動応答情報をいずれかの手段により受け付けることは好適である。
【０２９３】
管理情報受付部７１は、自動情報を対話制御装置５から受け付ける。また、管理情報受付部７１は、発話情報を対話制御装置５から受け付ける。なお、ここでの受け付けは、通常、受信であるが、情報が管理端末７に渡る処理であれば良い。
【０２９４】
管理処理部７２は、各種の処理を行う。各種の処理とは、例えば、管理情報受付部７１が受け付けた自動情報または発話情報を出力するデータ構造にしたり、かかる情報の出力画面を構成したりする処理である。
【０２９５】
管理者出力部７３は、各種の処理を行う。各種の処理とは、例えば、管理情報受付部７１が受け付けた自動情報または発話情報を出力するデータ構造にしたり、かかる情報の出力画面を構成したりする処理である。
【０２９６】
管理指示受付部７４は、管理者から各種の指示を受け付ける。各種の指示とは、例えば、モードの変更の指示である変更指示等である。各種の指示の入力手段は、キーボードやタッチパネルやマウスやメニュー画面によるもの等、何でも良い。管理指示受付部７４は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【０２９７】
管理出力部７５は、各種の情報や指示を対話制御装置５に出力する。各種の情報や指示は、例えば、変更指示、モード情報等である。なお、ここでの出力は、通常、送信であるが、情報等が対話制御装置２に渡れば良い。
【０２９８】
格納部５１、モード格納部５１１、および管理格納部７０は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【０２９９】
格納部５１等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部５１等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部５１等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部５１で記憶されるようになってもよい。
【０３００】
処理部５３、決定部５３１、判断部５３２、モード変更部５３３、選択部５３４、応答取得部６３、学習部６６、および管理処理部７２は、通常、ＭＰＵやメモリ等から実現され得る。処理部５３の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０３０１】
出力部５４、発話情報出力部５４１、自動情報出力部５４２、手動情報出力部５４３、送信部５６、応答送信部５６１、応答出力部６４、および管理出力部７５は、通常、無線または有線の通信手段で実現されるが、放送手段等で実現されても良い。
【０３０２】
なお、出力部５４、発話情報出力部５４１、自動情報出力部５４２、手動情報出力部５４３、および応答出力部６４は、情報を出力する出力手段で実現されても良い。ここでの情報の出力とは、例えば、プログラムによる情報の引き渡しである。
【０３０３】
受付部５５、自動応答受付部５５１、手動応答受付部５５２、変更指示受付部５５３、発話受付部６２、学習受付部６５、および管理情報受付部７１は、通常、無線または有線の通信手段で実現されるが、放送受信手段等で実現されても良い。
【０３０４】
なお、受付部５５、自動応答受付部５５１、手動応答受付部５５２、変更指示受付部５５３、発話受付部６２、学習受付部６５、および管理情報受付部７１は、情報を受け付ける受付手段で実現されても良い。ここでの情報の受け付けとは、例えば、プログラムによる情報の引き渡しである。
【０３０５】
管理者出力部７３は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。管理者出力部７３は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【０３０６】
次に、対話システムＣの動作について説明する。まず、対話制御装置５の動作について、図１６のフローチャートを用いて説明する。図１６のフローチャートにおいて、図４のフローチャートと同一のステップについて、その説明を省略する。
【０３０７】
（ステップＳ１６０１）決定部５３１または／および選択部５３４は、発話情報の出力先を決定する。決定部５３１は、例えば、モード格納部２１１のモード情報に従って、出力先を対話エンジン３とするか、管理端末７とするかを決定する。なお、決定部５３１は、発話情報の出力先を、常に、１以上の対話エンジン６と管理端末７との両方にする、としても良い。また、モード情報が自動モードの場合、選択部５３４は、２以上の対話エンジン６のうちの１以上の対話エンジン６を選択する。かかる選択方法については、実施の形態１、２で記載したいずれかの方法が使用できる。なお、選択部５３４は、２以上のすべての対話エンジン６を発話情報の出力先として決定しても良い。
【０３０８】
（ステップＳ１６０２）発話情報出力部２４１は、ステップＳ１６０１で決定された出力先に、ステップＳ４０２で取得された発話情報を出力する。
【０３０９】
（ステップＳ１６０３）受付部５５は、発話情報の出力に応じて、１以上の自動応答情報または手動応答情報を受け付ける。なお、受付部５５は自動応答情報または手動応答情報を受け付けるまでウエイトする。
【０３１０】
（ステップＳ１６０４）選択部５３４は、複数の自動応答情報から一の自動応答情報を選択するか否かを判断する。一の自動応答情報を選択する場合はステップＳ１６０５に行き、一の自動応答情報を選択しない場合はステップＳ１６０６に行く。ここで、選択部５３４は、例えば、ステップＳ１６０１で２以上の対話エンジン３を選択したか否かを判断しても良い。選択部５３４は、例えば、２以上の自動応答情報が受け付けられたか否かを判断しても良い。
【０３１１】
（ステップＳ１６０５）選択部５３４は、２以上の自動応答情報から一の自動応答情報を選択する。
【０３１２】
（ステップＳ１６０６）処理部５３は、受け付けられた自動応答情報または手動応答情報から、自動情報または手動情報を取得する。なお、自動応答情報および手動応答情報の両方が受け付けられた場合、処理部２３は、自動応答情報および動応答情報から、自動情報および手動情報を取得する。
【０３１３】
（ステップＳ１６０７）処理部５３は、自動情報を管理端末７に出力するか否かを判断する。管理端末７に出力する場合はステップＳ１６０８に行き、出力しない場合はステップＳ１６０９に行く。なお、例えば、自動情報を管理端末７に出力するか否かを示すフラグが格納部５１で管理されており、処理部５３は、かかるフラグを格納部５１から読み出し、判断する。また、処理部５３は、常に、自動情報を管理端末７に出力しても良いし、常に、自動情報を管理端末７に出力しなくても良い。
【０３１４】
（ステップＳ１６０８）自動情報出力部２４２は、ステップＳ１６０６で取得された自動情報を管理端末７に出力する。
【０３１５】
（ステップＳ１６０９）処理部５３は、手動情報を対話エンジン６に出力するか否かを判断する。対話エンジン６に出力する場合はステップＳ１６１０に行き、出力しない場合はステップＳ１６１１に行く。なお、例えば、手動情報を対話エンジン６に出力するか否かを示すフラグが格納部５１で管理されており、処理部５３は、かかるフラグを格納部５１から読み出し、判断する。また、処理部５３は、常に、手動情報を対話エンジン６出力しても良いし、常に、手動情報を対話エンジン６に出力しなくても良い。
【０３１６】
（ステップＳ１６１０）手動情報出力部５４３は、ステップＳ１６０６で取得された手動情報を１以上の対話エンジン６に出力する。なお、手動情報出力部５４３は、対話制御装置５が利用可能な複数のすべての対話エンジン６に手動情報を出力しても良いし、一部の対話エンジン６にのみ手動情報を出力しても良い。なお、手動情報の出力先となる対話エンジン６は学習機能を有する対話エンジンであることは好適である。
【０３１７】
（ステップＳ１６１１）決定部５３１は、対話エンジン６を採用するか、管理端末７を採用するかを決定する。そして、決定部５３１は、対話エンジン６を採用するとの判断である場合は自動情報を取得し、管理端末７を採用するとの判断である場合は手動情報を取得する。
【０３１８】
（ステップＳ１６１２）応答送信部５６１は、ステップＳ１６１１で取得された自動情報または手動情報をユーザ端末１に送信する。
【０３１９】
（ステップＳ１６１３）判断部５３２は、モード情報を変更するための条件を満たすか否かを判断する。
【０３２０】
（ステップＳ１６１４）ステップＳ１６１３における判断結果が、条件を満たすとの判断結果である場合はステップＳ１６１５に行き、条件を満たさないとの判断結果である場合はステップＳ１６０１に戻る。
【０３２１】
（ステップＳ１６１５）モード変更部５３３は、モード格納部５１１のモード情報を変更する。ステップＳ１６０１に戻る。
【０３２２】
（ステップＳ１６１６）処理部５３は、ステップＳ１６１５における変更が、手動モードへの変更であるか否かを判断する。手動モードへの変更である場合はステップＳ１６１７に行き、手動モードへの変更でない場合はステップＳ１６１８に行く。
【０３２３】
（ステップＳ１６１７）出力部５４は、最新の発話情報を管理端末７に出力する。ステップＳ１６０５に戻る。
【０３２４】
（ステップＳ１６１８）出力部５４は、最新の発話情報を対話エンジン６に出力する。ステップＳ１６０５に戻る。
【０３２５】
（ステップＳ１６１９）変更指示受付部５５３は、管理端末７から変更指示を受け付けたか否かを判断する。変更指示を受け付けた場合はステップＳ１６２０に行き、変更指示を受け付けない場合はステップＳ１６０１に戻る。
【０３２６】
（ステップＳ１６２０）モード変更部５３３は、モード格納部５１１のモード情報を変更する。ステップＳ１６０１に戻る。
【０３２７】
なお、図１６のフローチャートにおいて、ステップＳ１６１３の判断部５３２の判断処理のタイミングは問わない。
【０３２８】
また、図１６のフローチャートにおいて、自動情報や手動情報の送信の順序や、送信するか否かの判断の順序等の各種の処理の順序は問わないことは言うまでもない。
【０３２９】
また、図１６のフローチャートにおいて、ステップＳ１６０５で自動応答情報を受け付けない場合、自動情報は出力されない。また、ステップＳ１６０５で手動応答情報を受け付けない場合、手動情報は出力されない。
【０３３０】
さらに、図１６のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０３３１】
次に、対話エンジン６の動作について、図１７のフローチャートを用いて説明する。
【０３３２】
（ステップＳ１７０１）発話受付部３２は、対話制御装置２から発話情報を受け付けたか否かを判断する。発話情報を受け付けた場合はステップＳ１７０２に行き、発話情報を受け付けない場合はステップＳ１７０４に行く。
【０３３３】
（ステップＳ１７０２）応答取得部３３は、ステップＳ１７０１で受け付けられた発話情報に対応する自動応答情報を、学習情報格納部３１の学習情報を用いて取得する。
【０３３４】
（ステップＳ１７０３）応答出力部３４は、応答取得部３３が取得した自動応答情報を対話制御装置２に出力する。
【０３３５】
（ステップＳ１７０４）学習受付部６５は、学習対象を受け付けたか否かを判断する。学習対象を受け付けた場合はステップＳ１７０５に行き、学習対象を受け付けない場合はステップＳ１７０１に戻る。学習対象とは、手動応答情報または、他の対話エンジン６の出力である自動応答情報である。
【０３３６】
（ステップＳ１７０５）学習部６６は、学習受付部６５が受け付けた学習対象を用いて、学習情報に、追記する情報を構成する。
【０３３７】
（ステップＳ１７０６）学習部６６は、ステップＳ１７０５で構成した情報を学習情報格納部３１に追記する。ステップＳ１７０１に戻る。
【０３３８】
なお、図５のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０３３９】
次に、対話エンジン６の動作について、図１７のフローチャートを用いて説明する。
【０３４０】
（ステップＳ１７０１）発話受付部３２は、対話制御装置５から発話情報を受け付けたか否かを判断する。発話情報を受け付けた場合はステップＳ１７０２に行き、発話情報を受け付けない場合はステップＳ１７０４に行く。
【０３４１】
（ステップＳ１７０２）応答取得部３３は、ステップＳ１７０１で受け付けられた発話情報に対応する自動応答情報を、学習情報格納部３１の学習情報を用いて取得する。
【０３４２】
（ステップＳ１７０３）応答出力部３４は、応答取得部３３が取得した自動応答情報を対話制御装置５に出力する。
【０３４３】
（ステップＳ１７０４）学習受付部６５は、学習対象の自動応答情報または手動応答情報を受け付けたか否かを判断する。自動応答情報または手動応答情報を受け付けた場合はステップＳ１７０５に行き、自動応答情報を受け付けない場合はステップＳ１７０１に戻る。
【０３４４】
（ステップＳ１７０５）学習部６６は、学習受付部６５が受け付けた自動応答情報または手動応答情報を用いて、学習情報に、追記する情報を構成する。
【０３４５】
（ステップＳ１７０６）学習部６６は、ステップＳ１７０５で構成した情報を学習情報格納部３１に追記する。ステップＳ１７０１に戻る。
【０３４６】
なお、図１７のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０３４７】
また、図１７のフローチャートにおいて、学習処理自体は上記した学習のアルゴリズム、公知のアルゴリズムが採用可能である。
【０３４８】
次に、管理端末７の動作について、図１８のフローチャートを用いて説明する。
【０３４９】
（ステップＳ１８０１）管理情報受付部７１は、発話情報を対話制御装置５から受け付けたか否かを判断する。発話情報を受け付けた場合はステップＳ１８０２に行き、受け付けない場合はステップＳ１８０６に行く。
【０３５０】
（ステップＳ１８０２）管理者出力部７３は、ステップＳ１８０１で受け付けられた発話情報を、または管理処理部７２により出力用に構成された発話情報を出力する。
【０３５１】
（ステップＳ１８０３）管理処理部７２は、発話情報の出力に対応した手動応答情報を出力するか否かを判断する。手動応答情報を出力する場合はステップＳ１８０４に行き、手動応答情報を出力しない場合はステップＳ１８０１に戻る。なお、手動応答情報を出力する場合は、モード情報が手動モードの場合である。なお、例えば、管理格納部７０のモード情報が「手動モード」である場合、管理処理部７２は、手動応答情報を出力すると判断する。
【０３５２】
（ステップＳ１８０４）管理情報受付部７１は、手動応答情報を受け付けたか否かを判断する。手動応答情報を受け付けた場合はステップＳ１８０５に行き、手動応答情報を受け付けない場合はステップＳ１８０４に戻る。
【０３５３】
（ステップＳ１８０５）管理者出力部７３は、ステップＳ１８０４で受け付けられた手動応答情報を対話制御装置５に出力する。ステップＳ１８０１に戻る。
【０３５４】
（ステップＳ１８０６）管理情報受付部７１は、自動情報を対話制御装置６から受け付けたか否かを判断する。自動情報を受け付けた場合はステップＳ１８０７に行き、受け付けない場合はステップＳ１８０８に行く。
【０３５５】
（ステップＳ１８０７）管理者出力部７３は、ステップＳ１８０６で受け付けられた自動情報を、または管理処理部７２により出力用に構成された自動情報を出力する。ステップＳ１８０１に戻る。
【０３５６】
（ステップＳ１８０８）管理指示受付部７４は、管理者からモードの変更指示を受け付けたか否かを判断する。変更指示を受け付けた場合はステップＳ１８０９に行き、変更指示を受け付けない場合はステップＳ１８０１に戻る。
【０３５７】
（ステップＳ１８０９）管理者出力部７５は、ステップＳ１８０８で受け付けられた変更指示を対話制御装置５に出力する。ステップＳ１８０１に戻る。
【０３５８】
なお、図６のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０３５９】
以下、本実施の形態における対話システムＣの具体的な動作について説明する。対話システムＣの概念図は図１３である。
【０３６０】
今、対話制御装置５の格納部５１は、対話が破綻していることを特定するための条件を示す情報である破綻判断条件管理表が格納されている、とする（図１９参照）。破綻判断条件管理表は、「ＩＤ」「破綻条件」を有するレコードを１以上管理している。「破綻条件」は、「情報」「条件」を有する。「ＩＤ」は、レコードを識別する情報である。「情報」は、対話の破綻を判断するために使用する情報である。「情報」は、ユーザ発話情報または自動応答情報である。なお、ユーザ発話情報の代わりに発話情報であっても良いし、自動応答情報の代わりに自動情報でも良い。また、「条件」は、対話の破綻を判断するための条件である。「ＩＤ＝１」の条件は、類似度が９０％以上のユーザ発話情報が連続して受け付けられることである。なお、ユーザ発話情報の類似度の算出の処理は、例えば、文の類似度の算出と同一の処理であり、公知技術であるので詳細な説明を省略する。「ＩＤ＝２」の条件は、類似度が９０％以上のユーザ発話情報が、連続して受け付けられる４つのユーザ発話情報の中で、３以上存在することである。「ＩＤ＝３」の条件は、連続して受け付けられる４つの自動応答情報の中で、破綻用語を含む自動応答情報が２以上存在することである。「ＩＤ＝４」の条件は、会話不成立を示す情報を含む自動応答情報が受け付けられたことである。なお、破綻用語は、ここでは、例えば、「理解できなかった」「理解不能」である、とする。また、会話不成立を示す情報は、例えば、自動応答情報に含まれ得るスコア「０」である、とする。さらに、例えば、モード格納部２１１のデフォルトのモード情報は「自動モード」である、とする。
【０３６１】
また、格納部５１は、例えば、図６に示す優先度情報管理表を格納している、とする。さらに、格納部５１は、例えば、図１２に示す選択条件管理表を格納している、とする。
【０３６２】
また、一の対話エンジン６（例えば、「ｅ１」）を構成する学習情報格納部６１は、図７に示す学習情報管理表を格納している、とする。また、その学習情報格納部６１は、図８に示すＦｏｏｄｔａｂｌｅを格納している、とする。Ｆｏｏｄｔａｂｌｅは、「ＩＤ」「料理」「作り方」を有するレコードを１以上格納している。さらに、その学習情報格納部６１は、料理名を格納しているｆｏｏｄ辞書、作物名を格納しているｃｒｏｐｓ辞書を有する、とする。ｆｏｏｄ辞書には、「カツ丼、牛丼、親子丼、・・・」等の多数の料理名が格納されている。また、ｃｒｏｐｓ辞書には、「お米、ナス、にんじん、・・・」等の多数の作物名が格納されている。
【０３６３】
かかる状況において、以下の３つの具体例について説明する。具体例１は、対話制御装置２が対話の破綻を自動検知して、モード情報が自動モードから手動モードに自動的に切り替わる場合である。また、具体例１において、自動で手動モードから自動モードに切り替える処理についても説明する。また、具体例２は、管理者が手動で、モード情報を自動モードから手動モードに切り替える場合である。また、具体例２において、管理者が手動で、モード情報を手動モードから自動モードに切り替える場合についても説明する。さらに、具体例３は、管理者が入力した手動応答情報を用いて、対話エンジン３が学習を行う場合である。なお、３つの具体例において、例えば、対話システムＣが具備する対話エンジン６は３つである。
【０３６４】
（具体例１）
今、ユーザは、ユーザ端末１に対して、「おはよう」と音声入力した、とする。すると、ユーザ端末１のユーザ受付部１１は、ユーザからの発話「おはよう」を受け付ける。次に、ユーザ処理部１２は、ユーザの音声入力に対して音声認識し、ユーザ発話情報「おはよう」を取得する。次に、ユーザ送信部１３は、ユーザ発話情報「おはよう」を対話制御装置２に送信する。
【０３６５】
次に、対話制御装置５の受信部２２は、ユーザ発話情報「おはよう」をユーザ端末１から受信する。
【０３６６】
そして、処理部５３は、ユーザ発話情報「おはよう」から発話情報「１：おはよう」を取得する。つまり、処理部５３は、格納されている発話識別子「０」（発話識別子の初期値である、とする）をインクリメントし、ユニークな発話識別子「１」を生成する。そして、処理部２３は、ユーザ発話情報に発話識別子「１」を付加し、発話情報「１：おはよう」を構成する。
【０３６７】
次に、決定部５３１は、モード情報「自動モード」をモード格納部５１１から取得し、発話情報の出力先を対話エンジン６、と決定する。
【０３６８】
次に、選択部３４は、３つの対話エンジン６の通知先情報を図６の表から取得する。
【０３６９】
次に、発話情報出力部２４１は、３つの対話エンジン６に発話情報「１：おはよう」を送信する。
【０３７０】
次に、３つの各対話エンジン６の発話受付部３２は、対話制御装置５から発話情報「１：おはよう」を受信する。
【０３７１】
次に、例えば、対話エンジン「ｅ１」の応答取得部３３は、発話情報が有する「おはよう」と対になる自動応答情報「おはようございます」を図７の学習情報管理表から取得する。なお、ここで、応答取得部３３は、発話識別子「１」を付加した自動応答情報「１：おはようございます」を取得することは好適である。
【０３７２】
次に、応答出力部３４は、応答取得部３３が取得した自動応答情報「１：おはようございます」を対話制御装置５に送信する。なお、送信される自動応答情報は、「おはようございます」でも良い。
【０３７３】
次に、対話制御装置５の自動応答受付部２５１は、３つの対話エンジン６から自動応答情報を受信する。なお、対話エンジン「ｅ１」からは、自動応答受付部２５１は、自動応答情報「１：おはようございます」を受信する。
【０３７４】
次に、選択部５３４は、実施の形態１で説明した選択のアルゴリズムにより、優先度が高い対話エンジン「ｅ１」の自動応答情報を選択する。
【０３７５】
次に、処理部５３は、「ｅ１」の自動応答情報から、自動情報「おはようございます」を取得する。次に、応答送信部２６１は、自動情報「おはようございます」をユーザ端末１に送信する。なお、処理部５３は、自動情報を管理端末７に出力しない、と判断する。
【０３７６】
次に、ユーザ端末１のユーザ受信部１４は、自動情報「おはようございます」を受信する。そして、ユーザ出力部１５は、自動情報「おはようございます」を音声出力する。
【０３７７】
次に、ユーザは、ユーザ端末１に対して、「来週の木曜日は営業していますか？」と音声入力した、とする。すると、ユーザ端末１のユーザ受付部１１は、ユーザからの発話「来週の木曜日は営業していますか？」を受け付ける。次に、ユーザ処理部１２は、ユーザの音声入力に対して音声認識し、ユーザ発話情報「来週の木曜日は営業していますか？」を取得する。次に、ユーザ送信部１３は、当該ユーザ発話情報を対話制御装置２に送信する。
【０３７８】
次に、対話制御装置５の受信部２２は、ユーザ発話情報「来週の木曜日は営業していますか？」をユーザ端末１から受信する。
【０３７９】
そして、処理部５３は、当該ユーザ発話情報から発話情報「２：来週の木曜日は営業していますか？」を取得する。つまり、処理部２３は、格納されている発話識別子「１」をインクリメントし、ユニークな発話識別子「２」を生成する。そして、処理部２３は、ユーザ発話情報に発話識別子「２」を付加し、発話情報「２：来週の木曜日は営業していますか？」を構成する。
【０３８０】
次に、決定部５３１は、モード情報から発話情報の出力先を「対話エンジン６」と決定する。
【０３８１】
次に、発話情報出力部２４１は、３つの各対話エンジン３に発話情報「２：来週の木曜日は営業していますか？」を送信する。
【０３８２】
次に、３つの各対話エンジン３の発話受付部３２は、対話制御装置２から発話情報「２：来週の木曜日は営業していますか？」を受信する。
【０３８３】
次に、３つの各対話エンジン３の応答取得部３３は、発話情報が有する「来週の木曜日は営業していますか？」に対応する自動応答情報を取得する。
【０３８４】
なお、対話エンジン「ｅ１」の応答取得部３３は、「来週の木曜日は営業していますか？」が図８の学習情報管理表の中の発話情報のパターン「｛ｔｉｍｅＥｘｐｒｅｓｓｉｏｎ｝＊営業していますか？＊」に合致することを検出する。なお、かかる発話情報のパターンは、図８の学習情報管理表の「ＩＤ＝３」の情報である。そして、応答取得部３３は、「ＩＤ＝３」の自動応答情報を取得する。そして、応答取得部３３は、当該自動応答情報の｛ｔｉｍｅＥｘｐｒｅｓｓｉｏｎ｝に対して「来週の木曜日」を代入し、「＄営業日」の値「日曜日、火曜日、水曜日、木曜日、金曜日、土曜日」から、来週の木曜日が営業日に含まれる（つまり、自動応答情報の実行結果「真」）、と判断する。なお、応答取得部３３は、「来週の木曜日」から曜日を示す「木曜日」を抽出し、「＄営業日」の値に含まれる、と判断する。次に、対話エンジン「ｅ１」の応答取得部３３は、自動応答情報のパターン"はい。｛ｔｉｍｅＥｘｐｒｅｓｓｉｏｎ｝は営業しております"を取得する。次に、応答取得部３３は、自動応答情報のパターンの｛ｔｉｍｅＥｘｐｒｅｓｓｉｏｎ｝に対して「来週の木曜日」を代入し、自動応答情報「来週の木曜日は営業しております」を取得する。そして、応答送信部２６１は、自動応答情報「２：来週の木曜日は営業しております」を対話制御装置５に送信する。
【０３８５】
次に、対話制御装置５の自動応答受付部５５１は、自動応答情報を３つの各エンジン３から受信する。
【０３８６】
次に、選択部５３４は、上述した処理により、３つの自動応答情報の中から、対話エンジン「ｅ１」の自動応答情報「２：来週の木曜日は営業しております」を選択する。
【０３８７】
次に、処理部５３は、自動応答情報から、自動情報「来週の木曜日は営業しております」を取得する。次に、決定部５３１は、モード情報「自動モード」から対話エンジン６を採用すると決定する。そして、応答送信部５６１は、自動情報「来週の木曜日は営業しております」をユーザ端末１に送信する。
【０３８８】
次に、ユーザ端末１のユーザ受信部１４は、自動情報「来週の木曜日は営業しております」を受信する。そして、ユーザ出力部１５は、自動情報「来週の木曜日は営業しております」を音声出力する。
【０３８９】
以上のように、ユーザと３つのうちのいずれかの対話エンジン６との対話の動作が繰り返し行われた、とする。そして、３つの対話エンジン６から送信されたすべての自動応答情報の中に「理解不能」を含む情報が、２回連続して、対話制御装置２に送信された、とする。なお、３つの各対話エンジン６は、受け付けた発話情報に対応する自動応答情報を取得することができなかった場合、「理解不能」を含む自動応答情報を構成し、送信する、とする。また、２回目の「理解不能」を含む自動応答情報に対応するユーザ発話情報は「来週の木曜日のお席の予約は可能ですか？」であった、とする。
【０３９０】
そして、対話制御装置５の自動応答受付部５５１が、最終的に選択された自動応答情報が、２度目の「理解不能」を含む自動応答情報であった、とする。なお、処理部５３は、選択された自動応答情報やユーザ発話情報や手動応答情報等のログを格納部５１に蓄積することは好適である。または、処理部５３は、１度目の「理解不能」を含む自動応答情報が選択された場合に、当該自動応答情報を格納部５１に蓄積しても良い。
【０３９１】
次に、判断部５３２は、２回の連続した「理解不能」を含む自動応答情報が、図１９の「ＩＤ＝３」の破綻条件に合致する、と判断５。
【０３９２】
次に、モード変更部５３３は、モード格納部２１１のモード情報「自動モード」から「手動モード」に変更する。
【０３９３】
次に、処理部５３は、手動モードへの変更である、と判断する。そして、出力部５４は、最新の発話情報「１２：来週の木曜日のお席の予約は可能ですか？」を管理端末７に出力する。なお、「１２」は発話識別子である。
【０３９４】
次に、管理端末７の管理情報受付部７１は、発話情報「１２：来週の木曜日のお席の予約は可能ですか？」を対話制御装置２から受信する。
【０３９５】
次に、管理者出力部７３は、発話情報のうちの発話内容「来週の木曜日のお席の予約は可能ですか？」を出力する。かかる出力例は、図２０である。図２０において、２００１に発話情報のうちの発話内容が表示されている。
【０３９６】
次に、管理者は、図２０の２００２の「Ｙｅｓ」ボタンを押下した、とする。すると、管理情報受付部７１は、「Ｙｅｓ」ボタンの押下を検知し、「Ｙｅｓ」ボタンに対応づけて格納されている手動応答情報「はい。」を、図２１の手動応答情報管理表から取得する。なお、管理格納部７０には、図２０の画面上のボタンに対応する手動応答情報が管理されている。かかる手動応答情報管理表は、図２１である。図２１は、「ＩＤ」「ボタン」「手動応答情報」を有するレコードが管理されている。「ボタン」の各属性値は、図１０のボタンに対応する。次に、管理者出力部７３は、手動応答情報「はい。」を対話制御装置５に送信する。
【０３９７】
なお、ここで、管理者は、図２０の画面内のボタンを押下せずに、または図２０の２００３の「音声入力」ボタンを押下した後、「はい。来週の木曜日は、４名様までご予約可能です。」などと、音声入力しても良い。かかる場合、対話制御装置２の管理情報受付部７１は、音声データ「はい。来週の木曜日は、４名様までご予約可能です。」を受け付け、当該音声データを音声認識し、テキストの手動応答情報「はい。来週の木曜日は、４名様までご予約可能です。」を得る。そして、管理者出力部７３は、当該手動応答情報を対話制御装置５に送信する。なお、管理情報受付部７１は、デフォルトで、音声を受け付けても良い。
【０３９８】
次に、対話制御装置５の手動情報受付部５５２は、手動応答情報「はい。来週の木曜日は、４名様までご予約可能です。」を受け付ける。そして、処理部５３は、当該手動応答情報を手動情報として取得する。
【０３９９】
そして、モード情報が「手動モード」なので、応答送信部５６１は手動情報「はい。来週の木曜日は、４名様までご予約可能です。」をユーザ端末１に送信する。
【０４００】
次に、ユーザ端末１のユーザ受信部１４は、当該手動情報を受信する。次に、ユーザ出力部１５は、手動情報「はい。来週の木曜日は、４名様までご予約可能です。」を音声出力する。
【０４０１】
以上の処理により、対話の破綻を自動検知し、自動モードから手動モードの自動切り替えを行うことにより、対話の継続が可能となる。
【０４０２】
また、手動モードの状態で、閾値以上の回数の対話（手動応答情報の受信）が行われた場合、判断部５３２は、「手動モード」から「自動モード」にモード情報を変更する、と判断するとする。そして、モード変更部５３３は、モード格納部５１１のモード情報を「手動モード」から「自動モード」に変更する。
【０４０３】
以後、上記で説明したような「自動モード」での対話処理が継続される。なお、ユーザ端末１において、図９に示すようにキャラクタがお話しているように、自動情報または手動情報を音声出力することは好適である。
【０４０４】
（具体例２）
今、ユーザは、ユーザ端末１に対して、「牛丼の作り方を教えて」と音声入力した、とする。すると、ユーザ端末１のユーザ受付部１１は、ユーザからの発話「牛丼の作り方を教えて」を受け付ける。次に、ユーザ処理部１２は、ユーザの音声入力に対して音声認識し、ユーザ発話情報「牛丼の作り方を教えて」を取得する。次に、ユーザ送信部１３は当該ユーザ発話情報を対話制御装置５に送信する。
【０４０５】
次に、対話制御装置５の受信部２２は、ユーザ発話情報「牛丼の作り方を教えて」をユーザ端末１から受信する。
【０４０６】
そして、処理部５３は、当該ユーザ発話情報から発話情報「１：牛丼の作り方を教えて」を取得する。発話情報の「１」は発話識別子である。
【０４０７】
次に、決定部５３１は、発話情報の出力先を対話エンジン６および管理端末７と決定する。なお、本具体例において、発話情報の出力先は、常に、対話エンジン６および管理端末７である、とする。
【０４０８】
次に、選択部５３４は、３つの対話エンジン６から一の対話エンジン６を選択する。ここでは、選択部５３４は、「牛丼の作り方を教えて」に対して自然言語処理を行い、ジャンル「料理」を取得する。そして、選択部５３４は、図１２を参照し、ジャンル「料理」と対になる対話エンジン「ｅ２」を選択する。なお、選択部５３４は、例えば、「牛丼の作り方を教えて」を形態素解析し、自立語「牛丼」「作り方」「教えて」を取得し、当該自立語から機械学習（例えば、深層学習、決定木、ＳＶＭ）により、ジャンル「料理」を取得する。
【０４０９】
次に、発話情報出力部５４１は、発話情報「１：牛丼の作り方を教えて」を、対話エンジン「ｅ２」および管理端末７に送信する。
【０４１０】
そして、管理端末７は、発話情報「１：牛丼の作り方を教えて」を受信し、発話情報に含まれる「牛丼の作り方を教えて」を出力する。
【０４１１】
次に、対話エンジン「ｅ２」の発話受付部３２は、対話制御装置５から発話情報「１：牛丼の作り方を教えて」を受信する。
【０４１２】
次に、対話エンジン「ｅ２」の応答取得部３３は、発話情報が有する「牛丼の作り方を教えて」を形態素解析する。そして、応答取得部３３は、取得した形態素「牛丼」をキーとして、辞書を検索し、「牛丼」は｛ｆｏｏｄ｝に含まれることを検出する。次に、応答取得部３３は、「牛丼の作り方を教えて」が図７の学習情報管理表の「ＩＤ＝４」の発話情報に合致することを検出する。そして、応答取得部３３は、「ＩＤ＝４」の自動応答情報を取得し、当該自動応答情報を実行し、図８のＦｏｏｄｔａｂｌｅから料理「牛丼」に対応する作り方「４人前の材料をご紹介します。・・・」を取得する。そして、応答出力部３４は、応答取得部３３が取得した自動応答情報「１：４人前の材料をご紹介します。・・・」を対話制御装置５に送信する。
【０４１３】
次に、対話制御装置５の受付部５５は、当該自動応答情報を受け付ける。そして、処理部５３は、当該答情報から、自動情報「４人前の材料をご紹介します。・・・」を取得する。なお、ここでは、自動応答情報と自動情報が同じでも良い。
【０４１４】
次に、処理部５３は、自動情報を管理端末７に出力する、と判断する。そして、自動情報出力部５４２は、自動情報「４人前の材料をご紹介します。・・・」を管理端末７に出力する。
【０４１５】
次に、決定部５３１は、モード情報「自動モード」から対話エンジン６を採用する、と判断する。そして、応答送信部５６１は、対話エンジン「ｅ２」からの自動情報「４人前の材料をご紹介します。・・・」をユーザ端末１に送信する。
【０４１６】
次に、ユーザ端末１のユーザ受信部１４は、当該自動情報を受信する。そして、ユーザ出力部１５は、当該自動情報を出力する。
【０４１７】
次に、ユーザは、ユーザ端末１に対して、「粉末うどんスープはどちらのスープがお勧めですか？」と音声入力した、とする。すると、ユーザ端末１のユーザ受付部１１は、当該ユーザの音声入力を受け付ける。次に、ユーザ処理部１２は、ユーザの音声入力に対して音声認識し、ユーザ発話情報「粉末うどんスープはどちらのスープがお勧めですか？」を取得する。次に、ユーザ送信部１３は、当該ユーザ発話情報を対話制御装置５に送信する。
【０４１８】
次に、対話制御装置５の受信部２２は、当該ユーザ発話情報をユーザ端末１から受信する。
【０４１９】
そして、処理部５３は、当該ユーザ発話情報から発話情報「２：粉末うどんスープはどちらのスープがお勧めですか？」を取得する。
【０４２０】
次に、決定部５３１は、発話情報の出力先を対話エンジン６および管理端末７と決定する。そして、発話情報出力部５４１は、当該発話情報を、選択されている対話エンジン「ｅ２」および管理端末７に送信する。
【０４２１】
次に、対話エンジン「ｅ２」は、当該発話情報を受信し、当該発話情報に対応する自動応答情報を取得し、対話制御装置５に送信する。なお、ここでの自動応答情報は、例えば、「理解できない」旨の情報を含む、とする。
【０４２２】
また、管理端末７は、当該発話情報を受信し、発話情報に含まれる「粉末うどんスープはどちらのスープがお勧めですか？」を出力する。
【０４２３】
そして、この出力を見た管理者は、どの対話エンジン６にも答えられないと判断し、管理端末７にモード情報の変更指示を入力した、とする。そして、管理者は、「粉末うどんスープはＡ社のスープがお勧めです。」と音声入力した、とする。
【０４２４】
次に、管理指示受付部７４は、管理者からモードの変更指示（自動モードから手動モードへの変更指示）を受け付ける。そして、管理出力部７５は、かかる変更指示を対話制御装置５に出力する。
【０４２５】
また、管理情報受付部７１は、音声データ「粉末うどんスープはＡ社のスープがお勧めです。」を受け付け、当該音声データを音声認識し、テキストに変更する。次に、管理者出力部７３は、テキストの手動応答情報「２：粉末うどんスープはＡ社のスープがお勧めです。」を対話制御装置５に送信する。
【０４２６】
次に、対話制御装置５の変更指示受付部５５３は、管理端末７から変更指示を受信する。モード変更部５３３は、モード格納部５１のモード情報を、手動モードに変更する。
【０４２７】
また、手動応答受付部５５２は、管理端末７から手動応答情報を受信する。処理部５３は、受信された自動応答情報および手動応答情報から、自動情報および手動情報を取得する。
【０４２８】
次に、決定部５３１は、モード情報「手動モード」から管理端末７を採用する、と決定する。
【０４２９】
そして、応答送信部５６１は、取得された手動情報「粉末うどんスープはＡ社のスープがお勧めです。」をユーザ端末１に送信する。
【０４３０】
次に、ユーザ端末１は、手動情報「粉末うどんスープはＡ社のスープがお勧めです。」を受信し、出力する。
【０４３１】
以上の処理により、管理者が適切に対話に介在し、複数の対話エンジンも用いて、効果的で継続的な対話を行える。なお、本具体例において、管理者が「自動モード」にモード情報を変更する指示を入力した後、「自動モード」で対話を行うことができる。
【０４３２】
（具体例３）
具体例２において、対話制御装置５の手動応答受付部５５２が管理端末７から手動応答情報「２：粉末うどんスープはＡ社のスープがお勧めです。」を受信した後、処理部５３は、手動応答情報を３つの各対話エンジン６に送信する、と判断する。
【０４３３】
そして、手動情報出力部５４３は、かかる手動応答情報を３つの各対話エンジン６に送信する。なお、ここで、手動情報出力部５４３は、手動情報を３つの各対話エンジン６に送信しても良い。また、手動情報出力部５４３は、通常、発話情報またはユーザ発話情報を、手動応答情報または手動情報と対にして、３つの各対話エンジン６に送信する。なお、手動情報出力部５４３は既に発話情報が送信されている対話エンジン６には、発話情報またはユーザ発話情報を送信しないことは好適である。
【０４３４】
次に、対話エンジン６の学習受付部６５は、手動応答情報「２：粉末うどんスープはＡ社のスープがお勧めです。」を受信する。
【０４３５】
次に、学習部６６は、学習受付部６５が受け付けた手動応答情報を用いて、学習情報に、追記する情報を構成する。つまり、学習部６６は、手動応答情報「２：粉末うどんスープはＡ社のスープがお勧めです。」が有する発話識別子「２」に対応する発話情報を取得する。そして、発話識別子「２」に対応する発話情報の内容「粉末うどんスープはどちらのスープがお勧めですか？」と手動応答情報の内容「粉末うどんスープはＡ社のスープがお勧めです。」との組を、図７の学習情報管理表に追記する。
【０４３６】
なお、学習部６６は、発話情報の内容「粉末うどんスープはどちらのスープがお勧めですか？」のうち、名詞または名詞句「粉末うどんスープ」「スープ」を変数に置き換え、「｛変数１｝はどちらの{変数２}がお勧めですか？」というパターンに変更し、「粉末うどんスープはＡ社のスープがお勧めです。」のうち、名詞または名詞句「粉末うどんスープ」「Ａ社」「スープ」を変数に置き換え、「｛変数３｝は{変数４}の｛変数５｝がお勧めです。」というパターンに変更し、２つのパターンの組を、図７の学習情報管理表に追記するなどしても良い。
【０４３７】
つまり、本具体例において、管理者からの入力である手動応答情報を用いて、学習情報をよくすれば良く、学習情報の構造は問わない。
【０４３８】
また、本具体例において、各対話エンジン６は、他の対話エンジン６が出力した自動応答情報を用いて、学習処理を行うことが好適である。
【０４３９】
以上、本実施の形態によれば、対話エンジン６からの応答と管理者からの応答とを使い分けて、ユーザ端末に出力することにより、適切な対話を継続できる。
【０４４０】
また、本実施の形態によれば、管理者からの応答を学習できる対話エンジン６を提供できる。
【０４４１】
また、本実施の形態によれば、例えば、対話が破綻した等の場合に、対話を支援できる管理端末７を提供できる。
【０４４２】
なお、本実施の形態における対話制御装置５を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、２以上の対話エンジンから、ユーザの発話に対応する応答である自動応答情報を受け付け得る対話制御装置におけるプログラムであって、コンピュータを、ユーザの発話に対応するユーザ発話情報をユーザ端末から受信する受信部と、前記ユーザ発話情報に対応する情報である発話情報を、１以上の対話エンジンに対して出力し得る発話情報出力部と、前記発話情報の出力に応じて、前記１以上の各対話エンジンから自動応答情報を受け付ける自動応答受付部と、前記自動応答受付部が受け付けた１以上の自動応答情報のうちの一の自動応答情報に対応する一の自動情報を前記ユーザ端末に送信する応答送信部として機能させるためのプログラムである。
【０４４３】
また、上記プログラムにおいて、前記発話情報出力部は、前記発話情報を管理端末に対しても出力可能であり、コンピュータを、前記発話情報の前記管理端末への出力に応じて、前記管理端末からの応答である手動応答情報を受け付ける手動応答受付部としてさらに機能させ、前記応答送信部は、前記一の自動応答情報に対応する情報である一の自動情報または前記手動応答情報に対応する情報である手動情報を前記ユーザ端末に送信するものとして、コンピュータを機能させるプログラムであることは好適である。
【０４４４】
また、上記プログラムにおいて、コンピュータを、対話エンジンを採用するか、管理端末を採用するかを決定する決定部としてさらに機能させ、前記応答送信部は、前記決定が対話エンジンを採用するとの決定の場合は、前記一の自動情報を前記ユーザ端末に送信し、前記決定が管理端末を採用するとの決定の場合は、前記手動情報を前記ユーザ端末に送信するものとして、コンピュータを機能させるプログラムであることは好適である。
【０４４５】
また、上記プログラムにおいて、コンピュータを、対話エンジンを採用する自動モード、または管理端末を採用する手動モードのいずれかを、少なくとも採り得るモード情報が格納されるモード格納部と、モード情報を変更するための予め決められた条件を満たすか否かを判断する判断部と、前記判断部が予め決められた条件を満たすと判断した場合に、前記モード情報を変更するモード変更部としてさらに機能させ、前記決定部は、前記モード格納部のモード情報を取得するものとして、コンピュータを機能させるプログラムであることは好適である。
【０４４６】
また、上記プログラムにおいて、コンピュータを、対話エンジンを採用する自動モード、または管理端末を採用する手動モードのいずれかを、少なくとも採り得るモード情報が格納されるモード格納部と、管理端末からモードの変更の指示である変更指示を受け付ける変更指示受付部と、前記変更指示に応じて、前記モード格納部のモード情報を変更するモード変更部としてさらに機能させ、前記決定部は、前記モード格納部のモード情報に従って、対話エンジンを採用するか、管理端末を採用するかを決定するものとして、コンピュータを機能させるプログラムであることは好適である。
【０４４７】
また、上記プログラムにおいて、コンピュータを、前記一の自動情報を前記管理端末に出力する自動情報出力部としてさらに機能させ、ものとして、コンピュータを機能させるプログラムであることは好適である。
【０４４８】
また、上記プログラムにおいて、コンピュータを、前記手動情報を前記対話エンジンに出力する手動情報出力部としてさらに機能させ、ものとして、コンピュータを機能させるプログラムであることは好適である。
【０４４９】
（実施の形態４）
本実施の形態において、スタンドアロンの対話装置８について説明する。ここでは、対話装置８は、通常、２以上の対話エンジン３を有する。また、対話装置８は、例えば、対話システムＡのユーザ端末１、対話制御装置２、対話エンジン３を有する。ただし、ここでの対話装置８は、管理端末７は含まず、管理端末７と通信を行う。
【０４５０】
図２２は、本実施の形態における対話装置８のブロック図である。
【０４５１】
対話装置８は、受付部８１、発話情報出力部８２、自動応答受付部８３、手動応答受付部８４、応答出力部８５、および１以上の対話エンジン３を備える。
【０４５２】
受付部８１は、ユーザが入力した発話に対応するユーザ発話情報を受け付ける。なお、受付部８１は、発話を受け付け、当該発話からユーザ発話情報を構成しても良い。また、ここでの受け付けは、音声データであるユーザ発話情報の受け付けでも良いし、テキストのユーザ発話情報の受け付けでも良い。ここで、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
【０４５３】
ユーザ発話情報の入力手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。受付部８１は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【０４５４】
発話情報出力部８２は、ユーザ発話情報に関する発話情報を、２以上の対話エンジン３または画面のうちの少なくともどちらか一方に出力する。ここでの出力とは、発話情報の引き渡しを行われれば良い。なお、画面への出力とは、管理端末７の画面への出力でも良い。
【０４５５】
発話情報出力部８２は、通常、ＭＰＵやメモリ等から実現され得る。発話情報出力部８２の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。発話情報出力部８２は、無線または有線の通信手段で実現されても良い。
【０４５６】
自動応答受付部８３は、発話情報の１以上の対話エンジン３への出力に応じて、１以上の対話エンジン３からの応答である自動応答情報を受け付ける。自動応答受付部８３は、複数の自動応答情報から一の自動応答情報を選択する選択部２３１、または複数の対話エンジンから一の対話エンジンを選択する選択部４３１の機能を有する。
【０４５７】
手動応答受付部８４は、発話情報の画面への出力に応じて、管理者からの応答である手動応答情報を受け付ける。ここでの受け付けは、管理端末７からの受信でも良い。
【０４５８】
手動応答受付部８４は、例えば、無線または有線のネットワークの受信手段等で実現され得る。
【０４５９】
応答出力部８５は、自動応答情報に関する自動情報または手動応答情報に関する手動情報を出力する。ここでの出力は、ユーザに対する出力であり、例えば、音声出力、またはディスプレイへの表示である。
【０４６０】
応答出力部８５は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。応答出力部８５は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【０４６１】
次に、対話装置８の動作について、図２３のフローチャートを用いて説明する。図２３のフローチャートにおいて、図４、図１１のフローチャートと同一のステップについて、説明を省略する。
【０４６２】
（ステップＳ２３０１）受付部８１は、ユーザ発話情報を受け付けたか否かを判断する。ユーザ発話情報を受け付けた場合はステップＳ４０２に行き、受け付けない場合はステップＳ４１９に行く。なお、本ステップにおいて、受付部８１は、ユーザからの発話を受け付け、当該発話からユーザ発話情報を構成しても良い。かかる処理も、ユーザ発話情報の受け付けである。
【０４６３】
（ステップＳ２３０２）自動応答受付部８３は、対話エンジン３を動作させるか否かを判断する。対話エンジン３を動作させる場合はステップＳ２３０３に行き、対話エンジン３を動作させない場合はステップＳ２３０４に行く。なお、自動応答受付部５３は、例えば、格納部５１のモード情報が自動モードである場合、対話エンジン３を動作させると判断する。また、対話エンジン３を動作させる場合、自動応答受付部８３は、複数の対話エンジン３を動作させても良いし、選択した一の対話エンジン３を動作させても良い。対話エンジン３を選択する処理は上述した。
【０４６４】
（ステップＳ２３０３）自動応答受付部５３は、一の対話エンジン３の出力である自動応答情報を取得する。なお、自動応答受付部８３が複数の対話エンジン３を動作させた場合、通常、２以上の自動応答情報から一の自動応答情報を選択する。一の自動応答情報を選択する処理は上述した。
【０４６５】
（ステップＳ２３０４）手動応答受付部８４は、管理者の入力に対応する手動応答情報を取得する。なお、例えば、モード情報が手動モードである場合、手動応答受付部８４は、手動応答情報を取得できるまでウエイトする。
【０４６６】
（ステップＳ２３０５）応答出力部８５は、自動情報を画面に出力するか否かを判断する。画面に出力する場合はステップＳ２３０６に行き、出力しない場合はステップＳ２３０７に行く。なお、例えば、自動情報を画面に出力するか否かを示すフラグが格納部５１で管理されており、応答出力部８５は、かかるフラグを格納部８０から読み出し、判断する。また、応答出力部８５は、常に、自動情報を画面に出力しても良いし、常に、自動情報を画面に出力しなくても良い。また、本ステップの処理は、応答出力部８５が行ったが、図示しない判断手段が行っても良い。
【０４６７】
（ステップＳ２３０６）応答出力部８５は、自動情報を画面に出力する。
【０４６８】
（ステップＳ２３０７）図示しない処理部は、手動情報を対話エンジン３に出力するか否かを判断する。対話エンジン３に出力する場合はステップＳ２３０８に行き、出力しない場合はステップＳ２３０９に行く。なお、例えば、手動情報を対話エンジン３に出力するか否かを示すフラグが格納部８０で管理されており、処理部２３は、かかるフラグを格納部２１から読み出し、判断する。また、処理部２３は、常に、手動情報を対話エンジン３に出力しても良いし、常に、手動情報を対話エンジン３に出力しなくても良い。
【０４６９】
（ステップＳ２３０８）図示しない処理部は、取得された手動情報を対話エンジン３に出力する。
【０４７０】
（ステップＳ２３０９）応答出力部８は、ユーザに出力する情報を取得する。かかる情報は、自動情報または手動情報である。また、応答出力部８５は、例えば、モード情報が自動モードの場合は自動情報を取得し、手動モードの場合は手動情報を取得する。
【０４７１】
（ステップＳ２３１０）応答出力部８５は、ステップＳ２３０９で取得した情報を出力する。
【０４７２】
（ステップＳ２３１１）図示しない判断部は、モード情報を変更するための条件を満たすか否かを判断する。
【０４７３】
（ステップＳ２３１２）ステップＳ２３１１における判断結果が、条件を満たすとの判断結果である場合はステップＳ２３１２に行き、条件を満たさないとの判断結果である場合はステップＳ２３１４に行く。
【０４７４】
（ステップＳ２３１３）図示しないモード変更部は、格納部８０のモード情報を変更する。
【０４７５】
（ステップＳ２３１４）図示しない処理部は、ステップＳ２３１３における変更が、手動モードへの変更であるか否かを判断する。手動モードへの変更である場合はステップＳ２３１５に行き、手動モードへの変更でない場合はステップＳ２３１６に行く。
【０４７６】
（ステップＳ２３１５）発話情報出力部８２は、最新の発話情報を画面に出力する。ステップＳ２３０２に戻る。
【０４７７】
（ステップＳ２３１６）発話情報出力部８２は、最新の発話情報を各対話エンジン３に出力する。ステップＳ２３０２に戻る。
【０４７８】
なお、図２３のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０４７９】
以上、本実施の形態によれば、１または２以上の対話エンジン３からの応答と管理者からの応答とを使い分けて、ユーザに対して出力することにより、適切な対話を継続できる。
【０４８０】
なお、本実施の形態において、対話装置８は、管理端末７と通信した。しかし、対話装置８は、ユーザ端末１と通信しても良い。かかる場合、対話装置８は、管理端末７を具備しても良い。
【０４８１】
さらに、本実施の形態における対話装置８を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、２以上の対話エンジンから、ユーザの発話に対応する応答である自動応答情報を受け付け得る対話装置を実現するプログラムであって、コンピュータを、前記ユーザ発話情報に対応する情報である発話情報を、１以上の対話エンジンに対して出力し得る発話情報出力部と、前記発話情報の出力に応じて、前記１以上の各対話エンジンから自動応答情報を受け付ける自動応答受付部と、前記自動応答受付部が受け付けた１以上の自動応答情報のうちの一の自動応答情報に対応する一の自動情報を前記ユーザ端末に出力する応答出力部として機能させるためのプログラムである。
【０４８２】
上記プログラムにおいて、前記発話情報出力部は、前記ユーザ発話情報に関する発話情報を、１以上の対話エンジンまたは画面のうちの少なくともどちらか一方に出力し、前記発話情報の前記画面への出力に応じて、管理者からの応答である手動応答情報を受け付ける手動応答受付部をさらに具備し、前記応答出力部は、前記自動応答情報に関する自動情報または前記手動応答情報に関する手動情報を出力するものとして、コンピュータを機能させるプログラムであることは好適である。
【０４８３】
また、図２４は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の対話制御装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図２４は、このコンピュータシステム３００の概観図であり、図２５は、システム３００のブロック図である。
【０４８４】
図２４において、コンピュータシステム３００は、ＣＤ−ＲＯＭドライブを含むコンピュータ３０１と、キーボード３０２と、マウス３０３と、モニタ３０４とを含む。
【０４８５】
図２５において、コンピュータ３０１は、ＣＤ−ＲＯＭドライブ３０１２に加えて、ＭＰＵ３０１３と、ＣＤ−ＲＯＭドライブ３０１２等に接続されたバス３０１４と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ３０１５と、ＭＰＵ３０１３に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ３０１６と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク３０１７とを含む。ここでは、図示しないが、コンピュータ３０１は、さらに、ＬＡＮへの接続を提供するネットワークカードを含んでも良い。
【０４８６】
コンピュータシステム３００に、上述した実施の形態の対話制御装置等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ３１０１に記憶されて、ＣＤ−ＲＯＭドライブ３０１２に挿入され、さらにハードディスク３０１７に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ３０１に送信され、ハードディスク３０１７に記憶されても良い。プログラムは実行の際にＲＡＭ３０１６にロードされる。プログラムは、ＣＤ−ＲＯＭ３１０１またはネットワークから直接、ロードされても良い。
【０４８７】
プログラムは、コンピュータ３０１に、上述した実施の形態の対話制御装置等の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム３００がどのように動作するかは周知であり、詳細な説明は省略する。
【０４８８】
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理（ハードウェアでしか行われない処理）は含まれない。
【０４８９】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０４９０】
また、上記各実施の形態において、一の装置に存在する２以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
【０４９１】
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０４９２】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０４９３】
以上のように、本発明にかかる対話制御装置は、複数の対話エンジンを効果的に用いて、適切な対話を継続させることができるという効果を有し、対話制御装置等として有用である。
【符号の説明】
【０４９４】
１  ユーザ端末
２、４、５、６  対話制御装置
３、６  対話エンジン
７  管理端末
８  対話装置
１１  ユーザ受付部
１２  ユーザ処理部
１３  ユーザ送信部
１４  ユーザ受信部
１５  ユーザ出力部
２１、４１、５１、８０  格納部
２２  受信部
２３、４３、５３  処理部
２４、５４  出力部
２５、５５、８１  受付部
２６、５６  送信部
３１、６１  学習情報格納部
３２、６２  発話受付部
３３、６３  応答取得部
３４、６４、８５  応答出力部
３５、６５  学習受付部
３６、６６  学習部
５１、２１１、５１１  モード格納部
５３、８３、２５１、５５１  自動応答受付部
７０  管理格納部
７１  管理情報受付部
７２  管理処理部
７３  管理者出力部
７４  管理指示受付部
７５  管理出力部
８２、２４１、５４１  発話情報出力部
８４、５５２  手動応答受付部
２３１、４３１、５３４  選択部
２４２、５４２  自動情報出力部
２４２  自動応答情報出力部
２６１、５６１  応答送信部
５３１  決定部
５３２  判断部
５３３  モード変更部
５４３  手動情報出力部
５５２  手動情報受付部
５５３  変更指示受付部
【図１】
2018041124.tif 000003
【図２】
2018041124.tif 000004
【図３】
2018041124.tif 000005
【図４】
2018041124.tif 000006
【図５】
2018041124.tif 000007
【図６】
2018041124.tif 000008
【図７】
2018041124.tif 000009
【図８】
2018041124.tif 000010
【図９】
2018041124.tif 000011
【図１０】
2018041124.tif 000012
【図１１】
2018041124.tif 000013
【図１２】
2018041124.tif 000014
【図１３】
2018041124.tif 000015
【図１４】
2018041124.tif 000016
【図１５】
2018041124.tif 000017
【図１６】
2018041124.tif 000018
【図１７】
2018041124.tif 000019
【図１８】
2018041124.tif 000020
【図１９】
2018041124.tif 000021
【図２０】
2018041124.tif 000022
【図２１】
2018041124.tif 000023
【図２２】
2018041124.tif 000024
【図２３】
2018041124.tif 000025
【図２４】
2018041124.tif 000026
【図２５】
2018041124.tif 000027