(57)【要約】      （修正有）【課題】人にあたかもその拡大解釈を伴った発話をしたような感覚を与えるエージェント対話システムを提供する。【解決手段】ロボット対話システム１０は、すべてスクリプトによって、ロボットＲ１およびＲ２の間で対話を行わせる。人Ｈの意思をセンサマネージャ１８が認定したとき、グループマネージャ２０は、人意思処理モジュール２３とともに、ロボットＲ１およびＲ２に、認定した人の意思を拡大解釈したうえで承認する対話を実行させる。【選択図】図１
2017079004.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが発話機能を有する複数のエージェントが対話場所においてスクリプトに従って対話し、対話場所に人が陪席するエージェント対話システムであって、
人の意思を認定する意思認定手段(18)、および
前記意思認定手段が認定した人の意思を承認する発話および非言語動作の少なくとも一方を少なくとも１つのエージェントに実行させる実行手段を備える、エージェント対話システム。
【請求項２】
前記実行手段は、複数のエージェントに前記人の意思を拡大解釈した対話を実行させる対話実行手段を含む、請求項１記載のエージェント対話システム。
【請求項３】
前記対話実行手段は、１つのエージェントに前記人の意思を拡大解釈した発話を実行させ、他の少なくとも１つのエージェントに前記拡大解釈した発話を承認する発話を実行させる、請求項２記載のエージェント対話システム。
【請求項４】
それぞれが発話機能を有する複数のエージェントが対話場所においてスクリプトに従って対話し、対話場所に人が陪席するエージェント対話システムのコンピュータによって実行されるプログラムであって、前記プログラムは、前記コンピュータを
人の意思を認定する意思認定手段、および
前記意思認定手段が認定した人の意思を承認する発話および非言語動作の少なくとも一方を少なくとも１つのエージェントに実行させる実行手段として機能させる、エージェント対話システムのプログラム。
【請求項５】
前記実行手段は、複数のエージェントに前記人の意思を拡大解釈した対話を実行させる対話実行手段を含む、請求項４記載のエージェント対話システムのプログラム。
【請求項６】
前記対話実行手段は、１つのエージェントに前記人の意思を拡大解釈した発話を実行させ、他の少なくとも１つのエージェントに前記拡大解釈した発話を承認する発話を実行させる、請求項５記載のエージェント対話システムのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、エージェント対話システムに関し、特にたとえば、複数のエージェントと少なくとも１人の人が参加する、新規なエージェント対話システムに関する。
【背景技術】
【０００２】
ロボット分野の広がりとともに、ロボット研究は，日常的な場面で働くロボットの研究に焦点を移しつつあり、人間が生活する環境の中で、人と対話することができるロボットの開発が注目されている。
【０００３】
近年の音声認識の技術の発展により、これまでにも人間と音声言語でやりとりをする機能を持つロボットが開発されてきているが、音声認識技術をいくら優れたものにしても、ロボットと人との対話において、人が人との対話に参加しているときに抱く「対話感（対話に参加しているという感覚）」と同等の感覚を、ロボットと対話する人に与え続けることは容易ではなかった。
【０００４】
背景技術の一例である特許文献１には、ロボットと人との対話において、ロボットが人の感情を推測して応答文の発話とその発話に伴う動作を決定することが開示されている。
【０００５】
特許文献２には、人とロボットとの対話システムにおいて、両者の同調を図ることで、持続的で自然なインタラクションを実現しようとするものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2004-90109号公報[B25J 13/00…]
【特許文献２】特開2012-181697号公報[G06F 3/16…]
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の技術においても、特許文献２の技術においても、音声認識に基づく処理に限界があり、上述の「対話感」を人が持続することは容易ではない。
【０００８】
それゆえに、この発明の主たる目的は、新規な、エージェント対話システムを提供することである。
【０００９】
この発明の他の目的は、人に対話に参加している感覚を持続させることができる、エージェント対話システムを提供することである。
【課題を解決するための手段】
【００１０】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、この発明の理解を助けるために記述する実施形態との対応関係を示したものであって、この発明を何ら限定するものではない。
【００１１】
第１の発明は、それぞれが発話機能を有する複数のエージェントが対話場所においてスクリプトに従って対話し、対話場所に人が陪席するエージェント対話システムであって、人の意思を認定する意思認定手段、および意思認定手段が認定した人の意思を承認する発話および非言語動作の少なくとも一方を少なくとも１つのエージェントに実行させる実行手段を備える、エージェント対話システムである。
【００１２】
第１の発明では、エージェント対話システム（１０：実施例において相当する部分を例示する参照符号。以下、同様。）は、対話場所（１２）に、それぞれが発話機能（４６）を有する複数のエージェント（Ｒ１，Ｒ２）を配置し、その対話場所（１２）に人（Ｈ）が陪席する。エージェントどうしはスクリプトに従って対話する。たとえばセンサマネージャのような意思認定手段（１８）が、必ずしも人Ｈの実際の意思の如何にはよらず、人Ｈの意思を認定する。実行手段（２０ａ、２３、Ｓ７７、Ｓ８３）は、少なくとも１つのエージェントに対して、当該人の意思を承認する発話および／または非言語動作を実行させる。たとえば、人Ｈの意思を認定したとき、実行手段の一例である図１５のステップＳ８３において、エージェント（Ｒ１、Ｒ２）の対話によってその意思を承認するだけでなく、少なくとも１体のエージェント（Ｒ１およびＲ２の少なくとも一方）の発話で人Ｈの意思を承認するようにしてもよい。さらに、認定した人Ｈの意思を承認するためには、図１５のステップＳ７７における非言語動作を実行させるようにしてもよい。この場合、ステップＳ７７も実行手段を構成することになる。
【００１３】
第１の発明によれば、認定した人の意思を承認する発話を少なくとも１つのエージェントが実行するので、人にエージェントどうしの対話に参加している感覚（「対話感」）を生じさせるだけでなく、人にあたかもその承認の前提となる発話をしたような感覚を付与することができる。
【００１４】
第２の発明は、第１の発明に従属し、実行手段は、複数のエージェントに人の意思を拡大解釈した対話を実行させる対話実行手段を含む、エージェント対話システムである。
【００１５】
第２の発明によれば、人にあたかもその承認の前提となる拡大解釈を伴う発話をしたような感覚を付与することができる。
【００１６】
第３の発明は、第２の発明に従属し、対話実行手段は、１つのエージェントに人の意思を拡大解釈した発話を実行させ、他の少なくとも１つのエージェントに拡大解釈した発話を承認する発話を実行させる、エージェント対話システムである。
【００１７】
第３の発明によれば、１つのエージェントに人の意思を拡大解釈した発話を実行させ、他の少なくとも１つのエージェントに拡大解釈した発話を承認する発話を実行させるので、あたかもその承認の前提となる拡大解釈を伴う発話をしたような感覚を人に一層強く付与することができる。
【００１８】
第４の発明は、それぞれが発話機能（46）を有する複数のエージェント（R1, R2）が対話場所（12）においてスクリプトに従って対話し、対話場所に人（H）が陪席するエージェント対話システム（10）のコンピュータによって実行されるプログラムであって、前記プログラムは、前記コンピュータを人の意思を認定する意思認定手段(18)、および前記意思認定手段が認定した人の意思を承認する発話および非言語動作の少なくとも一方を少なくとも１つのエージェントに実行させる実行手段(20a、23、S77、S83)として機能させる、エージェント対話システムのプログラムである。
【００１９】
第５の発明は、第４の発明に従属し、実行手段は、複数のエージェントに人の意思を拡大解釈した対話を実行させる対話実行手段を含む、エージェント対話システムのプログラムである。
【００２０】
第５の発明では、第２の発明と同様に、人にあたかもその承認の前提となる拡大解釈を伴う発話をしたような感覚を付与することができる。
【００２１】
第６の発明は、第５の発明に従属し、対話実行手段は、１つのエージェントに人の意思を拡大解釈した発話を実行させ、他の少なくとも１つのエージェントに拡大解釈した発話を承認する発話を実行させる、エージェント対話システムのプログラムである。
【００２２】
第６の発明では、第３の発明と同様に、あたかもその承認の前提となる拡大解釈を伴う発話をしたような感覚を、人に一層強く付与することができる。
【発明の効果】
【００２３】
この発明によれば、エージェントどうしの対話においても、対話中の人の行為を人の実際の意思の如何にはよらず、人の意思表示として承認することによって、人に対話に参加している感覚（「対話感」）を生じさせ、さらにその承認を伴う発話をしたかのような感覚を人に付与する事ができる。
【００２４】
この発明の上述の目的、その他の目的、特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００２５】
【図１】図１はこの発明の一実施例のロボット対話システムの概要を示す概略図である。
【図２】図２は図１実施例におけるセンサマネージャの構成の一例を示すブロック図である。
【図３】図３は図１実施例におけるグループマネージャの構成の一例を示すブロック図である。
【図４】図４は図１実施例におけるロボットの一例を示す概略図である。
【図５】図５は図４のロボットを制御するロボットコントローラの構成の一例を示すブロック図である。
【図６】図６は図１に示すダイアログデータベースからグループマネージャに読み出されるスクリプトの一例を示す概略図である。
【図７】図７は図１に示すグループマネージャの動作の一例を示すフロー図である。
【図８】図８は図１に示すロボットコントローラの動作の一例を示すフロー図である。
【図９】図９は図１実施例における対話シーケンスの一例を示す概略図である。
【図１０】図１０は図１実施例における具体的な対話場面の一例を示す概略図である。
【図１１】図１１は図１実施例における具体的な対話場面の他の例を示す概略図である。
【図１２】図１２は図１実施例における具体的な対話場面の他の例を示す概略図である。
【図１３】図１３は図１実施例における具体的な対話場面の他の例を示す概略図である。
【図１４】図１４は図１実施例における具体的な対話場面の他の例を示す概略図である。
【図１５】図１５は図１に示す人意思処理モジュールの動作の一例を示すフロー図である。
【図１６】図１６は図１実施例において人の意思表示を処理する具体的な対話場面の一例を示す概略図である。
【図１７】図１７は図１実施例において人の意思表示を処理する具体的な対話場面の他の例を示す概略図である。
【図１８】図１８は図１実施例において人の意思表示を処理する具体的な対話場面の他の例を示す概略図である。
【図１９】図１９は図１実施例において人の意思表示を処理する具体的な対話場面の他の例を示す概略図である。
【図２０】図２０は図１実施例において人の意思表示を処理する具体的な対話場面の他の例を示す概略図である。
【図２１】図２１は図１実施例において人の意思表示を処理する具体的な対話場面の他の例を示す概略図である。
【図２２】図２２は図１実施例において人の意思表示を処理する具体的な対話場面の他の例を示す概略図である。
【図２３】図２３は図１実施例において人の意思表示を処理する具体的な対話場面の他の例を示す概略図である。
【図２４】図２４は図１実施例において人の意思表示を処理する具体的な対話場面の他の例を示す概略図である。
【図２５】図２５は図１実施例において人の意思表示を処理する具体的な対話場面の他の例を示す概略図である。
【発明を実施するための形態】
【００２６】
図１を参照して、この実施例のロボット対話システム１０の対話場所１２には、第１ロボットＲ１および第２ロボットＲ２と１人の人Ｈが存在する。ただし、ロボットの数は３以上でもよく、人の数は２以上でもよい。なお、以下において、第１ロボットＲ１および第２ロボットＲ２を特に区別する必要がないとき、単にロボットＲと呼ぶことがある。
【００２７】
人が発話するとき、その発話に応じる形で相手の発話が生成されなければ、対話を続けていくこと自体が困難になりやすいため、音声認識および自然言語処理の能力が完璧でないロボットは、人間の発話に対して適切な発話をし続けることは容易ではなく、対話は破綻しやすい。
【００２８】
一方、人間は、他者どうしの対話を傍らで観察する際、その内容が完全に理解あるいは同意できるものでなくても、部分的に理解あるいは同意しながら、対話を聞き続けることができる。またそれにより、理解あるいは同意できなかった部分についても、後から理解あるいは同意できることがある。しかし、対話に参加している感覚（対話感）がなければ、その対話に集中し続けることは容易ではない。
【００２９】
そこで、この実施例では、ロボットが発話する際に、必ずしも人間に返答させる形にするのではなく、その対話の場に別のロボットを陪席させ、ロボットの発話に対して適切な返答を、この陪席ロボットに発話させる、つまりロボットどうしに対話を行わせることで破綻を回避し、他方、そのロボットどうしの対話を人に聞かせ、時には人間の行為を意思表示、たとえば「同意」、「不同意」（「肯定」、「否定」）などを受けとみなし、その人の意思をロボットどうしの対話の継続あるいは複数のロボットによる非言語的な注意の表示等によって、承認して確定するなどして、人間に対話感を感じさせる。
【００３０】
この実施例のようなロボット対話システムは、たとえば、独居生活者に対するコミュニケーションサービスロボット、情報提供サービスロボット、広告ロボットなどとして利用可能である。
【００３１】
ロボット対話システム１０の対話場所１２の状況をセンシングするために、この実施例では、聴覚センサとしてのマイク１４および視覚センサとしてのカメラ１６が設けられる。マイク１４は、ロボットＲや人Ｈの発話による音声を含む環境音を取得するためのもので、必要なら２台以上設置されてもよい。カメラ１６は、同じく対話場所１２の状況、特に人Ｈの表情や動作を撮影するカメラであり、動画または静止画を撮影する。カメラ１６も必要なら２台以上設置してもよい。
【００３２】
さらに、上述のマイク１４やカメラ１６の他に、センサとして、図示はしないが、装着型の姿勢センサ、加速度センサ、心拍の状態、呼吸の状態、体動（体の動き）の状態などの生体信号を検知する生体センサ、モーションキャプチャシステムなどを設けてもよい。
【００３３】
さらに、この実施例の対話システム１０には、人Ｈの意思の表明のための手段として、意思表示デバイス１７を設ける。この意思表示デバイス１７は、一例として、肯定（Affirmation）または同意（Agree）を入力するための肯定ボタン１７ａと、否定（Negation）または不同意（Disagree）を入力するための否定ボタン１７ｎを有する。ただし、肯定ボタン１７ａおよび否定ボタン１７ｎは、たとえば押しボタンスイッチのようなハードウエアスイッチで構成されてもよいし、あるいはタッチスクリーン上のソフトウエアスイッチ（仮想ボタン）で構成されてもよい。また、肯定ボタン１７ａおよび否定ボタン１７ｎがそれぞれ個別のスイッチないしボタンとして形成されてもよい。
【００３４】
マイク１４が取得した音声信号、カメラ１６が撮影した画像信号および意思表示デバイス１７が検出した入力信号（肯定、否定）さらには上述した生体信号を検出する生体センサ、モーションキャプチャシステムによって検知された人の行為や状態変化などのセンサ信号は、センサマネージャ１８に入力される。センサマネージャ１８は、これらのセンサ信号を取得して、対話場所１２の状況を判定して、判定結果をセンシングデータとして、後述のグループマネージャ２０および人意思処理モジュール２３に出力する。
【００３５】
図２を参照して、センサマネージャ１８は、ＣＰＵ（中央演算処理装置）１８aを含み、ＣＰＵ１８ａには、内部バス１８ｂを介して通信装置１８ｃが接続される。通信装置１８ｃは、たとえばネットワークインタフェース（ＮＩＣ）などを含み、ＣＰＵ１８ａはこの通信装置１８ｃを介してグループマネージャ２０などと通信でき、それらの間でデータの授受を行うことができる。
【００３６】
ＣＰＵ１８ａにはさらに、内部バス１８ｂを介して、メモリ１８ｄが接続される。メモリ１８ｄはＲＯＭやＲＡＭを含む。たとえばＤＳＰ（Digital Signal Processor）で構成されるセンサＩ／Ｆ（インタフェース）１８ｅを通して、マイク１４（図１）からの音声信号やカメラ１６（図１）からの画像信号を含むセンサ信号が入力される。そして、メモリ１８ｄは、センサ信号を一時的に記憶する。
【００３７】
センサマネージャ１８は一種の判定器であり、ＣＰＵ１８ａは、メモリ１８ｄに記憶したセンサデータに基づいて、対話場所１２の状態や人Ｈの意思を判定する。たとえば、マイク１４が取得した音声信号、カメラ１６が撮影した画像信号および意思表示デバイス１７が検出した入力信号（肯定、否定）さらには上述した生体信号を検出する生体センサ、モーションキャプチャシステムによって検知された人の行為や状態変化などのセンサ信号を人Ｈの実際の意思の如何にはよらず、人Ｈが表明した意思が入力されたものとして認定し、処理してすることができる。そして、センサマネージャ１８は、判定した状態を示すデータをグループマネージャ２０および人意思処理モジュール２３に送る。
【００３８】
また、センサマネージャ１８に必要なプログラム（ＯＳやセンサ信号取得プログラムなど）は、メモリ１８ｄに記憶される。センサマネージャ１８はメモリ１８ｄに記憶されたプログラムに従って動作する。
【００３９】
なお、ＣＰＵ１８ａにはさらに、（図示せず）キーボードやディスプレイが付属されてもよい。
【００４０】
図３に示すグループマネージャ２０は、たとえば後述の図７のフロー図に従って、２台のロボットＲのそれぞれの発話動作（言語動作：Verbal operation）および振舞い（非言語動作：Nonverbal operation）を制御する。
【００４１】
グループマネージャ２０は、ＣＰＵ２０aを含み、ＣＰＵ２０ａには、内部バス２０ｂを介して通信装置２０ｃが接続される。通信装置２０ｃは、たとえばネットワークインタフェース（ＮＩＣ）などを含み、ＣＰＵ２０ａはこの通信装置２０ｃを介してセンサマネージャ１８やロボットＲなどと通信でき、それらの間でデータの授受を行うことができる。
【００４２】
ＣＰＵ２０ａにはさらに、内部バス２０ｂを介して、メモリ２０ｄおよび入力装置２０ｅが接続される。メモリ２０ｄはＲＯＭやＲＡＭを含む。メモリＩ／Ｆ２０ｆを通してダイアログデータベース２２から、スクリプト（ダイアログ）を読み込み、それをメモリ２０ｄに一時的に記憶する。ただし、「ダイアログ」は、対話中に行うべき発話や非言語動作の指令の系列を意味し、ダイアログデータベース２２は、ダイアログの集合（たとえば、バナナの何が好きという対話やロボット介護の何が大切かという対話など、各トピックの対話のための指令の系列が含まれる）である。そして、「スクリプト」は、その指令の系列を表す文字列のことであり、スクリプトデータは、その指令を表す文字列である。したがって、スクリプトデータの系列がスクリプトになる。このようなスクリプトは、グループマネージャ２０によって、ダイアログキュー２３ｃからロボットＲ１およびＲ２に送信される。ただし、スクリプトデータは、言語データだけでなく、非言語データも含む。言語データは、ロボットＲ１およびＲ２の発話を指示するスクリプトデータであり、非言語データは、たとえばロボットＲ１およびＲ２の動作、人Ｈを見る、頷く、首を横に振る、首をかしげるなどの、非言語動作を指示するスクリプトデータである。このようなスクリプトデータには、さらに、人Ｈの意思（明示的または非明示的）を確認するフェーズ（意思確認フェーズ）であることを示す記述が必要に応じて追加されている。
【００４３】
また、グループマネージャ２０に必要なプログラム（ＯＳやセンサ信号取得プログラムなど）は、メモリ２０ｄに記憶される。グループマネージャ２０はメモリ２０ｄに記憶されたプログラムに従って動作する。
【００４４】
なお、このグループマネージャ２０のＣＰＵ２０ａは、上述のように、各ロボットの動作つまり振舞いを制御するが、その振舞いの履歴は、上述のメモリ２０ｄに蓄積され、必要に応じて、センサマネージャ１８に提供する。
【００４５】
さらに、図１に示すロボット対話システム１０では、人意思処理モジュール２３が設けられる。この人意思処理モジュール２３は、独立したコンピュータであってもよいが、この実施例では、上述のグループマネージャ２０の１つのプログラムとして構成されている。したがって、この人意思処理モジュール２３は、ＣＰＵ２０ａによって制御される。
【００４６】
人意思処理モジュール２３は、後に図１５を参照して詳しく説明するように、センサマネージャ１８が、必ずしも人Ｈの実際の意思の如何にはよらず、認定した人Ｈの意思、たとえば肯定または否定に応じて、その認定された人Ｈの意思に対処するためにロボットＲ１およびＲ２が発話するためのスクリプトデータ（ダイアログ）をダイアログデータベース２２から読み出し、それぞれがメモリ２０ｄの領域であるプール２３ａに記憶させる（ロードする）。
【００４７】
文脈外応答ダイアログプール２３ｂは、文脈すなわち次ダイアログ候補プール２３ａにロードした将来の一群のダイアログやダイアログキュー２３ｃにロードされ、進行中であるダイアログでは予定していなかった例外的な、すなわち文脈外の人Ｈの意思表示があったときに対処するために発話しまたは非言語動作を実行すべき一群のスクリプトを記憶しておくための記憶領域である。文脈外の意思表示とは、たとえば、前述の意思表示デバイス１７の肯定ボタン１７ａおよび／または否定ボタン１７ｎを連打する、ロボットが人の意思表示を待つ発話をしたにも拘わらず無視していつまでも意思表示をしない、などが考えられる。
【００４８】
ダイアログキュー２３ｃもたとえばメモリ２０ｄの中の一領域であるが、このダイアログキュー２３ｃには、次ダイアログ候補プール２３ａにロードされているスクリプトデータや、文脈外応答ダイアログプール２３ｂにロードされているスクリプトデータを、次にロボットＲ１および／またはＲ２が即座に実行できるように，待ち行列の形でロードすることができる。
【００４９】
スクリプトには、たとえばヘッダとして、それに含まれるスクリプトデータの実行時間（tnext）が書き込まれていて、ダイアログキュー２３ｃでは、その実行時間（tnext）によって常にスクリプトデータがソーティングされ、グループマネージャ２０は、実行時間が同じスクリプトデータが同時に実行されるように、各ロボットコントローラ２４にスクリプトデータを送る。したがって、たとえば、ロボットＲ１およびＲ２が同時に同じ動作、たとえば人Ｈを見るなどの動作ができるし、同じロボットＲ１またはＲ２が、たとえば、発話と同時に他方のロボットまたは人Ｈを見ることもできる。
【００５０】
図４を参照して、この図４は実施例のロボットＲの外観を示し、ロボットＲは台３０上に、台３０に対して、前後左右に回転できるように、設けられる。つまり、胴体３２には２自由度が設定されている。
【００５１】
胴体３２の人の肩に相当する左右位置からは、それぞれに、肩関節（図示せず）によって、右腕３４Ｒおよび左腕３４Ｌが、前後左右に回転可能に設けられる。つまり、右腕３４Ｒおよび左腕３４Ｌには、それぞれ、２自由度が設定されている。
【００５２】
胴体３２の上端中央部には首３６が設けられ、さらにその上には頭部３８が設けられる。首３６すなわち頭部３８は、胴体３２に対して、前後左右に回転できるように、取り付けられている。つまり、首３６すなわち頭部３８には、ロール角（左右の傾げ）、ピッチ角（前後の傾げ）、ヨー角（左右の回転）の３自由度が設定されている。
【００５３】
頭部３８の前面すなわち人間の顔に相当する面には、右目４０Ｒおよび左目４０Ｌが設けられ、右目４０Ｒおよび左目４０Ｌには眼球４２Ｒおよび４２Ｌが設けられる。右目４０Ｒおよび左目４０Ｌは、まぶたを閉じたり開いたりでき、眼球４２Ｒおよび４２Ｌはそれぞれ上下左右に回転可能である。つまり、右目４０Ｒおよび左目４０Ｌすなわちまぶたには１自由度が、眼球４２Ｒおよび４２Ｌには２自由度が設定されている。
【００５４】
顔にはさらに、口４４が設けられていて、口４４は、閉じたり開いたりできる。つまり、口４４には１自由度が設定されている。
【００５５】
胴体３２の、人間の胸の位置には、対話システム１０において人Ｈに聞かせるための発話を行うスピーカ４６および環境特に人Ｈの発話音声を聞き取るマイク４８が設けられる。
【００５６】
なお、頭部３８の顔の額に相当する部分には動画または静止画を撮影できるカメラ５０が内蔵される。このカメラ５０は、対面する人Ｈを撮影でき、このカメラ５０からのカメラ信号（映像信号）は、環境カメラ１６（図１）と同様に、センサマネージャ１８のセンサＩ／Ｆを介してＣＰＵ１８ａに、入力されてもよい。
【００５７】
図５はロボットＲに内蔵されてロボットＲの動作（発話やジェスチャなど）を制御するロボットコントローラ２４を示すブロック図である。この図５を参照して、ロボットコントローラ２４は、ＣＰＵ２４ａを含み、ＣＰＵ２４ａには、内部バス２４ｂを介して通信装置２４ｃが接続される。通信装置２４ｃは、たとえばネットワークインタフェース（ＮＩＣ）などを含み、ＣＰＵ２４ａはこの通信装置２４ｃを介してセンサマネージャ１８、グループマネージャ２０、さらには外部のコンピュータや他のロボット（ともに図示せず）などと通信でき、それらの間でデータの授受を行うことができる。
【００５８】
ＣＰＵ２４ａにはさらに、内部バス２４ｂを介して、メモリ２４ｄが接続される。メモリ２４ｄはＲＯＭやＲＡＭを含む。グループマネージャ２０から送られる制御データやスクリプトデータがメモリ２４ｄに一時的に記憶される。
【００５９】
また、ロボット制御に必要なプログラム（ＯＳやセンサ信号取得プログラムなど）は、メモリ２４ｄに記憶される。ロボットコントローラ２４はメモリ２４ｄに記憶されたプログラムに従ってロボットＲの動作を制御する。
【００６０】
つまり、ロボットコントローラ２４のＣＰＵ２４ａにはさらに、たとえばＤＳＰで構成されたアクチュエータ制御ボード２４ｅが接続され、このアクチュエータ制御ボード２４ｅは、以下に説明するように、ロボットＲの上述の各部に設けられたアクチュエータの動作を制御する。
【００６１】
胴体３２の２自由度の動き、すなわち前後左右の回転は、アクチュエータ制御ボード２４ｅを通してＣＰＵ２４ａが胴体アクチュエータ５２を制御するとこによって制御される。
【００６２】
右腕３４Ｒおよび左腕３４Ｌの２自由度の動き、すなわち前後左右の回転は、アクチュエータ制御ボード２４ｅを通してＣＰＵ２４ａが腕アクチュエータ５４を制御することによって制御される。
【００６３】
首３６すなわち頭部３８の３自由度の動き、すなわち前後左右の回転は、アクチュエータ制御ボード２４ｅを通してＣＰＵ２４ａが頭部アクチュエータ５６によって制御される。
【００６４】
右目４０Ｒおよび左目４０Ｌすなわちまぶたの開閉動作は、アクチュエータ制御ボード２４ｅを通してＣＰＵ２４ａがまぶたアクチュエータ５８を制御することによって制御される。眼球４２Ｒおよび眼球４２Ｌの２自由度の動きすなわち前後左右の回転は、アクチュエータ制御ボード２４ｅを通してＣＰＵ２４ａが眼球アクチュエータ６０を制御することによって制御される。口４４の開閉動作は、アクチュエータ制御ボード２４ｅを通してＣＰＵ２４ａが口アクチュエータ６２を制御することによって制御される。
【００６５】
なお、図４に示すロボットＲのスピーカ４６がロボットコントローラ２４のＣＰＵ２４ａに接続される。ＣＰＵ２４ａは、グループマネージャ２０から与えられ、必要に応じてメモリ２４ｄに記憶されたスクリプトデータに従って、スピーカ４６から発声（発話）させる。
【００６６】
このようなロボットコントローラ２４によって、ロボットＲの頭や腕は、対話システム１０において必要なとき、たとえばスクリプトで非言語動作が要求されているとき、必要な動きをするが、以下の説明では、各アクチュエータなどの具体的な制御は、上述の説明から容易に推測できるので、必ずしも説明しない。
【００６７】
図１に示すように、それぞれのロボットＲ１およびＲ２には、ロボットコントローラ２４と同様に内蔵したロボットセンサ２６が設けられる。ロボットセンサ２６は、ロボットＲ１およびＲ２のそれぞれの可動コンポーネントの状態を検知するための姿勢センサや加速度センサなどを含み、それらのセンサからのセンサ信号は、センサマネージャ１８に入力される。したがって、センサマネージャ１８は、ロボットセンサ２６からのセンサ信号に基づいて、ロボットＲ１およびＲ２の状態をセンシングすることができる。
【００６８】
なお、図４に示すロボットＲのマイク４８やカメラ５０がロボットセンサ２６を介してセンサマネージャ１８に入力される。センサマネージャ１８は、マイク４８から取り込んだ音声データをメモリ１８ｄ（図２）に記憶し、必要に応じて、音声認識処理を実行する。センサマネージャ１８はまた、カメラ５０からのカメラ信号を処理して、対話場所１２の状況をセンシングする。
【００６９】
なお、センサマネージャ１８は、図１の実施例では１つだけが図示されているが、２つ以上の任意数のセンサマネージャが設けられてもよく、その場合には、各センサマネージャはセンシング項目を分担することができる。
【００７０】
同様に、必要なら、２以上のグループマネージャ２０を用いるようにしてもよいし、逆にセンサマネージャ１８およびグループマネージャ２０を１台のコンピュータで実現するようにしてもよい。
【００７１】
また、図１実施例の対話システム１０に用いられるロボットＲは図４を参照して上で説明したロボットに限定されるものではなく、少なくともスクリプトに従って発話できる機能があればよい。
【００７２】
図６は、ロボットＲがそれに従って対話するスクリプトの一例を示す概略図である。このスクリプトでは、まず、ロボットＲどうしが対話する部分（時間帯）と、ロボットＲが人Ｈに対して問いかけ（質問や同意の要求）をする部分（時間帯）を明確に区別する。そのためのフラグが、実施例では、「質問フラグFah（FLAG_ASK_HUMAN）」である。
【００７３】
質問フラグFahがリセットされているとき、つまり、「Fah=1」でないときは、ロボットＲどうしが、スクリプトデータによって予め決められた発話文をスピーカ４６（図４、図５）から出力して、参加者である、人Ｈにその対話内容を聞かせる。質問フラグFahがセットされているとき、つまり、「Fah=1」のときは、ロボットＲが、スクリプトデータによって予め決められた発話文をスピーカ４６（図４、図５）から出力して、参加者である、人Ｈに対して発話する。
【００７４】
図６の例では、上段のパート(A) と下段のパート(C) がそのロボットどうしの対話を行うためのスクリプトデータであり、中段のパート(B) がロボットＲから人Ｈに問いかけを行うためのスクリプトデータである。
【００７５】
パート(A)のスクリプトの第１行(a1)、第２行(a2)、第３行(a3)では、「tnext=XX」が定義されていて、ここでは「XX1」、「XX2」、「XX3」は、それぞれのスクリプトデータを実行すべき時間または時刻を規定する。「RR」は、ロボットからロボットへ発話することを記述していて、それに後続する「SPEAKER=R1(R2)」「LISTNERR=R2(R1)」は、そのときの発話者が第１ロボットＲ1（または第２ロボットＲ２）であり、聴取者が第２ロボットＲ２（または第１ロボットＲ１）であると定義している。
【００７６】
スクリプトデータ中の「TEXT」に後続する記述が、そのときロボットが発話すべき発話文である。そして、「NONVERBAL」に後続する記述は、第１ロボットＲ１および／または第２ロボットＲ２が行うべき非言語動作たとえば相手のロボットを見るとか、人Ｈを見るとかなどを規定する。
【００７７】
パート(B)では、質問フラグFahがセットされている、つまり、「Fah=1」なので、２台のロボットＲ１およびＲ２のいずれか一方、この例では第１ロボットＲ１から、人Ｈに対して、問いかけの発話文が出力される。したがって、第１行(b1)では、時間を規定する記述「tnext=XX4」に続いて、第１ロボットＲ１が人に対して発話することを示す「RH: SPEAKER=R1, LISTNER=H」が記述される。「TEXT」、「NONVERBAL」については上述のとおりである。
【００７８】
パート(B)の第１行(b1)の下に、条件１、条件２、条件３のスクリプトデータがあるが、これらは、第１行(b1)でしたロボットＲからの問いかけに対して人Ｈが発話したとき、次にロボットが発話する内容（返答）が条件に応じて変化することを規定している。
【００７９】
条件１は、人Ｈからの発話についてロボットどうしがたとえば「面白いね」などと会話するスクリプトデータであり、そのために、時間を規定する記述「tnext=XX5」に続いて、第２ロボットＲ２が第１ロボットＲ１に対して発話することを示す「RR: SPEAKER=R2, LISTNER=R1」が記述される。
【００８０】
条件２および条件３は、いずれも、人Ｈの発話に対してロボットが反応するという設定で、いずれも、時間を規定する記述「T=XX5」に続いて、第２ロボットＲ２または第１ロボットＲ１が人に対して発話することを示す「RH: SPEAKER=R2, LISTNER=H」または「RH: SPEAKER=R1, LISTNER=H」が記述されている。
【００８１】
これら条件２または条件３の発話文は、センサマネージャ１８がマイク１４からの音声を音声認識し、その音声認識の結果に応じて、グループマネージャ２０によって決められるが、発話文の内容については、スクリプトデータとして予め定義されている。たとえば、第１行(b1)での「あなたは何が好きですか？」というロボットからの問いかけ文に対して、人Ｈが「僕は○○が好きです。」と発話したとき、ロボットからは「○○はいいですね」とか「僕は○○より△△がすきだよ。」とか返答する。いずれも、人Ｈの発話に含まれていた「○○」をセンサマネージャ１８が認識した結果の発話である。そのため、条件２および条件３のいずれでも、「○○」を除いた発話文を予め規定しておく。
【００８２】
パート(C)は、パート(A)と同様に、質問フラグFahがリセットされている、つまり、「Fah=1」ではないので、ロボットどうしが会話するパートであるが、基本的にパート(B)での人Ｈからの発話とは無関係に進行する。スクリプトデータの内容は、パート(A)において説明した通りであるので、ここでは重複する説明はしない。
【００８３】
なお、図６の実施例における発話タイミングを決める時間ないし時刻tnextは、たとえば人Ｈからの発話割り込み（インタラプト）があった場合など、センサマネージャ１８の指示に基づいてグループマネージャ２０が更新する（ずらす）必要があるかもしれない。たとえば、センサマネージャ１８が発話タイミングの更新の要否を示すフラグ（図示せず）を管理していて、グループマネージャ２０はそのフラグがセットされたとき（「１」のとき）、Ｔを書き換えるようにすればよい。
【００８４】
図１のロボット対話システム１０では、対話場所１２の２台のロボットＲ１およびＲ２は、図６において例示したようなスクリプトに従って対話を進行するが、これらのロボットＲ１およびＲ２の発話を統括的に制御するのが、グループマネージャ２０である。
【００８５】
図７に示すフロー図は、そのグループマネージャ２０のＣＰＵ２０ａ（図３）の動作を示す。この図７の動作は、たとえばフレームレート程度の速度で繰り返し実行される。
【００８６】
最初のステップＳ１でＣＰＵ２０ａは、ダイアログデータベース２２（図１）からたとえば図６に例示したようなスクリプトデータを読み込むなど、初期化を実行する。
【００８７】
続くステップＳ２においてＣＰＵ２０ａは、センサマネージャ１８（図１、図３）から送られるセンサデータを更新する。
【００８８】
センサマネージャ１８では、図１に示すマイク１４やカメラ１６などのセンサからのセンサ信号に基づいて、非言語パラメータ「NONVERBAL_PARAMETERS」、たとえば人の「目が落ち着かない」、「あくびをした」などの状態を、センシングする。さらに、前述のように、センサマネージャ１８は、人の意思を示す信号も意思表示デバイス１７から受け取って、人がそのどのような意思を表明したか認定できる。
【００８９】
さらに、センサマネージャ１８では、同じくセンサ信号に基づいて、「人の声があるか」、「（誰かが）話し中か」、「言語によってインタラプトされているか」あるいは「ロボットが非言語的に応答すべき振舞を人が生成しているか」などをセンシングする。
【００９０】
また、ロボットの振舞い、の、詳細なパラメータを決定するために必要な情報（たとえば、人Ｈを見る場合だと、人の位置、人に対して頷く場合だと人の発話の抑揚や終了点）をセンシングする必要がある。
【００９１】
さらに、個々のロボットがどのように振舞ったか、たとえば「話す、「待つ」、「聞く」、「陪席する」などのいずれを実行したかをセンシングする必要があるが、これらのロボットの振舞いは、ロボットの振舞いの履歴を管理するソフトウェアからの入力（たとえば、グループマネージャ２０から）によってセンシングすることができる。
【００９２】
ステップＳ２ではこのようなセンサマネージャ１８からのセンシングの結果データ（センシングデータ）を更新する。
【００９３】
次のステップＳ３で、ＣＰＵ２０ａは、ダイアログキュー２３ｃが更新されたかどうか判断する。ステップＳ３で“ＮＯ”の場合、ステップＳ５に進む。“ＹＥＳ”の場合、ステップＳ４で現在時間(t)を「０」にセットするとともに、実行時間(tnext)を「−１」にセットする。
【００９４】
ステップＳ３で“ＮＯ”を判断したとき、次のステップＳ５では、ステップＳ２で更新したセンシングデータに基づいて、グループマネージャ２０のＣＰＵ２０ａは、人Ｈの発話による割り込みがあったかどうか、判断する。
【００９５】
このステップＳ５で“ＹＥＳ”を判断したとき、ＣＰＵ２０ａは、次のステップＳ７において、発話回復フラグIS_RECOVER= Frcがセットされているかどうか、つまりFrc=１かどうか判断する。ここで“ＹＥＳ”ということは、ステップＳ５で検出した人の発話による発話衝突から復帰したことを意味し、ロボットＲが何か発話を挿入する必要があるということである。したがって、ステップＳ９において、ステップＳ１で読み出した人Ｈの発話による割り込みによるダイアログ中断状態から復帰するための復帰フェーズ用のスクリプトデータをロードし、ステップＳ１１で、ロボットＲすなわちロボットコントローラ２４にブロードキャストする。したがって、その後ロボットＲがその復帰フェーズ用のスクリプトデータに従って発話することになる。
【００９６】
ただし、このステップＳ９（後述のステップＳ１７およびＳ１９でも同様）でロードするスクリプトデータは、図６で説明したように、発話者はだれか「ID_SPEAKER」、聴取者はだれか「ID_LISTNER」、陪席者（参加者）はだれか「ID_BYSTANDER」、発話時間「ONSET_TIME_SPEECH」、非言語動作「NONVERBAL_PARAMETERS」などの情報を含む。
【００９７】
たとえば、人の発話割り込みに対して、第１ロボットＲ１から人に対して「そっか」を発話したり、第２ロボットＲ２から第１のロボットに「それで？」と発話したり、第１ロボットＲ１から第２ロボットＲ２に「そうそう、（スクリプトで決まっている次の発話）」と発話したりする。つまり、人の発話割り込みに対して、軽く返事をする程度の発話を挿入する。人の発話は無視されているわけではないが、その発話に対してロボットはその発話内容に対して正確に応答する返事をするのではなく、スクリプトで決められた返事を返すだけである。
【００９８】
そして、ステップＳ１１の後、ステップＳ２に戻る。
【００９９】
ステップＳ１３で“ＹＥＳ”なら、つまり、スクリプトで予め決めた次の発話時間になったと判断したとき、ＣＰＵ２０ａは、ステップＳ１５で、前述の質問フラグFahがセットされているかどうか、つまり、人Ｈに対して問いかけ文を発話するかどうか判断する。
【０１００】
ステップＳ１５で“ＹＥＳ”なら、ステップＳ１７において、ダイアログキュー２３ｃにストアされている、問いかけフェーズ用スクリプトデータを先頭からロードし、ステップＳ１１でそれをブロードキャストする。
つまり、人の返答は無視されているわけではない。
【０１０１】
そして、ステップＳ１５において“ＮＯ”が判断されると、つまり、人に対する問いかけを発話するときではないと判断したとき、ＣＰＵ２０ａは、次のステップＳ１９で問いかけ用ではないスクリプトデータ（非問いかけ用スクリプトデータ）をロードする。
【０１０２】
ステップＳ２１で、ＣＰＵ２０ａは、スクリプトがまだ残っているかどうか判断する。つまり、対話フラグIS_CONVERSATIONがリセットされているかどうか判断する。“ＹＥＳ”のときは、ステップＳ１１に進むが、“ＮＯ”の場合には、ステップＳ２３でその旨ブロードキャストし、ステップＳ２５で終了処理をして、このルーチンが終わる。
【０１０３】
ロボットＲ１およびＲ２は、いずれも、図８のフロー図に従って、ロボットコントローラ２４によって制御される。この図８のルーチンも、図７のルーチンと同様に、たとえばフレームレートで繰り返し実行される。
【０１０４】
ステップＳ３１では、ロボットコントローラ２４のＣＰＵ２４ａは、初期化を実行し、次のステップＳ３３において、センサマネージャ１８から受け取ってグループマネージャ２０から図７に示すようにブロードキャストされたフラグまたはデータ「IS_CONVERSATION（まだ対話する）」、「IS_ONSPEECH（誰が発話している）」、「CAN_BE_RECOVERED（発話衝突から回したか）」、「IS_INTERRUPTED_VERBAL（言語によるインタラプトがあるか）」、「IS_INTERRUPTED_NONVERBAL（非言語によるインタラプトがあるか）」、「ID_SPEAKER（誰が発話する）」、「ID_LISTNER（誰が聞く）」、「ID_BYSTANDER（誰が陪席者か）」、「SPEECH_TEXT（発話文）」、「ONSET_TIME_SPEECH（発話時間）」、「NONVERBAL_PARAMETERS（非言語パラメータ：いつ誰に視線を向けるか、頷くか、などの非言語動作を規定するパラメータ）」を受ける。
【０１０５】
そして、ステップＳ３４において、ＣＰＵ２４ａは、データ「IS_CONVERSATION」を参照して、対話がまだ継続するのかどうか判断する。“ＹＥＳ”なら、次のステップＳ３５において、ロボットコントローラ２４のＣＰＵ２４ａは、ステップＳ３３で受信したグループマネージャ２０からブロードキャストされたデータに非言語動作のスクリプトデータがあるかどうか判断する。そして、ステップＳ３５で“ＹＥＳ”と判断したら、ＣＰＵ２４ａは、次のステップＳ３６において、その非言語動作の指令を実行するように、該当のロボットＲ１および／またはＲ２のアクチュエータ制御ボード２４ｅに動作命令を与える。したがって、ロボットＲ１および／またはＲ２がブロードキャストされた非言語動作を実行する。
【０１０６】
そして、先のステップＳ３５で“ＮＯ”なら、次のステップＳ３７で、データ「IS_ONSPEECH」を参照して、誰かが発話しているかどうか判断する。“ＹＥＳ”なら、ステップＳ３９で、そのときの話し手は、自分（が制御するロボット）かどうか判断する。つまり、データ「ID_SPEAKER」を参照して、自分が発話中かどうか判断する。
【０１０７】
自分（が制御するロボット）が発話中であれば、ステップＳ３９で“ＹＥＳ”となり、ステップＳ４１に進む。ステップＳ４１では、ＣＰＵ２４ａは、言語によるインタラプト（発話遮断）があるかどうか、データ「IS_INTERRUPTED_VERBAL」を参照して判断する。ステップＳ４１で“ＹＥＳ”なら、言語によるインタラプトがあるということなので、次のステップＳ４３で、ＣＰＵ２４ａは、データ「CAN_BE_RECOVERED」を参照して、発話を再開してもよいかどうか判断する。
【０１０８】
ステップＳ４３で“ＹＥＳ”なら、ステップＳ４６でロボットに発話を再開させるが、“ＮＯ”なら、ステップＳ４６で、ロボットに発話させないで、待たせる。
【０１０９】
ステップＳ４１で“ＮＯ”が判断されると、すなわち、言語によるインタラプトがないとき、ＣＰＵ２４ａは、ステップＳ４７において、非言語動作でインタラプトされたかどうか判断する。たとえば、人が不規則な非言語動作、たとえば人Ｈが大きく動いたりしていないかどうか判断する。
【０１１０】
「人Ｈが不規則な非言語動作をしている、あるいはロボットの話に対して頷きなどの傾聴動作を示しているなど、ロボットが非言語的応答を生成しながら発話すべきと判断したときは、ステップＳ４７で“ＹＥＳ”となるので、続くステップＳ４８で、ＣＰＵ２４ａは、それが制御しているロボットＲ１またはＲ２に対して、データ「NONVERBAL_PARAMETERS」に基づく非言語動作によって応答させる。ステップＳ４７で“ＮＯ”のとき、ＣＰＵ２４ａによる処理は、ステップＳ３３に戻る。
【０１１１】
ステップＳ３９で“ＮＯ”のとき、つまり、自分（が制御するロボット）が発話指示されていないときには、データ「ID_LISTNER」を参照して、自分が聞き手として指定されているかどうか判断する。
【０１１２】
ステップＳ４９で“ＹＥＳ”なら、ステップＳ５１で、ＣＰＵ２４ａは、それが制御しているロボットＲが聞き手になるように制御する。
【０１１３】
ステップＳ４９で“ＮＯ”なら、データ「ID_BYSTANDER」がロボットＲ１またはＲ２が陪席者となることを指示しているので、ロボットコントローラ２４すなわちＣＰＵ２４ａは、ロボットＲ１またはＲ２に対して、陪席者としての動作を行わせる。
【０１１４】
ステップＳ３７で“ＮＯ”を判断したとき、つまり、誰も発話中ではないとき、ステップＳ５５で、ＣＰＵ２４ａは、データ「ID_SPEAKER」を参照して自分が話し手か判断する。“ＹＥＳ”なら、自分が制御しているロボットＲ１またはＲ２が、ステップＳ５７において、発話文TEXTの内容に従って発話するように、制御する。
【０１１５】
ステップＳ５５で“ＮＯ”なら、当該ロボットは発話者でもなく、聴取者でもないのであるから、ＣＰＵ２４ａは、自分のロボットがステップＳ５９で陪席者として動作するように、制御する。
【０１１６】
ステップＳ３４で“ＮＯ”なら、ステップＳ６１で終了処理を実行した後このルーチンを終了する。
【０１１７】
このように、ロボットＲはいずれも、グループマネージャ１８からブロードキャストされたスクリプトにおいて決められているタイミングで、スクリプトにおいて決められた内容を発話するだけで、自発的な発話はしない。
【０１１８】
他方、人Ｈからの発話をロボットＲは解釈しない。人Ｈから発話があっても、ロボットＲは相槌を打つだけで、その人からの発話には応答しない。その相槌も、スクリプトに決めた通りに発話する。
【０１１９】
このような、ロボットコントローラ２４によるスクリプト通りのロボットＲ１およびＲ２の対話システムを用いれば、図９に示すように対話シーケンスが成立する。
【０１２０】
たとえば、ロボットが人に向かって話していることとロボットがロボットに向かって話していることがはっきりと区別でき、また同時に、対話の中で陪席者となる人間やロボットを無視してしまっているように見えないように、対話の履歴と参加者の意図推定に基づき、ロボットどうしの対話と人に対する問いかけのための、発話と視線配布や相槌などのしぐさを生成する。つまり、ロボットＲは人Ｈの発話を聞き流すことができるので、人Ｈに対して質問して人Ｈに発話させることができる。これにより、人がロボットどうしの対話に、自分も参加しているような感覚を覚えさせることができる。また結果として、ロボットどうしの対話に含まれる内容を人に対して印象付けることができる。
【０１２１】
具体的には、図１０‐図１４で示す場面をスクリプトによって意図的に出現させることができる。ただし、図１０‐図１４の具体例は、人Ｈの意思表示とは直接には関係しない。
【０１２２】
図１０の例では、第１ロボットＲ１および第２ロボットＲ２が、発話を繰り返しながら、話題（トピック（Topic）またはテーマ）Ａについて、対話を進行しているとき、話題Ａから話題Ｂに切り換えるとき、スクリプト上で、ロボットＲ１および／またはＲ２が人Ｈに対して質問するように制御する。このときの質問の内容は、たとえば、既に終わった話題Ａに関するものでもよく、これから始まる話題Ｂに関するものでもよい。その両方に関するものでもよい。そして、人Ｈから回答があると、ロボットＲ１および／またはＲ２がスクリプトに従ってたとえば「そっか」というような相槌を発話する。
【０１２３】
つまり、ロボットどうしの対話中には人Ｈに対して問いかけはせず、話題切り換えのタイミングで人Ｈに向けてロボットが発話する。そうすると、人Ｈは、ロボットどうしの対話に参加しているような意識を持って、その状態を持続することができる。
【０１２４】
ただし、人Ｈからの回答に対して、ロボットが割り込みするようにしてもよい。たとえば、ロボットＲ２「○○は××だから、△△です。」、ロボットＲ１「え、でも○○って□□じゃないですか？」、ロボットＲ２「そっか、でも（話題Ｂに入る）」のような割り込みも可能である。
【０１２５】
図１１の例では、ロボットＲ１およびＲ２が質問や回答を繰り返しながら何らかの話題について対話を進行しているとき、ロボットがロボットにしたのと同じ質問を人Ｈに対して発話する。たとえば、ロボットＲ１および／またはＲ２によって、人Ｈに「あなたはどう（おもいますか）？」のような質問をさせる。そうすると、人Ｈから回答がある。ロボットＲ１およびＲ２は、それに対して、図１０の場合と同様の相槌を発話する。
【０１２６】
図１２の例では、図１１の場合と逆に、ロボットどうしの対話をしているときに、ロボットＲ１またはＲ２が人Ｈにしたと同じ質問を他方のロボットＲ２またはＲ１にする。この場合には、人Ｈはロボットどうしの対話の中に自分に対する質問と同じ質問が含まれることで、「対話感」を持つことができるであろう。
【０１２７】
図１３の例では、ロボットＲ１およびＲ２が質問や回答を繰り返しながら何らかの話題について対話を進行しているとき、たとえば第２ロボットＲ２が第１ロボットＲ１に何かについて説明し、第１ロボットＲ１から感想を述べる発話を行う。その感想に対して人Ｈが同意するように、ロボットＲ１またはＲ２から人Ｈに対して、たとえば「ね」と、同意を求める。この場合も、ある程度納得できる話であれば、同意の発話をしたり、心の中での同意を促したりすることができるので、人Ｈにはロボットどうしの対話に参加しているという意識を持続することができる。
【０１２８】
図１４の例は、たとえば第２ロボットＲ２から第１ロボットＲ１
にたいして質問または説明し、それに対して第１ロボットＲ１がわざと間違った、勘違いした返答、あるいは理解していないことを尋ねる質問をして、人に「そうじゃなくてこうだよ」などと、人から訂正や補足の発話を行なうように、促す。ただし、人からの発話がなければ、第２ロボットＲ２が、代わりに訂正や補足をして、はじめのロボットの発話を流す。人は、積極的に自分も対話に参加する形になるので、対話感がより高まる。
【０１２９】
なお、意思表示デバイス１７で検出した、陪席者である人Ｈによる意思表示があったときには、人意思処理モジュール２３が図１５に示すフロー図に従って、ダイアログデータベース２２から次ダイアログ候補プール２３ａまたは文脈外応答にダイアログ（スクリプトデータ）をロードし、さらには次ダイアログ候補プール２３ａからダイアログキュー２３ｃにダイアログ（スクリプトデータ）をロードする。
【０１３０】
具体的に、図１５の最初のステップＳ７１では、人意思処理モジュール２３を制御するＣＰＵ２０ａは、初期化を実行するとともに、ダイアログデータベース２２から、ダイアログ（スクリプトデータ）を次ダイアログ候補プール２３ａに読み込む。つまり、どのトピックないしテーマのダイアログを読み出すかを決めて、そのトピックないしテーマの一群のダイアログを次ダイアログ候補プール２３ａに読み込む。このとき、ダイアログの依存関係、たとえばどのダイアログの前にこのダイアログを実行してはならないとか、このダイアログは特定のダイアログと同時に実行されるべきである、などの拘束条件を併せて読み込む。それとともに、ステップＳ７１では、次ダイアログ候補プール２３ａから、必要なダイアログをダイアログキュー２３ｃにロードする。
【０１３１】
このときのダイアログは、たとえば、一方のロボットＲ１をトピックに対して一貫して賛成の立場で発話または動作させ、他方のロボットＲ２を一貫して反対の立場で発話または動作させるように、設定されていて、各ロボットは終始その立場を変えないものとする。
【０１３２】
次のステップＳ７３では、ＣＰＵ２０ａは、センサマネージャ１８からのセンサデータを更新する。
【０１３３】
そして、次のステップＳ７５で、ＣＰＵ２０ａは、更新したセンサデータに、承認すべき人の意思が検出されているかどうか判断する。
【０１３４】
ステップＳ７５で“ＹＥＳ”を判断したとき、つまり、ロボットＲ１および／またはＲ２が承認しなければならない人の意思があったとき、ステップＳ７７では、ＣＰＵ２０ａは、人の意思表明に対する承認ダイアログ（主として非言語動作）をダイアログキュー２３ｃへロードする。
【０１３５】
ただし、承認ダイアログが各ロボットの予定されているダイアログ（非言語動作を含む）と干渉するものであるとき、その承認ダイアログはロードしない。たとえば、いずれかのロボットに次に人Ｈを見ることが予定されているとき、承認ダイアログが「当該ロボットが人Ｈを見る」であるとすれば、その承認ダイアログはダイアログキュー２３ｃへは入れない。さらに、いずれかのロボットに他のロボットを見るというダイアログが予定されているとき、承認ダイアログが「当該ロボットが人Ｈを見る」であるとすれば、ロボットが他のロボットを見てすぐに人Ｈを見なければならず、ロボットが不自然な動作（干渉）をしてしまう。したがって、このときもその承認ダイアログはダイアログキュー２３ａへはロードしない。
【０１３６】
つまり、ステップＳ７７では、他のダイアログと干渉しないダイアログだけが、人の意思を承認する承認ダイアログとしてダイアログキュー２３ｃにロードされる。したがって、このダイアログキュー２３ｃにロートされた承認ダイアログに従って、たとえば「ロボットＲ１およびＲ２がともに人Ｈを見る」というような非言語動作によって、ステップＳ７５で検出した人Ｈの意思を承認する。
【０１３７】
なお、ステップＳ７５で“ＮＯ”を判断したとき、すなわち、ロボットが承認すべき人の意思表示が検出されていないときには、そのままステップＳ７９へ進む。
【０１３８】
ステップＳ７９では、人の意思を確認するフェーズかどうか判断する。たとえば、先の発話が人Ｈに対する質問文あるいは否定文の形式である場合、その質問文あるいは否定文のスクリプトに人の意思を確認すべきことと、確認すべきタイミングを設定しておき（たとえば図６の質問フラグFah）、ステップＳ７９では、そのタイミングかどうか判断する。
【０１３９】
そして、ステップＳ８１では、人Ｈの意思を認定できたかどうか判断する。たとえば、人Ｈが意思表示デバイス１７の肯定ボタン１９ａまたは否定ボタン１９ｎを操作して意思を入力したことが明白であれば、ＣＰＵ２０ａは、人の意思を認定することができる。これに対して、人Ｈが意思表示デバイス１７を操作せず、質問文を無視した場合、ＣＰＵ２０ａは、人の意思を確定的に認定できない。
【０１４０】
このような場合、図１５では図示していないが、人意思処理モジュール２３は、人Ｈの意思を確定させるために必要なダイアログを、ダイアログキュー２３ｃにロードして、いずれかのロボットＲが発話によって、非言語動作によって、あるいは両方で、人Ｈの意思の確定を促すようにしてもよい。たとえば、ロボットＲ１および／またはＲ２が人Ｈを見るというような非言語動作で、および／またはロボットＲ１および／またはＲ２のたとえば「どう思いますか」のような発話で、人Ｈの意思を確認することができる。そして、このような意思確定ダイアログを実行した後、先のステップＳ７３に戻し、再び意思が認定できるかどうか判定するようにすればよい。
【０１４１】
ただし、所定時間たとえば５秒間、人Ｈからの意思表明がなかったときには、人Ｈの意思は「肯定」または「否定」のどちらかであると、看做すこともできる。
【０１４２】
このようにして人Ｈの意思が確定的に認定できると、ステップＳ８１から、次のステップＳ８３に進む。そして、ステップＳ８３では、ＣＰＵ２０ａは、人意思処理モジュール２３を制御して、認定した人Ｈの意思に基づいて、その意思を承認するためのダイアログ（スクリプトデータ）を次ダイアログ候補プール２３ａから選択して、ダイアログキュー２３ｃにロードする。したがって、このとき、ロボットＲ１およびＲ２は、このダイアログキュー２３ｃにロートされた承認ダイアログに従って、人Ｈの意思を承認するための対話を実行する。このときのダイアログは、先に説明したように、人Ｈが肯定の意思表示をしたのか、否定の意思表示をしたのかで異なるダイアログがダイアログキュー２３ｃにロードされる。
【０１４３】
ステップＳ８５では、ＣＰＵ２０ａは、ステップＳ８３でダイアログをダイアログキュー２３ｃにロードしたので、次のダイアログ候補をダイアログデータベース２２から読み出して、次ダイアログ候補プール２３ａにロードする。
【０１４４】
先のステップＳ７９で、人意思認定フェーズではない場合、“ＮＯ”が判断され、次のステップＳ８７でＣＰＵ２０ａは、無視できない人Ｈの文脈外の意思がセンサマネージャ１８によって検出されていないかどうか判断する。そのような人Ｈの文脈外の意思表示がなければ、このステップＳ８７で“ＮＯ”となり、次のステップＳ８９に進む。
【０１４５】
ステップＳ８９では、対話を続けるかどうか判断する。たとえば、ダイアログデータベース２２に、採用可能なダイアログが無くなった、時間がなくなった、などのとき、ステップＳ８９では“ＮＯ”と判断され、この図１５の人意思処理モジュール２３の動作は終了する。
【０１４６】
ステップＳ８９で“ＹＥＳ”と判断したとき、すなわち対話を継続すべきときには、ステップＳ９１では、実行すべきダイアログがダイアログキュー２３ｃに残っているかどうか、つまりダイアログが終了しているかどうか判断する。
【０１４７】
ステップＳ９１で“ＹＥＳ”なら、ステップＳ７１と同様に、ステップＳ９３において、別のトピックの一群のダイアログ（スクリプトデータ）を、ダイアログデータベース２２から選択して読出し、次ダイアログ候補プール２３ａにロードする。それとともに、ロボットＲ１およびＲ２の次の対話のために、次ダイアログ候補プール２３ａにロードしたダイアログをダイアログキュー２３ｃにロードする。その後先のステップＳ８５に進み、ダイアログデータベース２２からさらにダイアログを次ダイアログ候補プール２３ａにロードする。
【０１４８】
なお、ステップＳ９１で“ＮＯ”なら、ダイアログが終了していないなら、先のステップＳ７３に戻る。
【０１４９】
さらに、ステップＳ８７で“ＹＥＳ”と判断したとき、すなわち、人Ｈの文脈外の意思表示があったとき。ステップＳ９５において、ＣＰＵ２０ａは、そのときの文脈外の人Ｈの意思に基づいて、図１に示す文脈外応答ダイアログプール２３ｂにロードされているダイアログのうち適当なダイアログを選択し、その選択したダイアログをダイアログキュー２３ｃにロードする。したがって、先に述べた文脈外の人Ｈの意思表示に対して応答する発話および／または非言語動作をロボットＲ１および／またはＲ２が実行する。
【０１５０】
そして、次のステップＳ９７では、ＣＰＵ２０ａは、人の意思に基づいて、現在のダイアログキュー２３ｃおよび次ダイアログ候補プール２３ｂの内容を削除し、または保留する。つまり、そのときの人Ｈの意思に基づけば実行不要と思われるダイアログをダイアログキュー２３ｃおよび次ダイアログ候補プール２３ｂから削除するか、あるいはその実行不要と思われるダイアログの実行を保留する。
【０１５１】
このように、人意思処理モジュール２３では、たとえば意思表示デバイス１７を用いて表明した、陪席者たる人Ｈの意思に対して、ロボットＲ１およびＲ２が、その意思を承認するための発話や非言語動作を実行することによって、人ＨがロボットＲ１およびＲ２を含む対話システム１０の中で、人Ｈは何も発話しなくても、明らかに対話に参加している感覚（対話感）を持つに至る。
【０１５２】
以下、図１６‐図２４を参照して、人Ｈの意思表示に対する承認ダイアログの様々な例について説明する。ただし、以下のことを前提として、すべての対話がダイアログデータベース２２に予め設定されているダイアログ（スクリプトデータ）に従って実行される、ということに留意されたい。
【０１５３】
長円で囲んだ「Topic」とは、図１０‐図１４で説明した「話題」のことであり、Topic-1、Topic-2、…はそれぞれ異なる話題であることを意味する。Topicは賛成の立場での発話を示し、網掛けの長円で囲んだ「Anti-Topic」とは、Topicに対して反対の立場での発話を示す。また、「Follow-Topic」はTopicに追従する立場での発話を示す。さらに、人Ｈにおいて、白丸で示した「肯定」とは、たとえば意思表示デバイス１７の肯定ボタン１７ａを操作したときのように、センサマネージャ１８が人Ｈの肯定の意思表示を検出したことを意味する。反対に、網掛けの丸で示した「否定」は、センサマネージャ１８が人Ｈの否定の意思表示を検出したことを意味する。なお、以下の具体例の説明において、「人の意思表示」は、人Ｈが主体的に明示的にまたは非明示的に表示した意思だけでなく、必ずしも人Ｈの実際の意思の如何にはよらず、前述のように、センサマネージャ１８で認定する意思を指すものであると理解されたい。
【０１５４】
図１６の例では、対話の主導権をもって、ロボットＲ１はTopic-1について賛成の立場で発話し、ロボットＲ２はロボットＲ１に対して反対の立場で発話する。
【０１５５】
Topic-1（Anti-Topic-1）に含まれる質問文を発話した後のダイアログに従って、グループマネージャ２０のＣＰＵ２０ａは、ともに人Ｈを見るという非言語動作をロボットＲ１およびＲ２に実行させるようなダイアログキュー２３ｃに保持されているスクリプトデータ（当該非言語動作の指示）をブロードキャストする。したがって、人Ｈは、自分の意思表示が求められていることを理解する。
【０１５６】
このようなロボットＲ１およびＲ２の非言語動作に応じて人Ｈが肯定の意思表示をした後、たとえば図１５のステップＳ８３において、ロボットＲ１およびＲ２が、図１６で横長の矩形枠で示すような承認ダイアログを実行する。この例では、人Ｈが肯定の意思表示をしたのであるから、ロボットＲ１は意思表示に対する承認のためにたとえば「そうだよね」と発話する。これに対して、ロボットＲ２は、自分は反対の立場であるのに人Ｈが肯定の意思表示をしたのであるから、意思表示に対する承認のためにたとえば「そうかな」と、人Ｈの肯定の意思表示をとがめるような発話をする。
【０１５７】
つまり、ここで、ロボットＲ１およびＲ２がそれぞれの立場で、人Ｈの肯定の意思表示を承認するような発話を実行する。
【０１５８】
なお、この承認ダイアログでの発話は、ロボットＲ１およびＲ２のどちらの発話が先でもよく、ロボットＲ１およびＲ２の発話が同時に実行されてもよい。さらに、この承認ダイアログでは、ロボットＲ１およびＲ２の対話を実施例のように１回だけでなく、複数回実行するようにしてもよい。これらのことは、次の図１７‐図２０の例にも当てはまることを予め指摘しておく。
【０１５９】
その後、主導権を持っているロボットＲ１が、同じTopic-1または別のTopic-2における対話に復帰するためのつなぎの発話、たとえば「うん、だからね」のような発話する。その後ロボットＲ１およびＲ２が、Topic-1(or 2)(Anti-Topic-1(or 2))を継続する。
【０１６０】
図１６の例では、人Ｈの肯定の意思表示に同調する発話を行うことによってロボットＲ１が人Ｈの肯定の意思表示を承認し、ロボットＲ２が人Ｈの肯定の意思表示に同調しない発話を行うことによって人Ｈの肯定の意思表示を承認する。
【０１６１】
図１７の例では、対話の主導権をもって、ロボットＲ１はTopic-1について賛成の立場で発話し、ロボットＲ２はロボットＲ１に追従する立場で発話する。Topic-1（Follow-Topic-1）の発話の後、図１６の場合と同様に、ロボットＲ１およびＲ２がともに人Ｈを見るという非言語動作を実行することによって、人Ｈの意思表示を促す。
【０１６２】
そして、人Ｈが肯定の意思表示をしたとき、たとえば図１５のステップＳ８３において、ロボットＲ１およびＲ２が、図１７で横長の矩形枠で示すような承認ダイアログを実行する。この例では、ロボットＲ１は人Ｈが肯定の意思表示をしたのであるから、意思表示に対する承認のためにたとえば「そうだよね」と発話する。これに対して、ロボットＲ２は、ロボットＲ１に追従する立場であるので、人Ｈの肯定の意思表示に対する承認のためにたとえば「そうだよね」と発話する。
【０１６３】
つまり、ここで、ロボットＲ１およびＲ２がそれぞれの立場で、人Ｈの肯定の意思表示を承認するような発話を実行する。
【０１６４】
その後、主導権を持っているロボットＲ１が、同じTopic-1または別のTopic-2における対話に復帰するためのつなぎの発話、たとえば「うん、だからね」のような同調する発話をする。その後ロボットＲ１およびＲ２が、Topic-1(or 2)およびFollow-Topic-1(or 2)を継続する。
【０１６５】
図１７の例では、人Ｈの肯定の意思表示に同調する発話を行うことによってロボットＲ１が人Ｈの肯定の意思表示を承認し、ロボットＲ１に追従する立場のロボットＲ２も人Ｈの肯定の意思表示に同調する発話を行うことによって人Ｈの肯定の意思表示を承認する。
【０１６６】
図１８の例では、対話の主導権をもって、ロボットＲ１はTopic-1について賛成の立場で発話し、ロボットＲ２はロボットＲ１に対して反対の立場で発話する。Topic-1（Anti-Topic-1）の発話の後、図１６の場合と同様に、ロボットＲ１およびＲ２がともに人Ｈを見るという非言語動作を実行することによって、人Ｈの意思表示を促す。
【０１６７】
人Ｈが否定の意思表示をした後、たとえば図１５のステップＳ８３において、ロボットＲ１およびＲ２が、図１８で横長の矩形枠で示すような承認ダイアログを実行する。この例では、人Ｈが否定の意思表示をしたのであるから、その意思表示に対する承認のために、ロボットＲ１は人Ｈの否定の意思表示をとがめる、たとえば「え、違う」と発話する。これに対して、ロボットＲ２は、自分は反対の立場であるのに人Ｈが否定の意思表示をしたのであるから、その否定の意思表示に同調するたとえば「だよね」と発話するひとによって、人Ｈの否定の意思表示を承認する。
【０１６８】
つまり、ここで、ロボットＲ１およびＲ２がそれぞれの立場で、人Ｈの否定の意思表示を承認するような発話を実行する。
【０１６９】
その後、主導権を持っているロボットＲ１が、同じTopic-1または別のTopic-2における対話に復帰するためのつなぎの発話、たとえば「いや、でもね」のような切り返しの発話をする。その後ロボットＲ１およびＲ２が、Topic-1(or 2)(Anti-Topic-1(or 2))を継続する。
【０１７０】
図１８の例では、ロボットＲ１が人Ｈの意思表示に同調しない発話を行うことによって賛成の立場で人Ｈの否定の意思表示を承認し、ロボットＲ２が人Ｈの意思表示に同調しない発話を行うことによって反対の立場で人Ｈの否定の意思表示を承認する。
【０１７１】
図１９の例では、対話の主導権をもって、ロボットＲ１はTopic-1について賛成の立場で発話し、ロボットＲ２はロボットＲ１に対して反対の立場で発話する。Topic-1（Anti-Topic-1）の発話の後、図１６の場合と同様に、ロボットＲ１およびＲ２がともに人Ｈを見るという非言語動作を実行することによって、人Ｈの意思表示を促す。
【０１７２】
人Ｈが肯定の意思表示をした後、たとえば図１５のステップＳ８３において、ロボットＲ１およびＲ２が、図１９で横長の矩形枠で示すような承認ダイアログを実行する。この例では、ロボットＲ１は人Ｈが肯定の意思表示をしたのであるから、意思表示に対する承認のためにたとえば「そうだよね」と発話する。これに対して、ロボットＲ２は、自分は反対の立場であるのに人Ｈが肯定の意思表示をしたのであるから、意思表示に対する承認のためにたとえば「そうかな」と、人Ｈの肯定の意思表示をとがめるような発話をする。
【０１７３】
つまり、ここで、ロボットＲ１およびＲ２がそれぞれの立場で、人Ｈの肯定の意思表示を承認するような発話を実行する。
【０１７４】
その後、対話の主導権がロボットＲ２に移され、ロボットＲ２が、Topic-1(or 2)における対話に復帰するためのつなぎの発話、たとえば「いや、だからね」のような発話する。その後ロボットＲ２およびＲ１が、Topic-1(or 2) (Anti-Topic-1(or 2))を継続する。
【０１７５】
図１９の例では、ロボットＲ２が人Ｈの肯定の意思表示に同調する発話を行うことによって賛成の立場で人Ｈの肯定の意思表示を承認し、ロボットＲ２が人Ｈの肯定の意思表示に同調しない発話を行うことによって反対の立場で人Ｈの肯定の意思表示を承認する。
【０１７６】
図２０の例では、対話の主導権をもって、ロボットＲ１はTopic-1について賛成の立場で発話し、ロボットＲ２はロボットＲ１に対して反対の立場で発話する。Topic-1（Anti-Topic-1）の発話の後、図１６の場合と同様に、ロボットＲ１およびＲ２がともに人Ｈを見るという非言語動作を実行することによって、人Ｈの意思表示を促す。
【０１７７】
人Ｈが否定の意思表示をした後、たとえば図１５のステップＳ８３において、ロボットＲ１およびＲ２が、図２０で横長の矩形枠で示すような承認ダイアログを実行する。この例では、ロボットＲ１は人Ｈが否定の意思表示をしたのであるから、意思表示に対する承認のためにたとえば「え、違う」と発話する。これに対して、ロボットＲ２は、自分は反対の立場であるのに人Ｈが否定の意思表示をしたのであるから、意思表示に対する承認のためにたとえば「だよね」と、人Ｈの否定の意思表示に同調するような発話をする。
【０１７８】
つまり、ここで、ロボットＲ１およびＲ２がそれぞれの立場で、人Ｈの否定の意思表示を承認するような発話を実行する。
【０１７９】
その後、対話の主導権がロボットＲ２に移され、ロボットＲ２が、同じTopic-1(or 2)における対話に復帰するためのつなぎの発話、たとえば「いや、でもね」のような発話する。その後ロボットＲ２およびＲ１が、Topic-1(or 2)(Anti-Topic-1(or 2))を継続する。
【０１８０】
図２０の例では、ロボットＲ２が人Ｈの否定の意思表示に同調しない発話を行うことによって賛成の立場で人Ｈの否定の意思表示を承認し、ロボットＲ２が人Ｈの否定の意思表示に同調する発話を行うことによって反対の立場で人Ｈの否定の意思表示を承認する。
【０１８１】
図２１の例では、対話の主導権をもって、ロボットＲ１はTopic-1について賛成の立場で発話し、ロボットＲ２はロボットＲ１に対して反対の立場で発話する。Topic-1（Anti-Topic-1）の発話の後、図１６の場合と同様に、ロボットＲ１およびＲ２がともに人Ｈを見るという非言語動作を実行することによって、人Ｈの意思表示を促す。
【０１８２】
人Ｈが肯定の意思表示をした後、ロボットＲ１は、たとえば図１５のステップＳ８３において、人Ｈの肯定の意思表示を拡大解釈して承認するダイアログを実行する。まず、人Ｈが肯定の意思表示をしかつ自分は賛成の立場であるので、人Ｈに同調するようにたとえば「そうだよね」と発話する。そして、人Ｈの肯定の意思表示を拡大解釈する発話をロボットＲ２に対して実行する。
【０１８３】
たとえば、Topic-1が嗜好品をテーマにした話題だとして、ロボットＲ１がTopic-1のなかで「バナナはおいしいですよね」と発話したとき、人Ｈが肯定の意思表示をしたとき、ロボットＲ１は、まず「そうだよね」と人Ｈに向かって発話する。その後、ロボットＲ２に向かって、人Ｈの肯定の意思表示を拡大解釈してたとえば「果物が好きなんだって」と発話する。それに対してロボットＲ２がロボットＲ１に対して、たとえば「え、果物なんか好きなの？」のような、ロボットＲ１の拡大解釈を補強、承認するような発話をする。
【０１８４】
つまり、ロボットＲ１およびＲ２どうしのTopicでの対話に対して人Ｈが肯定の意思表示をしたとき、対話の主導権を持つロボットＲ１が、人Ｈの肯定の意思表示を拡大解釈して承認するダイアログを実行し、続けてロボットＲ２がその拡大解釈を承認するダイアログを実行することによって、人Ｈが、その拡大解釈を実際に発話したと感じる。上の例では、人Ｈは、自分が「果物が好きだ」と実際に発話したという感覚を持つことになる。
【０１８５】
その後、ロボットＲ１およびＲ２が、図２１で横長の矩形枠で示すような承認ダイアログを実行する。この例では、ロボットＲ２が人Ｈの肯定の意思表示に対するロボットＲ１の拡大解釈を承認しているので、その拡大解釈の承認に応答するように、ロボットＲ１がたとえば「きっとそういうタイプなんだよ」とロボットＲ２に向かって発話し、ロボットＲ２は、人Ｈが肯定の意思表示をしたのであるから、反対の立場として、人Ｈの肯定の意思表示をとがめるようなたとえば「ひどいね」と発話する。
【０１８６】
つまり、ここで、ロボットＲ１およびＲ２がそれぞれの立場で、拡大解釈を前提にして、人Ｈの肯定の意思表示を承認するような発話を実行する。
【０１８７】
なお、この承認ダイアログでの発話は、ロボットＲ１およびＲ２のどちらの発話が先でもよく、ロボットＲ１およびＲ２の発話が同時に実行されてもよい。さらに、この承認ダイアログでは、ロボットＲ１およびＲ２の対話を実施例のように１回だけでなく、複数回実行するようにしてもよく、あるいは省略されてもよい。これらのことは、次の図２２‐図２５の例にも当てはまることを予め指摘しておく。
【０１８８】
その後、主導権を持っているロボットＲ１が、同じTopic-1または別のTopic-2における主張を開始するためのつなぎの発話、たとえば「うん、それでね」のような発話する。その後ロボットＲ１およびＲ２が、Topic-1(or 2)(Anti-Topic-1(or 2))を継続する。
【０１８９】
図２１の例では、ロボットＲ１およびＲ２が人Ｈの肯定の意思表示を拡大解釈した承認したうえで、ロボットＲ１が人Ｈに同調する発話を行うことによって賛成の立場で人Ｈの肯定の意思表示を承認し、ロボットＲ２が人Ｈの肯定の意思表示に同調しない発話を行うことによって反対の立場で人Ｈの肯定の意思表示を承認する。
【０１９０】
図２２の例では、対話の主導権をもって、ロボットＲ１はTopic-1について賛成の立場で発話し、ロボットＲ２はロボットＲ１に追従する立場で発話する。Topic-1（Follow-Topic-1）の発話の後、図１６の場合と同様に、ロボットＲ１およびＲ２がともに人Ｈを見るという非言語動作を実行することによって、人Ｈの意思表示を促す。
【０１９１】
人Ｈが肯定の意思表示をした後、ロボットＲ１は、たとえば図１５のステップＳ８３において、人Ｈの肯定の意思表示を拡大解釈して承認するダイアログを実行する。まず、人Ｈが肯定の意思表示しかつ自分は追従する立場であるので、人Ｈに同調するようにたとえば「そうだよね」と発話する。そして、人Ｈの肯定の意思表示を拡大する発話をロボットＲ２に対して実行する。
【０１９２】
たとえば、Topic-1が嗜好品をテーマにした話題だとして、ロボットＲ１がTopic-1のなかで「バナナっておいしいですよね」と発話したとき、人Ｈが肯定の意思表示をしたとき、ロボットＲ１は、まず「そうだよね」と人Ｈに向かって発話する。その後、ロボットＲ２に向かって、人Ｈの肯定の意思表示を拡大解釈してたとえば「果物が好きなんだって」と発話する。それに対してロボットＲ２がロボットＲ１に対して、たとえば「話がわかるね」のような、ロボットＲ１の拡大解釈を補強、承認するような発話をする。
【０１９３】
つまり、ロボットＲ１およびＲ２どうしのTopic（Follow-Topic）での対話に対して人Ｈが肯定の意思表示をしたとき、対話の主導権を持つロボットＲ１が、人Ｈの肯定の意思表示を拡大解釈して承認するダイアログを実行し、続けてロボットＲ２がその拡大解釈を承認するダイアログを実行することによって、人Ｈが、その拡大解釈を実際に発話したと感じる。上の例では、人Ｈは、自分が実際に「果物が好きだ」と発話したという感覚を持つ。
【０１９４】
その後、ロボットＲ１およびＲ２が、図２２で横長の矩形枠で示すような承認ダイアログを実行する。この例では、ロボットＲ２が人Ｈの肯定の意思表示に対するロボットＲ１の拡大解釈を承認しているので、その拡大解釈の承認に応答するように、ロボットＲ１がたとえば「きっとそういうタイプな気がしてたんだ」とロボットＲ２に向かって発話し、ロボットＲ２は、人Ｈが肯定の意思表示をしたのであるから、ロボットＲ１に追従する立場として、人Ｈの肯定の意思表示に同調するようなたとえば「そうだよね」と発話する。
【０１９５】
つまり、ここで、ロボットＲ１およびＲ２がそれぞれの立場で、拡大解釈を前提にして、人Ｈの肯定の意思表示を承認するような発話を実行する。
【０１９６】
その後、主導権を持っているロボットＲ１が、同じTopic-1または別のTopic-2における対話に復帰するためのつなぎの発話、たとえば「うん、それでね」のような発話する。その後ロボットＲ１およびＲ２が、Topic-1(or 2)(Anti-Topic-1(or 2))を継続する。
【０１９７】
図２２の例では、ロボットＲ１およびＲ２が人Ｈの肯定の意思表示を拡大解釈した承認したうえで、ロボットＲ１が人Ｈに同調する発話を行うことによって賛成の立場で人Ｈの肯定の意思表示を拡大解釈して承認し、ロボットＲ２も人Ｈの肯定の意思表示に同調する発話を行うことによってロボットＲ１に追従する立場で人Ｈの肯定の意思表示を承認する。
【０１９８】
図２３の例では、対話の主導権をもって、ロボットＲ１はTopic-1について賛成の立場で発話し、ロボットＲ２はロボットＲ１に反対する立場で発話する。Topic-1（Anti-Topic-1）の発話の後、図１６の場合と同様に、ロボットＲ１およびＲ２がともに人Ｈを見るという非言語動作を実行することによって、人Ｈの意思表示を促す。
【０１９９】
人Ｈが否定の意思表示をした後、ロボットＲ２は、たとえば図１５のステップＳ８３において、人Ｈの否定の意思表示を拡大解釈して承認するダイアログを実行する。まず、人Ｈが否定の意思表示しかつ自分は反対の立場であるので、人Ｈに同調するようにたとえば「そうだよね」と発話する。そして、人Ｈの否定の意思表示を拡大する発話をロボットＲ２に対して実行する。
【０２００】
たとえば、Topic-1が嗜好品をテーマにした話題だとして、ロボットＲ１がTopic-1のなかで「バナナっておいしいですよね」と発話したとき、人Ｈが否定の意思表示をしたとき、ロボットＲ２は、まず「そうだよね」と人Ｈに向かって発話する。その後、ロボットＲ１に向かって、人Ｈの否定の意思表示を拡大解釈してたとえば「果物が嫌いなんだって」と発話する。それに対してロボットＲ１がロボットＲ２に対して、たとえば「え、果物が嫌いなの？」のような、ロボットＲ２の拡大解釈を補強、承認するような発話をする。
【０２０１】
つまり、ロボットＲ１およびＲ２どうしのTopic（Anti-Topic）での対話に対して人Ｈが否定の意思表示をしたとき、ロボットＲ１に反対するロボットＲ２が、人Ｈの否定の意思表示を拡大解釈して承認するダイアログを実行し、続けてロボットＲ１がその拡大解釈を承認するダイアログを実行することによって、人Ｈが、実際にその拡大解釈を発話したと感じる。上の例では、人Ｈは、自分が「果物が嫌いだ」と実際に発話したという感覚を持つことになる。
【０２０２】
その後、ロボットＲ２およびＲ１が、図２３で横長の矩形枠で示すような承認ダイアログを実行する。この例では、ロボットＲ１が人Ｈの否定の意思表示に対するロボットＲ２の拡大解釈を承認しているので、その拡大解釈の承認に応答するように、ロボットＲ２がたとえば「きっとそういうタイプなんだよ」とロボットＲ１に向かって発話し、人Ｈが否定の意思表示をしたのであるから、ロボットＲ２に反対されている立場なので、ロボットＲ１は、人Ｈの否定の意思表示に同調しないようなたとえば「ひどいね」と発話する。
【０２０３】
つまり、ここで、ロボットＲ１およびＲ２がそれぞれの立場で、拡大解釈を前提にして、人Ｈの否定の意思表示を承認するような発話を実行する。
【０２０４】
その後、主導権を持っているロボットＲ１が、同じTopic-1または別のTopic-2における対話に復帰するためのつなぎの発話、たとえば「いや、でもね」のような発話する。その後ロボットＲ１およびＲ２が、Topic-1(or 2)(Anti-Topic-1(or 2))を継続する。
【０２０５】
図２３の例では、ロボットＲ１およびＲ２が人Ｈの否定の意思表示を拡大解釈した承認したうえで、ロボットＲ２が人Ｈに同調する発話を行うことによって反対の立場で人Ｈの否定の意思表示を拡大解釈して承認し、ロボットＲ１は人Ｈの否定の意思表示に同調しない発話を行うことによって人Ｈの否定の意思表示を承認する。
【０２０６】
図２４の例では、対話の主導権をもって、ロボットＲ１はTopic-1について賛成の立場で発話し、ロボットＲ２はロボットＲ１に対して反対の立場で発話する。Topic-1（Anti-Topic-1）の発話の後、図１６の場合と同様に、ロボットＲ１およびＲ２がともに人Ｈを見るという非言語動作を実行することによって、人Ｈの意思表示を促す。
【０２０７】
人Ｈが肯定の意思表示をした後、ロボットＲ１は、たとえば図１５のステップＳ８３において、人Ｈの肯定の意思表示を拡大解釈して承認するダイアログを実行する。まず、人Ｈが肯定の意思表示しかつ自分は賛成の立場であるので、人Ｈに同調するようにたとえば「そうだよね」と発話する。そして、人Ｈの肯定の意思表示を拡大する発話をロボットＲ２に対して実行する。
【０２０８】
たとえば、Topic-1が嗜好品をテーマにした話題だとして、ロボットＲ１がTopic-1のなかで「バナナっておいしいですよね」と発話したとき、人Ｈが肯定の意思表示をしたとき、ロボットＲ１は、まず「そうだよね」と人Ｈに向かって発話する。その後、ロボットＲ２に向かって、人Ｈの肯定の意思表示を拡大解釈してたとえば「果物が好きなんだって」と発話する。それに対してロボットＲ２がロボットＲ１に対して、たとえば「え、果物なんか好きなの？」のような、ロボットＲ１の拡大解釈を補強、承認するような発話をする。
【０２０９】
つまり、ロボットＲ１およびＲ２どうしのTopicでの対話に対して人Ｈが肯定の意思表示をしたとき、対話の主導権を持つロボットＲ１が、人Ｈの肯定の意思表示を拡大解釈して承認するダイアログを実行し、続けてロボットＲ２がその拡大解釈を承認するダイアログを実行することによって、人Ｈが、その拡大解釈を発話したと感じる。上の例では、人Ｈは、自分が実際に果物が好きだ」と発話したという感覚を持つことになる。
【０２１０】
その後、ロボットＲ１およびＲ２が、図２１で横長の矩形枠で示すような承認ダイアログを実行する。この例では、ロボットＲ２が人Ｈの肯定の意思表示に対するロボットＲ１の拡大解釈を承認しているので、その拡大解釈の承認に応答するように、ロボットＲ１がたとえば「きっとそういうタイプなんだよ」とロボットＲ２に向かって発話し、ロボットＲ２は、人Ｈが肯定の意思表示をしたのであるから、反対の立場として、人Ｈの肯定の意思表示をとがめるようなたとえば「ひどいね」と発話する。
【０２１１】
つまり、ここで、ロボットＲ１およびＲ２がそれぞれの立場で、拡大解釈を前提にして、人Ｈの肯定の意思表示を承認するような発話を実行する。
【０２１２】
その後、主導権がロボットＲ２に移り、ロボットＲ２が、Topic-1(or 2)での主張を開始するためのつなぎの発話、たとえば「いや、でもね」のような発話する。その後ロボットＲ２およびＲ１が、Topic-1(or 2)(Anti-Topic-1(or 2))を継続する。
【０２１３】
図２４の例では、ロボットＲ１およびＲ２が人Ｈの肯定の意思表示を拡大解釈した承認したうえで、ロボットＲ２が人Ｈに同調する発話を行うことによって反対の立場で人Ｈの肯定の意思表示を拡大解釈して承認し、ロボットＲ１は人Ｈの肯定の意思表示に同調しない発話を行うことによって人Ｈの肯定の意思表示を承認する。
【０２１４】
上述の実施例では、人Ｈの意思表示はたとえば意思表示デバイス１７の人の操作に応じて入力するようにした。しかしながら、たとえばカメラ１６からの画像信号を処理し、たとえば人Ｈが頷いたら「肯定」の意思表示があったとし、首を振ったら「否定」の意思表示があったとするようにしてもよい。
【０２１５】
図２５の例では、対話の主導権をもって、ロボットＲ１はTopic-1について賛成の立場で発話し、ロボットＲ２はロボットＲ１に反対する立場で発話する。Topic-1（Anti-Topic-1）の発話の後、図１６の場合と同様に、ロボットＲ１およびＲ２がともに人Ｈを見るという非言語動作を実行することによって、人Ｈの意思表示を促す。
【０２１６】
人Ｈが否定の意思表示をした後、ロボットＲ２は、たとえば図１５のステップＳ８３において、人Ｈの否定の意思表示を拡大解釈して承認するダイアログを実行する。まず、人Ｈが否定の意思表示しかつ自分は反対の立場であるので、人Ｈに同調するようにたとえば「そうだよね」と発話する。そして、人Ｈの否定の意思表示を拡大する発話をロボットＲ２に対して実行する。
【０２１７】
たとえば、Topic-1が嗜好品をテーマにした話題だとして、ロボットＲ１がTopic-1のなかで「バナナっておいしいですよね」と発話したとき、人Ｈが否定の意思表示をしたとき、ロボットＲ２は、まず「そうだよね」と人Ｈに向かって発話する。その後、ロボットＲ１に向かって、人Ｈの否定の意思表示を拡大解釈してたとえば「果物が嫌いなんだって」と発話する。それに対してロボットＲ１がロボットＲ２に対して、たとえば「え、果物が嫌いなの？」のような、ロボットＲ２の拡大解釈を補強、承認するような発話をする。
【０２１８】
つまり、ロボットＲ１およびＲ２どうしのTopic（Anti-Topic）での対話に対して人Ｈが否定の意思表示をしたとき、ロボットＲ１に反対するロボットＲ２が、人Ｈの否定の意思表示を拡大解釈して承認するダイアログを実行し、続けてロボットＲ１がその拡大解釈を承認するダイアログを実行することによって、人Ｈが、実際にその拡大解釈を発話したと感じる。上の例では、人Ｈは、自分が「果物が嫌いだ」と実際に発話したという感覚を持つことになる。
【０２１９】
その後、ロボットＲ２およびＲ１が、図２３で横長の矩形枠で示すような承認ダイアログを実行する。この例では、ロボットＲ１が人Ｈの否定の意思表示に対するロボットＲ２の拡大解釈を承認しているので、その拡大解釈の承認に応答するように、ロボットＲ２がたとえば「きっとそういうタイプなんだよ」とロボットＲ１に向かって発話し、人Ｈが否定の意思表示をしたのであるから、ロボットＲ２に反対されている立場なので、ロボットＲ１は、人Ｈの否定の意思表示に同調しないようなたとえば「ひどいね」と発話する。
【０２２０】
つまり、ここで、ロボットＲ１およびＲ２がそれぞれの立場で、拡大解釈を前提にして、人Ｈの否定の意思表示を承認するような発話を実行する。
【０２２１】
その後、主導権がロボットＲ２に移り、ロボットＲ２がTopic-1(or 2)での主張開始のつなぎの発話、たとえば「いや、でもね」のような発話する。その後ロボットＲ２およびＲ１が、Anti-Topic-1(or 2)(Topic-1(or 2))を継続する。
【０２２２】
図２５の例では、ロボットＲ１およびＲ２が人Ｈの否定の意思表示を拡大解釈した承認したうえで、ロボットＲ２が人Ｈに同調する発話を行うことによって反対の立場で人Ｈの否定の意思表示を拡大解釈して承認し、ロボットＲ１は人Ｈの否定の意思表示に同調しない発話を行うことによって人Ｈの否定の意思表示を承認する。
【０２２３】
なお、図１６‐図２５に示す具体例において、人Ｈの意思を認定したとき、ロボットＲ１およびＲ２の対話によってその意思を承認するようにしたが、実行手段の一例である図１５のステップＳ８３で示す承認ダイアログでは、少なくとも１体のエージェント（実施例では、ロボットＲ１およびＲ２の少なくとも一方）の発話で人Ｈの意思を承認するようにしてもよい。
【０２２４】
さらに、認定した人Ｈの意思を承認するためには、図１５のステップＳ７７における非言語動作を実行させるようにしてもよい。この場合、ステップＳ７７も実行手段を構成することになる。
【０２２５】
なお、上述の実施例では、各ロボットＲ１およびダイアログデータベース２２に予め蓄積しておくようにした。しかしながら、このデータベース２２に代えて、たとえばネットから必要なスクリプトデータを逐次グループマネージャ２０に供給するようにしてもよい。
【０２２６】
さらに、上述の実施例は、物理的なエージェントであるロボットを用いたロボット対話システムであるが、この発明は、そのような物理的なエージェントだけでなく、たとえばディスプレイの画面上に表示されるアバタないしキャラクタのようなエージェントどうしの対話システムも適用されてもよい。この場合、図１のロボットコントローラ２４やロボットセンサ２６は、そのようなアバタやキャラクタを表示するためのディスプレイコントローラ（図示せず）に代えられる。つまり、この発明は、エージェント対話システムである。
【符号の説明】
【０２２７】
１０  …ロボット対話システム
１２  …対話場所
Ｒ１、Ｒ２  …ロボット
１７  …意思表示デバイス
１８  …センサマネージャ
２０  …グループマネージャ
２２  …ダイアログデータベース
２３  …人意思処理モジュール
２４  …ロボットコントローラ
【図１】
2017079004.tif 000003
【図２】
2017079004.tif 000004
【図３】
2017079004.tif 000005
【図４】
2017079004.tif 000006
【図５】
2017079004.tif 000007
【図６】
2017079004.tif 000008
【図７】
2017079004.tif 000009
【図８】
2017079004.tif 000010
【図９】
2017079004.tif 000011
【図１０】
2017079004.tif 000012
【図１１】
2017079004.tif 000013
【図１２】
2017079004.tif 000014
【図１３】
2017079004.tif 000015
【図１４】
2017079004.tif 000016
【図１５】
2017079004.tif 000017
【図１６】
2017079004.tif 000018
【図１７】
2017079004.tif 000019
【図１８】
2017079004.tif 000020
【図１９】
2017079004.tif 000021
【図２０】
2017079004.tif 000022
【図２１】
2017079004.tif 000023
【図２２】
2017079004.tif 000024
【図２３】
2017079004.tif 000025
【図２４】
2017079004.tif 000026
【図２５】
2017079004.tif 000027