(57)【要約】【課題】従来の音声対話装置では、ユーザとの自然な対話を行い難い場合があった。【解決手段】ユーザの発話を音声認識し、音声認識結果に基づき、予め与えられたシナリオに従ってユーザとの対話を制御すると共に、必要に応じてユーザの発話内容に応じた応答文を生成し、再生したシナリオの一文又は生成した応答文を音声合成処理するようにした。【選択図】        図６
2004287016.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの発話を音声認識する音声認識手段と、
上記音声認識手段の音声認識結果に基づき、予め与えられたシナリオに従って上記ユーザとの対話を制御する対話制御手段と、
上記対話制御手段からの依頼に応じて、上記ユーザの発話内容に応じた応答文を生成する応答生成手段と、
上記対話制御手段により再生された上記シナリオの一文又は上記応答生成手段により生成された上記応答文を音声合成処理する音声合成手段と
を具え、
上記対話制御手段は、
上記ユーザの発話内容に基づき、必要に応じて上記応答生成手段に上記応答文の生成を依頼する
ことを特徴とする音声対話装置。
【請求項２】
上記対話制御手段は、
上記応答生成手段により生成された上記応答文の属性に基づいて、上記ユーザとの上記対話を制御する
ことを特徴とする請求項１に記載の音声対話装置。
【請求項３】
上記シナリオは、
上記ユーザとの対話の１ターン分を規定したそれぞれ所定フォーマットの複数種類のブロックを任意の数だけ任意の順番で組み合わせることにより作成された
ことを特徴とする請求項１に記載の音声対話装置。
【請求項４】
上記ブロックとして、
上記ユーザの発話を促す上記一文を再生する第１の再生ステップと、
当該第１の再生ステップの後、上記ユーザの発話待ちとなり、上記ユーザが発話したときに当該発話内容を認識する第１の発話待ち及び認識ステップと、
上記第１の発話待ち及び認識ステップの後、当該発話内容が肯定的及び否定的のいずれであるかによって、予め規定された対応する一文を再生する第２の再生ステップとを有する第１のブロックを具える
ことを特徴とする請求項３に記載の音声対話装置。
【請求項５】
上記ブロックとして、
上記第１の発話待ち及び認識ステップにおいて認識された上記ユーザの発話内容が上記肯定的及び上記否定的のいずれでもなかったときには、上記応答生生成手段に上記ユーザの上記発話内容に応じた上記応答文の生成を依頼する第１の応答文生成依頼ステップを有する第２のブロックを具える
ことを特徴とする請求項４に記載の音声対話装置。
【請求項６】
上記ブロックとして、
上記第１の応答文生成依頼ステップにおける上記依頼に応じて上記応答生成部により生成された上記応答文の属性が第１のループタイプであった場合には、上記第１の発話待ち及び認識ステップに戻る第１のループを有する第３のブロックを具える
ことを特徴とする請求項５に記載の音声対話装置。
【請求項７】
上記ブロックとして、
上記第１の応答文生成依頼ステップにおける上記依頼に応じて上記応答生成部により生成された上記応答文の属性が第２のループタイプであった場合には、上記ユーザの発話待ちとなり、上記ユーザが発話したときに当該発話内容を認識した後に上記応答文生成依頼ステップに戻る第２のループを有する第４のブロックを具える
ことを特徴とする請求項５に記載の音声対話装置。
【請求項８】
上記ブロックとして、
上記第１の応答文生成依頼ステップにおける上記依頼に応じて上記応答生成部により生成された上記応答文の属性を判断する判断ステップと、
当該判断ステップにおいて判断された上記応答文の上記属性が第１のループタイプであった場合には、上記第１の発話待ち及び認識ステップに戻る第１のループと、
当該判断ステップにおいて判断された上記応答文の上記属性が第２のループタイプであった場合には、上記ユーザの発話待ちとなり、上記ユーザが発話したときに当該発話内容を認識した後に上記応答文生成依頼ステップに戻る第２のループを有する第５のブロックを具える
ことを特徴とする請求項５に記載の音声対話装置。
【請求項９】
上記ブロックとして、
上記シナリオの省略可能な上記一文を必要に応じて再生する第２再生ステップと、
上記第２の再生ステップの後、上記ユーザの発話待ちとなり、上記ユーザが発話したときに当該発話内容を認識する第２の発話待ち及び認識ステップと、
上記第２の発話待ち及び認識ステップの後、上記応答生成手段に上記ユーザの上記発話内容に応じた上記応答文の生成を依頼する第２の応答文生成依頼ステップを有する第６のブロックを具える
ことを特徴とする請求項３に記載の音声対話装置。
【請求項１０】
上記ブロックとして、
上記第２の応答文生成依頼ステップにおける上記依頼に応じて上記応答生成部により生成された上記応答文の属性が第３のループタイプであった場合には、上記第２の発話待ち及び認識ステップに戻る第３のループを有する第７のブロックを具える
ことを特徴とする請求項９に記載の音声対話装置。
【請求項１１】
ユーザの発話を音声認識する第１のステップと、
上記音声認識結果に基づき、予め与えられたシナリオに従って上記ユーザとの対話を制御すると共に、必要に応じて上記ユーザの発話内容に応じた応答文を生成する第２のステップと、
再生した上記シナリオの一文又は生成した上記応答文を音声合成処理する第３のステップと
を具え、
上記第２のステップでは、
上記ユーザの発話内容に基づき、必要に応じて上記ユーザの発話内容に応じた上記応答文を生成する
ことを特徴とする音声対話方法。
【請求項１２】
上記第２のステップでは、
生成し上記応答文の属性に基づいて、上記ユーザとの上記対話を制御する
ことを特徴とする請求項１１に記載の音声対話方法。
【請求項１３】
上記シナリオは、
上記ユーザとの対話の１ターン分を規定したそれぞれ所定フォーマットの複数種類のブロックを任意の数だけ任意の順番で組み合わせることにより作成された
ことを特徴とする請求項１１に記載の音声対話方法。
【請求項１４】
上記ブロックとして、
上記ユーザの発話を促す上記一文を再生する第１の再生ステップと、
当該第１の再生ステップの後、上記ユーザの発話待ちとなり、上記ユーザが発話したときに当該発話内容を認識する第１の発話待ち及び認識ステップと、
上記第１の発話待ち及び認識ステップの後、当該発話内容が肯定的及び否定的のいずれであるかによって、予め規定された対応する一文を再生する第２の再生ステップとを有する第１のブロックを具える
ことを特徴とする請求項１３に記載の音声対話方法。
【請求項１５】
上記ブロックとして、
上記第１の発話待ち及び認識ステップにおいて認識された上記ユーザの発話内容が上記肯定的及び上記否定的のいずれでもなかったときには、上記ユーザの上記発話内容に応じた上記応答文を生成する第１の応答文生成ステップを有する第２のブロックを具える
ことを特徴とする請求項１４に記載の音声対話方法。
【請求項１６】
上記ブロックとして、
上記第１の応答文生成ステップにおいて生成した上記応答文の属性が第１のループタイプであった場合には、上記第１の発話待ち及び認識ステップに戻る第１のループを有する第３のブロックを具える
ことを特徴とする請求項１５に記載の音声対話方法。
【請求項１７】
上記ブロックとして、
上記第１の応答文生成ステップにおいて生成した上記応答文の属性が第２のループタイプであった場合には、上記ユーザの発話待ちとなり、上記ユーザが発話したときに当該発話内容を認識した後に上記応答文生成ステップに戻る第２のループを有する第４のブロックを具える
ことを特徴とする請求項１５に記載の音声対話方法。
【請求項１８】
上記ブロックとして、
上記第１の応答文生成ステップにおいて生成した上記応答文の属性を判断する判断ステップと、
当該判断ステップにおいて判断した上記応答文の上記属性が第１のループタイプであった場合には、上記第１の発話待ち及び認識ステップに戻る第１のループと、
当該判断ステップにおいて判断した上記応答文の上記属性が第２のループタイプであった場合には、上記ユーザの発話待ちとなり、上記ユーザが発話したときに当該発話内容を認識した後に上記応答文生成ステップに戻る第２のループを有する第５のブロックを具える
ことを特徴とする請求項１５に記載の音声対話方法。
【請求項１９】
上記ブロックとして、
上記シナリオの省略可能な上記一文を必要に応じて再生する第２再生ステップと、
上記第２の再生ステップの後、上記ユーザの発話待ちとなり、上記ユーザが発話したときに当該発話内容を認識する第２の発話待ち及び認識ステップと、
上記第２の発話待ち及び認識ステップの後、上記ユーザの上記発話内容に応じた上記応答文を生成する第２の応答文生成ステップを有する第６のブロックを具える
ことを特徴とする請求項１３に記載の音声対話方法。
【請求項２０】
上記ブロックとして、
上記第２の応答文生成ステップにおいて生成した上記応答文の属性が第３のループタイプであった場合には、上記第２の発話待ち及び認識ステップに戻る第３のループを有する第７のブロックを具える
ことを特徴とする請求項１９に記載の音声対話方法。
【請求項２１】
ユーザの発話を音声認識する音声認識手段と、
上記音声認識手段の音声認識結果に基づき、予め与えられたシナリオに従って上記ユーザとの対話を制御する対話制御手段と、
上記対話制御手段からの依頼に応じて、上記ユーザの発話内容に応じた応答文を生成する応答生成手段と、
上記対話制御手段により再生された上記シナリオの一文又は上記応答生成手段により生成された上記応答文を音声合成処理する音声合成手段と
を具え、
上記対話制御手段は、
上記ユーザの発話内容に基づき、必要に応じて上記応答生成手段に上記応答文の生成を依頼する
ことを特徴とするロボット装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音声対話装置及び方法並びにロボット装置に関し、例えばエンターテインメントロボットに適用して好適なものである。
【０００２】
【従来の技術】
音声対話装置が人間と音声で行う対話は、その内容に応じて『ストーリのない対話』と、『ストーリのある対話』との２種類の方式に分類される。
【０００３】
このうち『ストーリのない対話』方式は、『人工無能』と呼ばれる対話方式であり、例えばイライザ（Ｅｌｉｚａ）に代表される単純な応答文生成アルゴリズムにより実現される（例えば非特許文献１参照）。
【０００４】
そして『ストーリのない対話』方式では、図３６に示すように、ユーザが何か発話すると音声対話装置がそれを音声認識し（ステップＳＰ９０）、その認識結果に応じた応答文を生成して音声出力する（ステップＳＰ９１）というという処理手順を繰り返す（ステップＳＰ９２）を繰り返すことにより行われる。
【０００５】
この『ストーリのない対話』方式の問題は、ユーザが発話しなければ対話が進行しないという点にある。例えば図３６におけるステップＳＰ９１で生成した応答がユーザの次の発話を促すような内容であれば対話が進むが、そうでない場合に例えばユーザが『言葉に詰まる』状態になると、音声対話装置がユーザの発話を待ち続け対話が進行しない。
【０００６】
また『ストーリのない対話』方式では、対話にストーリがないために、図３６のステップＳＰ９１における応答生成の際に対話の流れを考慮した応答文の生成が難いという問題もある。例えば音声対話装置がユーザのプロフィールを一通り聞いた後にそれを対話に反映させるという処理を行い難い。
【０００７】
一方、『ストーリのある対話』は、予め定められたシナリオに従って音声対話装置が順次発話することにより進められる対話方式であり、音声対話装置が一方的に発話するターンと、音声対話装置がユーザに質問し、これに対するユーザの返答に応じて当該音声対話装置がさらに応答するターンとの組み合わせにより進められる。なお、『ターン』とは、対話時における区切りの良い発話又は対話の１単位をいう。
【０００８】
この対話方式の場合、ユーザは質問に答えればよいので、何を発話すればよいか分からなくなることはない。また質問の内容によってユーザの発話を制限できるため、ユーザの返答に応じて音声対話装置がさらに応答するターンにおける応答文の設計が比較的容易である。例えばこのターンにおける音声対話装置からユーザへの質問を『はい』用と『いいえ』用の２種類だけを用意すればよい。さらに音声対話装置がストーリの流れを利用した応答文を生成することもできるという利点もある。
【０００９】
【特許文献１】
“人工無脳ＲＥＶＩＥＷ”、［ｏｎｌｉｎｅ］、［平成１５年３月１４日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｙｃｆ．ｎａｎｅｔ．ｃｏ．ｊｐ／￣ｓｋａｔｏ／ｍｕｎｏ／ｒｅｖｉｅｗ．ｈｔｍ＞
【００１０】
【発明が解決しようとする課題】
しかしながら、この対話方式にも問題がある。それは、第１に、音声対話装置が予めユーザの返答内容を想定して設計されたシナリオに従った発話しかできないため、ユーザが想定外のことを発話した場合に音声対話装置が応答できないことである。
【００１１】
例えば『はい／いいえ』で答えられる質問に対してユーザが『どっちでもいい』、『そんなことは考えたこともない』などと返答した場合、音声対話装置は何も応答できず、又は応答したとしてもユーザの返答に対する応答としては極めて不適切な応答しかできない。またこのような場合に、これ以降のストーリが不自然となる可能性が高い。
【００１２】
また第２に、音声対話装置が一方的に発話するターンと、音声対話装置がユーザに質問し、これに対するユーザの返答に応じて音声対話装置がさらに応答するターンとの発現割合をそれぞれどの程度に設定するかが難しいという点である。
【００１３】
実際上、かかる音声対話装置において、前者のターンが多すぎると、音声対話装置が一方的に発話しているという印象をユーザに与え、『対話している』という感じをユーザに起こさせない。逆に、後者のターンが多すぎると、アンケートか尋問に答えているような印象をユーザに与え、これも『対話している』という感じをユーザに起こさせない。
【００１４】
従って、このような従来の音声対話装置の問題点を解決することができれば、音声対話装置がユーザと自然な対話を行い得るようにすることができ、実用性及びエンターテインメント性を格段的に向上させ得るものと考えられる。
【００１５】
本発明は以上の点を考慮してなされたもので、ユーザとの自然な対話を行い得る音声対話装置及び音声対話方法並びにロボット装置を提案しようとするものである。
【００１６】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、音声対話装置において、ユーザの発話を音声認識する音声認識手段の音声認識結果に基づき、予め与えられたシナリオに従ってユーザとの対話を制御する対話制御手段と、対話制御手段からの依頼に応じて、ユーザの発話内容に応じた応答文を生成する応答生成手段とを設け、対話制御手段が、ユーザの発話内容に基づき、必要に応じて応答生成手段に応答文の生成を依頼するようにした。
【００１７】
この結果この音声対話装置では、ユーザとの対話が不自然になるのを防止しながら、当該ユーザに『対話している』という印象を与えることができる。
【００１８】
また本発明においては、ユーザの発話を音声認識する第１のステップと、音声認識結果に基づき、予め与えられたシナリオに従ってユーザとの対話を制御すると共に、必要に応じてユーザの発話内容に応じた応答文を生成する第２のステップと、再生したシナリオの一文又は生成した応答文を音声合成処理する第３のステップとを設け、第２のステップでは、ユーザの発話内容に基づき、必要に応じてユーザの発話内容に応じた応答文を生成するようにした。
【００１９】
この結果この音声対話方法によれば、ユーザとの対話が不自然になるのを防止しながら、当該ユーザに『対話している』という印象を与えることができる。
【００２０】
さらに本発明においては、ロボット装置において、ユーザの発話を音声認識する音声認識手段の音声認識結果に基づき、予め与えられたシナリオに従ってユーザとの対話を制御する対話制御手段と、対話制御手段からの依頼に応じて、ユーザの発話内容に応じた応答文を生成する応答生成手段とを設け、対話制御手段が、ユーザの発話内容に基づき、必要に応じて応答生成手段に応答文の生成を依頼するようにした。
【００２１】
この結果このロボット装置では、ユーザとの対話が不自然になるのを防止しながら、当該ユーザに『対話している』という印象を与えることができる。
【００２２】
【発明の実施の形態】
以下図面について、本発明の一実施の形態を詳述する。
【００２３】
（１）本実施の形態によるロボットの全体構成
図１及び図２において、１は全体として本実施の形態による２足歩行型のロボットを示し、胴体部ユニット２の上部に頭部ユニット３が配設されると共に、当該胴体部ユニット２の上部左右にそれぞれ同じ構成の腕部ユニット４Ａ、４Ｂがそれぞれ配設され、かつ胴体部ユニット２の下部左右にそれぞれ同じ構成の脚部ユニット５Ａ、５Ｂがそれぞれ所定位置に取り付けられることにより構成されている。
【００２４】
胴体部ユニット２においては、体幹上部を形成するフレーム１０及び体幹下部を形成する腰ベース１１が腰関節機構１２を介して連結することにより構成されており、体幹下部の腰ベース１１に固定された腰関節機構１２の各アクチュエータＡ１、Ａ２をそれぞれ駆動することによって、体幹上部を図３に示す直交するロール軸１３及びピッチ軸１４の回りにそれぞれ独立に回転させ得るようになされている。
【００２５】
また頭部ユニット３は、フレーム１０の上端に固定された肩ベース１５の上面中央部に首関節機構１６を介して取り付けられており、当該首関節機構１６の各アクチュエータＡ３、Ａ４をそれぞれ駆動することによって、図３に示す直交するピッチ軸１７及びヨー軸１８の回りにそれぞれ独立に回転させ得るようになされている。
【００２６】
さらに各腕部ユニット４Ａ、４Ｂは、それぞれ肩関節機構１９を介して肩ベース１５の左右に取り付けられており、対応する肩関節機構１９の各アクチュエータＡ５、Ａ６をそれぞれ駆動することによって図３に示す直交するピッチ軸２０及びロール軸２１の回りにそれぞれ独立に回転させ得るようになされている。
【００２７】
この場合、各腕部ユニット４Ａ、４Ｂは、それぞれ上腕部を形成するアクチュエータＡ７の出力軸に肘関節機構２２を介して前腕部を形成するアクチュエータＡ８が連結され、当該前腕部の先端に手部２３が取り付けられることにより構成されている。
【００２８】
そして各腕部ユニット４Ａ、４Ｂでは、アクチュエータＡ７を駆動することによって前腕部を図３に示すヨー軸２４の回りに回転させ、アクチュエータＡ８を駆動することによって前腕部を図３に示すピッチ軸２５の回りにそれぞれ回転させることができるようになされている。
【００２９】
これに対して各脚部ユニット５Ａ、５Ｂにおいては、それぞれ股関節機構２６を介して体幹下部の腰ベース１１にそれぞれ取り付けられており、それぞれ対応する股関節機構２６の各アクチュエータＡ９〜Ａ１１をそれぞれ駆動することによって、図３に示す互いに直交するヨー軸２７、ロール軸２８及びピッチ軸２９の回りにそれぞれ独立に回転させ得るようになされている。
【００３０】
この場合各脚部ユニット５Ａ、５Ｂは、それぞれ大腿部を形成するフレーム３０の下端に膝関節機構３１を介して下腿部を形成するフレーム３２が連結されると共に、当該フレーム３２の下端に足首関節機構３３を介して足部３４が連結されることにより構成されている。
【００３１】
これにより各脚部ユニット５Ａ、５Ｂにおいては、膝関節機構３１を形成するアクチュエータＡ１２を駆動することによって、下腿部を図３に示すピッチ軸３５の回りに回転させることができ、また足首関節機構３３のアクチュエータＡ１３、Ａ１４をそれぞれ駆動することによって、足部３４を図３に示す直交するピッチ軸３６及びロール軸３７の回りにそれぞれ独立に回転させ得るようになされている。
【００３２】
一方、胴体部ユニット２の体幹下部を形成する腰ベース１１の背面側には、図４に示すように、当該ロボット１全体の動作制御を司るメイン制御部４０と、電源回路及び通信回路などの周辺回路４１と、バッテリ４５（図５）となどがボックスに収納されてなる制御ユニット４２が配設されている。
【００３３】
そしてこの制御ユニット４２は、各構成ユニット（胴体部ユニット２、頭部ユニット３、各腕部ユニット４Ａ、４Ｂ及び各脚部ユニット５Ａ、５Ｂ）内にそれぞれ配設された各サブ制御部４３Ａ〜４３Ｄと接続されており、これらサブ制御部４３Ａ〜４３Ｄに対して必要な電源電圧を供給したり、これらサブ制御部４３Ａ〜４３Ｄと通信を行うことができるようになされている。
【００３４】
また各サブ制御部４３Ａ〜４３Ｄは、それぞれ対応する構成ユニット内の各アクチュエータＡ１〜Ａ１４と接続されており、当該構成ユニット内の各アクチュエータＡ１〜Ａ１４をメイン制御部４０から与えられる各種制御コマンドに基づいて指定された状態に駆動し得るようになされている。
【００３５】
さらに頭部ユニット３には、図５に示すように、このロボット１の「目」として機能するＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ  ）カメラ５０及び「耳」として機能するマイクロホン５１などの各種外部センサと、「口」として機能するスピーカ５２となどがそれぞれ所定位置に配設され、手部２３や足部３４等には、それぞれ外部センサとしてのタッチセンサ５３が配設されている。さらに制御ユニット４２には、バッテリセンサ５４及び加速度センサ５５等の内部センサが収納されている。
【００３６】
そしてＣＣＤカメラ５０は、周囲の状況を撮像し、得られた画像信号Ｓ１Ａをメイン制御部４０に送出する一方、マイクロホン５１は、各種外部音を集音し、かくして得られた音声信号Ｓ１Ｂをメイン制御部４０に送出する。またタッチセンサ５３は、外部との物理的な接触を検出し、検出結果を圧力検出信号Ｓ１Ｃとしてメイン制御部４０に送出するようになされている。
【００３７】
またバッテリセンサ５４は、バッテリ４５のバッテリ残量を所定周期で検出し、検出結果をバッテリ残量検出信号Ｓ２Ａとしてメイン制御部４０に送出する一方、加速度センサ５６は、３軸方向（ｘ軸、ｙ軸及びｚ軸）の加速度を所定周期で検出し、検出結果を加速度検出信号Ｓ２Ｂとしてメイン制御部４０に送出する。
【００３８】
メイン制御部部４０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）としての内部メモリ４０Ａ等を有するマイクロコンピュータ構成でなり、カメラ５０、マイクロホン５１及びタッチセンサ５３等の各外部センサからそれぞれ与えられる画像信号Ｓ１Ａ、音声信号Ｓ１Ｂ及び圧力検出信号Ｓ１Ｃ等の外部センサ信号Ｓ１と、バッテリセンサ５４及び加速度センサ５５等の各内部センサからそれぞれ与えられるバッテリ残量検出信号Ｓ２Ａ及び加速度検出信号Ｓ２Ｂ等の内部センサ信号Ｓ２とに基づいて、ロボット１の周囲及び内部の状況や、外部との接触の有無などを判断する。
【００３９】
そしてメイン制御部４０は、この判断結果と、予め内部メモリ４０Ａに格納されている制御プログラムと、そのとき装填されている外部メモリ５６に格納されている各種制御パラメータとに基づいて続く行動を決定し、決定結果に基づく制御コマンドを対応するサブ制御部４３Ａ〜４３Ｄに送出する。この結果、この制御コマンドに基づき、そのサブ制御部４３Ａ〜４３Ｄの制御のもとに、対応するアクチュエータＡ１〜Ａ１４が駆動され、かくして頭部ユニット３を上下左右に揺動させたり、腕部ユニット４Ａ、４Ｂを上にあげたり、歩行するなどの行動がロボット１により発現されることとなる。
【００４０】
またメイン制御部４０は、かかるマイクロホン５１から与えられる音声信号Ｓ１Ｂに対する所定の音声認識処理によりユーザの発話内容を認識し、当該認識に応じた音声信号Ｓ３をスピーカ５２に与えることにより、ユーザと対話するための合成音声を外部に出力させる。
【００４１】
このようにしてこのロボット１においては、周囲及び内部の状況等に基づいて自律的に行動することができ、またユーザと対話することもできるようになされている。
【００４２】
（２）対話制御に関するメイン制御部４０の処理
（２−１）対話制御に関するメイン制御部４０の処理内容
次に、対話制御に関するメイン制御部４０の処理内容について説明する。
【００４３】
このロボット１における対話制御に関するメイン制御部４０の処理内容を機能的に分類すると、図６に示すように、ユーザの発話音声を音声認識する音声認識部６０と、当該音声認識部６０の認識結果に基づいて、予め与えられたシナリオ６１に従ってユーザとの対話を制御するシナリオ再生部６２と、シナリオ再生部６２からの依頼に応じて応答文を生成する応答生成部６３と、シナリオ再生部６２により再生されたシナリオ６１の一文又は応答生成部６３により生成された応答文の合成音声を生成する音声合成部６４とに分けることができる。なお、以下において、『一文』とは、発話の区切れの良い１単位を意味するものとする。この『一文』は、必ずしも『１個の文』である必要はない。
【００４４】
ここで、音声認識部６４は、マイクロホン５１（図５）から与えられる音声信号Ｓ１Ｂに基づき所定の音声認識処理を実行することにより当該音声信号Ｓ１Ｂに含まれる言葉を単語単位で認識する機能を有し、認識したこれら単語を文字列データＤ１としてシナリオ再生部６２に送出する。
【００４５】
シナリオ再生部６２は、外部メモリ５６（図５）に格納されて予め与えられた、ユーザとの一連の対話の過程において当該ロボット１が発すべき発話音声（プロンプト）を複数ターン分に渡って規定した複数のシナリオ６１のデータを当該外部メモリ５６から内部メモリ４０Ａに読み出して管理している。
【００４６】
そしてシナリオ再生部６２は、ユーザとの対話時、これら複数のシナリオ６１のうち、ＣＣＤカメラ５０（図５）から与えられる画像信号Ｓ１Ａに基づき図示しない顔認識部が認識及び識別した対話相手となるユーザに応じたシナリオ６１を１つ選択し、これを再生することにより、ロボット１が発話すべき音声に応じた文字列データＤ２を順次音声合成部６４に送出する。
【００４７】
またシナリオ再生部６２は、ユーザが、ロボット１がした質問に対する返答等として予想外の発話を行ったことを音声認識部６０から与えられる文字列データＤ１に基づき確認すると、当該文字列データＤ１及び応答文の生成依頼ＣＯＭを応答生成部６３に送出する。
【００４８】
応答生成部６３は、例えばイライザエンジン等の単純な応答文生成アルゴリズムにより応答文を生成する人工無能モジュールでなり、シナリオ再生部６２から応答文の生成依頼ＣＯＭが与えられると、これと併せて与えられる文字列データＤ１に応じて応答文を生成し、その文字列データＤ３をシナリオ再生部６２を介して音声合成部６４に送出する。
【００４９】
音声合成部６４は、シナリオ再生部６２又は当該シナリオ再生部６２を介して応答生成部６３から与えられる文字列データＤ２、Ｄ３に基づく合成音声を生成し、かくして得られた当該合成音声の音声信号Ｓ３をスピーカ５２（図５）に送出する。この結果この音声信号Ｓ３に基づく合成音声がスピーカ５２から出力されることとなる。
【００５０】
このようにしてこのロボット１においては、『ストーリのない対話』と『ストーリのある対話』とを組み合わせた発話を行うことができ、これにより例えばロボット１の質問に対してユーザが想定外のことを返答した場合においても、これに対して適切に応答できるようになされている。
【００５１】
（２−２）シナリオ６１の構成
（２−２−１）シナリオ６１の全体構成
次に、このロボット１におけるシナリオ６１の構成について説明する。
【００５２】
このロボット１の場合、各シナリオ６１は、図７に示すように、ロボット１が発話すべき一文を含む対話の１ターン分のロボット１の動作を規定した複数種類のブロックＢＬ（ＢＬ１〜ＢＬ８）を任意の数だけ任意の順番で並べることにより構成されている。
【００５３】
ここでこのロボット１の場合、かかるユーザとの対話時における１ターン分のロボット１の発話内容を含む動作を規定したプログラム（以下、これをブロックＢＬ（ＢＬ１〜ＢＬ８）と呼ぶ）として、８種類のブロックＢＬ１〜ＢＬ８がある。以下、これら８種類の各ブロックＢＬ１〜ＢＬ８の構成及びこれら８種類の各ブロックＢＬ１〜ＢＬ８に対するシナリオ再生部６２の再生処理手順について説明する。
【００５４】
なお、以下に説明する『一文シナリオブロックＢＬ１』及び『質問ブロックＢＬ２』は従来も存在するものであり、これ以降に説明する各ブロックＢＬ３〜ＢＬ８が従来は存在しないこのロボット１に固有のものである。
【００５５】
また以下の図９、図１１、図１４、図２３、図２５、図２７、図２９、図３０、図３３及び図３４では、各スクリプト（プログラム構成）を図８に示すルールに従って記述している。シナリオ再生部６２は、各ブロックＢＬの再生処理時、このルールに従って文字列データＤ２を音声合成部６４に送出したり、応答文の生成依頼を応答生成部６３に与えることとなる。
【００５６】
（２−２−２）一文シナリオブロックＢＬ１
一文シナリオブロックＢＬ１は、シナリオ６１の一文のみからなるブロックＢＬであり、例えば図９に示すようなプログラム構成を有する。
【００５７】
そしてシナリオ再生部６２は、一文シナリオブロックＢＬ１の再生時、図１０に示す一文シナリオブロック再生処理手順ＲＴ１に従って、ステップＳＰ１において、ブロック作成者により規定された一文を再生してその文字列データＤ２を音声合成部６４に送出する。そしてシナリオ再生部６２は、この後この一文シナリオブロックＢＬ１に対する再生処理を終了し、この後これに続くブロックＢＬの再生処理に移る。
【００５８】
（２−２−３）質問ブロックＢＬ２
質問ブロックＢＬ２は、ユーザに質問をする場合などに利用されるブロックＢＬであり、例えば図１１に示すようなプログラム構成を有する。この質問ブロックＢＬ２では、ユーザに発話を促し、これに対するユーザの返答が肯定的であったか否かに応じて、ブロック作成者により規定された肯定用又は否定用のプロンプトをロボット１が発話する。
【００５９】
実際上、シナリオ再生部６２は、この質問ブロックＢＬ２の再生時、図１２に示す質問ブロック再生処理手順ＲＴ２に従って、まずステップＳＰ１０において、ブロック作成者により規定された一文を再生してその文字列データＤ２を音声合成部６４に送出した後、続くステップＳＰ１１において、これに対するユーザの返答（発話）を待ち受ける。
【００６０】
そしてシナリオ再生部６２は、やがてユーザが返答したことを音声認識部６０からの文字列データＤ１に基づき認識すると、ステップＳＰ１２に進んで、その返答内容が肯定的なものであったか否かを判断する。
【００６１】
そしてシナリオ再生部６２は、このステップＳＰ１２において肯定結果を得ると、ステップＳＰ１３に進んで、肯定用の応答文を再生してその文字列データＤ２を音声合成部６４に送出した後、この質問ブロックＢＬ２に対する再生処理を終了して、この後これに続くブロックＢＬの再生処理に移る。
【００６２】
これに対してシナリオ再生部６２は、ステップＳＰ１２において否定結果を得ると、ステップＳＰ１４に進んで、ステップＳＰ１１において認識したユーザの返答が否定的なものであったか否かを判断する。
【００６３】
そしてシナリオ再生部６２は、このステップＳＰ１４において肯定結果を得るとステップＳＰ１５に進んで、否定用の応答文を再生してその文字列データＤ２を音声合成部６４に送出した後、この質問ブロックＢＬ２に対する再生処理を終了して、この後これに続くブロックＢＬの再生処理に移る。
【００６４】
これに対してシナリオ再生部６２は、ステップＳＰ１４において否定結果を得ると、そのままこの質問ブロックＢＬ２に対する再生処理を終了して、この後これに続くブロックＢＬの再生処理に移ることとなる。
【００６５】
なおこのロボット１の場合、ユーザの返答が肯定的であるか又は否定的であるかを判断するための手段として、シナリオ再生部６２は、例えば図１３に示すようなセマンティクス定義ファイルを有している。
【００６６】
そしてシナリオ再生部６２は、音声認識部６０から与えられる文字列データＤ１に基づき、このセマンティクス定義ファイルを参照して、ユーザの返答が肯定的（“ｐｏｓｉｔｉｖｅ”）又は否定的（“ｎｅｇａｔｉｖｅ”）のいずれであったかを判断するようになされている。
【００６７】
（２−２−４）第１の質問・応答ブロックＢＬ３（ループなし）
第１の質問・応答ブロックＢＬ３は、上述の質問ブロックＢＬ２と同様に、ユーザに質問をする場合などに利用されるブロックＢＬであり、例えば図１４に示すようなプログラム構成を有する。この第１の質問・応答ブロックＢＬ３は、質問等に対するユーザの返答が肯定的でも否定的でもなかった場合においても、ロボット１が対応できるようになされたものである。
【００６８】
実際上、シナリオ再生部６２は、この第１の質問・応答ブロックＢＬ３の再生時、図１５に示す第１の質問・応答ブロック再生処理手順ＲＴ３に従って、まずステップＳＰ２０〜ステップＳＰ２５については上述の質問ブロック再生処理手順ＲＴ２（図１２）のステップＳＰ１０〜ステップＳＰ１４と同様に処理する。
【００６９】
そしてシナリオ再生部６２は、ステップＳＰ２４において否定結果を得た場合には、応答文の生成依頼ＣＯＭと、作成すべき応答文の生成ルールの種類（ＳＰＥＣＩＦＩＣ，ＧＥＮＥＲＡＬ，ＬＡＳＴ，ＳＰＥＣＩＦＩＣ  ＳＴ，ＧＥＮＥＲＡＬ  ＳＴ，ＬＡＳＴ）を表す例えば図１６に示すようなタグと、そのとき音声認識部６０から与えられた文字列データＤ１と共に応答生成部６３（図６）に与える。なお、このときシナリオ再生部６２がどのようなタグを応答生成部６３に与えるかは、ブロック作成者により既に定められている（例えば図１４のノード番号『１０６０』の行参照）。
【００７０】
このとき応答生成部６３は、生成する応答文の生成ルールの各種類にそれぞれ対応させて、例えば図１７〜図２１に示すような対応する応答文の生成ルールを規定した複数のファイルを有している。また応答生成部６３は、これらファイルとシナリオ再生部６２から与えられるタグとを対応付けた図２２に示すようなルールテーブルを有している。
【００７１】
かくして応答生成部６３は、ファイルとシナリオ再生部６２から与えられるタグ及びそのとき音声認識部６０から与えられた文字列データＤ１に基づき、このルールテーブルを参照して、対応する応答文の生成ルールに従って応答文を生成し、その文字列データＤ３をシナリオ再生部６２を介して音声合成部６４に与える。
【００７２】
そしてシナリオ再生部６２は、その後この質問・応答ブロックＢＬ３に対する再生処理を終了して、この後これに続くブロックＢＬの再生処理に移る。
【００７３】
（２−２−５）第２の質問・応答ブロックＢＬ４（ループタイプ１）
第２の質問・応答ブロックＢＬ４は、質問ブロックＢＬ２と同様に、ユーザに質問をする場合などに利用されるブロックＢＬであり、例えば図２３に示すようなプログラム構成を有する。この第４のブロックＢＬ４は、質問等に対するユーザの返答が肯定的でも否定的でもなかった場合に応答生成部６３において生成される応答文の内容を考慮して、対話が不自然とならないようにするために用いられる。
【００７４】
具体的に、例えば図１５について上述した第１の質問・応答ブロック再生処理手順ＲＴ３のステップＳＰ２６において、応答生成部６３が「同じことを別の言葉で言ってみてよ。」という依頼文や、「それって本当なの？」という疑問文を生成した場合に、シナリオ再生部６２がステップＳＰ２６の処理を終了後、次のブロックＢＬの再生処理に進んでしまうと、ユーザがその依頼や質問に答えることができず、対話が不自然になる。
【００７５】
そこでこの第２の質問・応答ブロックＢＬ４では、応答生成部６３が応答文を生成する際に、当該応答文としてユーザが『はい』又は『いいえ』で答えられる質問文を生成する可能性がある場合に、これに対するユーザの返答を受け付け得るようにしている。
【００７６】
実際上、シナリオ再生部６２は、この第２の質問・応答ブロックＢＬ２の再生時、図２４に示す第２の質問・応答ブロック再生処理手順ＲＴ４に従って、ステップＳＰ３０〜ステップＳＰ３６については上述の第３のブロック再生処理手順ＲＴ３のステップＳＰ２０〜ステップＳＰ２６と同様に処理する。
【００７７】
そしてシナリオ再生部６２は、ステップＳＰ３６において応答生成部６３に応答文の生成を依頼し、かくして応答生成部６３が生成した応答文の文字列データＤ３を受け取ると、これを音声合成部６４に送出する一方、その応答文がループタイプのものであるか否かを判断する。
【００７８】
すなわち応答生成部６３は、シナリオ再生部６２から依頼を受けて生成した応答文の文字列データＤ３をシナリオ再生部６２に送出する際、その応答文が、ユーザが『はい』又は『いいえ』で答えられる質問文等である場合には、第１のループタイプのものである旨の属性情報を当該文字列データＤ３に付加し、『はい』又は『いいえ』で答えられない依頼文等である場合には、第２のグループタイプのものである旨の属性情報を当該文字列データＤ３に付加し、ユーザが返答する必要のない通常文である場合には非ループタイプのものである旨の属性情報を当該文字列データＤ３に付加するようになされている。
【００７９】
かくしてシナリオ再生部６２は、この第２の質問・応答ブロックＢＬ４の再生時、第２の質問・応答ブロック再生処理手順ＲＴ４のステップＳＰ３６において応答生成部６３から応答文の文字列データＤ３と共に与えられる当該応答文の属性情報に基づいて、その応答文が第１のループタイプのものである場合にはステップＳＰ３１に戻って、この後ステップＳＰ３７において肯定結果を得るまでステップＳＰ３１〜ステップＳＰ３６の処理を繰り返す。
【００８０】
そしてシナリオ再生部６２は、やがて応答生成部６３が非ループタイプの応答文を生成することによりステップＳＰ３７において肯定結果を得ると、この第２の質問・応答ブロックＢＬ４に対する再生処理を終了して、この後これに続くブロックＢＬの再生処理に移る。
【００８１】
（２−２−６）第３の質問・応答ブロックＢＬ５（ループタイプ２）
第３の質問・応答ブロックＢＬ５は、第２の質問・応答ブロックＢＬ４と同様に、質問等に対するユーザの返答が肯定的でも否定的でもなかった場合に応答生成部６３において生成される応答文の内容を考慮して、対話が不自然とならないようにするために用いられるブロックＢＬであり、例えば図２５に示すようなプログラム構成を有する。
【００８２】
この場合、この第３の質問・応答ブロックＢＬ５では、応答生成部６３が応答文を生成する際に、当該応答文としてユーザが『はい』又は『いいえ』で答えられるものではない、例えば「同じことを別の言葉で言ってみてよ。」という依頼文や、「それについてどう思っているの？」という疑問文を生成した場合に、これに対するユーザの返答を受け付け、これに対してロボット１が応答できるようにしている。
【００８３】
実際上、シナリオ再生部６２は、この第３の質問・応答ブロックＢＬ５の再生時、図２６に示す第３の質問・応答ブロック再生処理手順ＲＴ５に従って、ステップＳＰ４０〜ステップＳＰ４６については上述の第１の質問・応答ブロック再生処理手順ＲＴ３（図１５）のステップＳＰ２０〜ステップＳＰ２６と同様に処理する。
【００８４】
次いでシナリオ再生部６２は、ステップＳＰ４７に進んで、応答生成部６３から与えられた文字列データＤ３に付加されていた属性情報に基づいて、当該文字列データＤ３に基づく応答文が上述の第２のループタイプのものであるか否かを判断する。
【００８５】
そしてシナリオ再生部６２は、その応答文が第２のループタイプのものである場合にはステップＳＰ４６に戻って、この後ステップＳＰ４７において否定結果を得るまでステップＳＰ４６〜ＳＰ４８−ＳＰ４６の処理を繰り返す。
【００８６】
そしてシナリオ再生部６２は、やがて応答生成部６３が非ループタイプの応答文を生成することによりステップＳＰ４７において肯定結果を得ると、この第３の質問・応答ブロックＢＬ５に対する再生処理を終了して、この後これに続くブロックＢＬの再生処理に移る。
【００８７】
（２−２−７）第４の質問・応答ブロックＢＬ６（ループタイプ３）
第４の質問・応答ブロックＢＬ６は、第２及び第３の質問・応答ブロックＢＬ４、ＢＬ５と同様に、質問等に対するユーザの返答が肯定的でも否定的でもなかった場合に応答生成部６３において生成される応答文の内容を考慮して、対話が不自然とならないようにするために用いられるブロックであり、例えば図２７に示すようなプログラム構成を有する。
【００８８】
この場合、この第４の質問・応答ブロックＢＬ６では、応答生成部６３により生成される応答文が上述の第１のループタイプのものである場合及び第２のループタイプのものである場合のいずれの場合にも対応できるようになされている。
【００８９】
実際上、シナリオ再生部６２は、この第４の質問・応答ブロックのＢＬ６再生時、図２８に示す第４の質問・応答ブロック再生処理手順ＲＴ６に従って、ステップＳＰ５０〜ステップＳＰ５６については上述の第１の質問・応答ブロック再生処理手順ＲＴ３（図１５）のステップＳＰ２０〜ステップＳＰ２６までと同様に処理する。
【００９０】
そしてシナリオ再生部６２は、ステップＳＰ５６の処理後、ステップＳＰ５７に進んで、応答生成部６３から与えられた文字列データＤ３に付加されていた属性情報に基づいて、生成された応答文が上述の第１及び第２のループタイプのいずれかであるか否かを判断する。
【００９１】
またシナリオ再生部６２は、その応答文が第１及び第２のループタイプのいずれかである場合にはステップＳＰ５８に進んで、当該応答文が第１のループタイプのものであるか否かを判断する。
【００９２】
そしてシナリオ再生部６２は、このステップＳＰ５８において肯定結果を得るとステップＳＰ５１に戻る。またシナリオ再生部６２は、ステップＳＰ５８において否定結果を得ると、ステップＳＰ５９に進んでユーザの返答を待ち受け、やがて返答があった場合にはこれを音声認識部６０からの文字列データＤ１に基づいて認識した後ステップＳＰ５６に戻る。そしてシナリオ再生部６２は、この後ステップＳＰ５７において否定結果を得るまで、ステップＳＰ５１〜ステップＳＰ５９の処理を繰り返す。
【００９３】
そしてシナリオ再生部６２は、やがて応答生成部６３が非ループタイプの応答文を生成することによりステップＳＰ５７において肯定結果を得ると、この第４の質問・応答ブロックＢＬ６に対する再生処理を終了して、この後これに続くブロックＢＬの再生処理に移る。
【００９４】
（２−２−８）第１の対話ブロックＢＬ７（ループなし）
第１の対話ブロックＢＬ７は、ユーザが発話する機会を追加するために用いられるブロックＢＬであり、例えば図２９又は図３０に示すようなプログラム構成を有する。なお図２９は、プロンプトがある場合のプログラム構成例であり、図３０は、プロンプトがない場合のプログラム構成例である。
【００９５】
そしてこの第１の対話ブロックＢＬ７を、例えば図９及び図１０について上述した一文シナリオブロックＢＬ１の直後にもってくることで、対話のターンを増やして、ユーザに『対話をしている』という印象を与えることができる。
【００９６】
また例えばロボット１が『そうだよね。』、『違うかな』、『どう思う』といった一言（プロンプト）を再生することでユーザは発話しやすくなる。そこでこの第７のブロックＢＬ７では、ユーザの発話待ちの前に図に示すような一文（プロンプト）を再生することとしている。ただし、この一文は直前に再生するブロックＢＬにおけるロボット１の発話内容によっては不要となることもあるため、省略可能としている。
【００９７】
実際上、シナリオ再生部６２は、この第１の対話ブロックＢＬ７の再生時、図３１に示す第１の対話ブロック再生処理手順ＲＴ７に従って、まずステップＳＰ６０において、ブロック作成者により必要に応じて規定された例えば図３２に示すような省略可能な１つのプロンプトを再生した後、続くステップＳＰ６１において、これに対するユーザの発話を待ち受ける。
【００９８】
そしてシナリオ再生部６２は、やがてユーザが発話したことを音声認識部６０からの文字列データＤ１に基づき認識すると、ステップＳＰ６２に進んで、当該文字列データＤ１と共に応答文の生成依頼ＣＯＭを応答生成部６３に与える。
【００９９】
この結果、これら文字列データＤ１及び応答文の生成依頼ＣＯＭに基づいて、応答生成部６３において応答文が生成され、その文字列データＤ３がシナリオ再生部６２を介して音声合成部６４に与えられる。
【０１００】
そしてシナリオ再生部６２は、その後この第１の対話ブロックＢＬ７に対する再生処理を終了して、この後これに続くブロックＢＬの再生処理に移る。
【０１０１】
（２−２−９）第２の対話ブロックＢＬ８（ループあり）
第２の対話ブロックＢＬ８は、第１の対話ブロックＢＬ７と同様に、ユーザが発話する機会を追加するために用いられるブロックＢＬであり、例えば図３３又は図３４に示すようなプログラム構成を有する。なお図３３は、プロンプトがある場合のプログラム構成例であり、図３４は、プロンプトがない場合のプログラム構成例である。
【０１０２】
この第２の対話ブロックＢＬ８は、図３１について上述した第１の対話ブロック再生処理手順ＲＴ７のステップＳＰ６２において応答生成部６３が応答文として疑問文や依頼文を生成する可能性がある場合に有効なものである。
【０１０３】
実際上、シナリオ再生部６２は、この第２の対話ブロックＢＬ８の再生時、図３５に示す第８のブロック再生処理手順ＲＴ８に従って、ステップＳＰ７０〜ステップＳＰ７２については上述した第１の対話ブロック再生処理手順ＲＴ７（図３１）のステップＳＰ６０〜ステップＳＰ６２と同様に処理する。
【０１０４】
そしてシナリオ再生部６２は、続くステップＳＰ７３において、応答生成部６３から与えられる文字列データＤ３に付加された上述した属性情報に基づいて、その応答文が第２のループタイプのものであるか否かを判断する。
【０１０５】
シナリオ再生部６２は、このステップＳＰ７３において肯定結果を得ると、ステップＳＰ７１に戻り、この後ステップＳＰ７３において否定結果を得るまでステップＳＰ７１〜ステップＳＰ７３のループを繰り返す。
【０１０６】
そしてシナリオ再生部６２は、やがて応答生成部６３が非ループタイプの応答文を生成することによりステップＳＰ７３において否定結果を得ると、この第２の対話ブロックＢＬ８に対する再生処理を終了して、この後これに続くブロックＢＬの再生処理に移る。
【０１０７】
（３）シナリオ６１の作成方法
次に、かかる第１〜第９のブロックＢＬ１〜ＢＬ９を用いたシナリオ６１の作成方法について説明する。
【０１０８】
上述の各種構成のブロックＢＬ１〜ＢＬ９を用いたシナリオ６１の作成方法としては、シナリオ６１を全く初めから作成する第１のシナリオ作成方法と、既存のシナリオ６１に変更を加えることで新たなシナリオ６１を作成する第２のシナリオ作成方法とがある。
【０１０９】
この場合、第１のシナリオ作成方法では、図７について上述したように、８種類の各種ブロックＢＬ１〜ＢＬ８を任意の数だけ任意の順番で直列に並べ、シナリオ作成者の好みに応じて各ブロックＢＬにおける必要な一文をそれぞれ規定することにより、所望のシナリオ６１を作成することができる。
【０１１０】
また第２のシナリオ作成方法では、上述の一文シナリオブロックＢＬ１及び質問ブロックＢＬ２からなる既存のシナリオ６１に対して、
▲１▼質問ブロックＢＬ２を、第１〜第４の質問・応答ブロックＢＬ３〜ＢＬ６（前後のブロックＢＬの内容によっては第１又は第２の対話ブロックＢＬ７、ＢＬ８であっても良い）のいずれかと交換する
▲２▼一文シナリオブロックＢＬ１の直後に、第１又は第２の対話ブロックＢＬ７、ＢＬ８（前後のブロックＢＬの内容によっては一文シナリオブロックＢＬ１、質問ブロックＢＬ２、又は第１〜第４の質問・応答ブロックＢＬ３〜ＢＬ６であっても良い）を１個以上挿入する
ことによって、新たなシナリオ６１を簡易に作成することができる。
【０１１１】
（４）本実施の形態の動作及び効果
以上の構成において、このロボット１では、シナリオ再生部６２の制御のもとに、通常時にはシナリオ６１に従ってユーザとの間で『ストーリのある対話』を行う一方、ユーザがシナリオ６１において想定されていない返答をしたときなどには、応答生成部６３により生成された応答文により『ストーリのない対話』を行う。
【０１１２】
従って、このロボット１では、ユーザがシナリオ６１において想定されていない返答をした場合にあっても、これに対して適切な応答を返すことができ、これ以降のストーリが不自然となるのを有効に防止することができる。
【０１１３】
またこのロボット１では、シナリオ６１が、ロボット１が発話すべき一文を含む対話の１ターン分のロボット１の動作を規定した複数種類のブロックＢＬを任意の数だけ任意の順番で並べることにより作成できるようになされているため、その作成が容易であり、また既存のシナリオ６１を利用して少ない手間で面白いシナリオを容易に作成することもできる。
【０１１４】
以上の構成によれば、シナリオ再生部６２の制御のもとに、通常時にはシナリオ６１に従ってユーザとの間で『ストーリのある対話』を行う一方、ユーザがシナリオ６１において想定されていない返答をしたときなどには、応答生成部６３により生成された応答文により『ストーリのない対話』を行うようにしたことにより、ユーザとの対話が不自然になるのを防止しながら、当該ユーザに『対話している』という印象を与えることができ、かくしてユーザとの自然な対話を行い得るロボットを実現できる。
【０１１５】
（５）他の実施の形態
なお上述の実施の形態においては、本発明を図１〜図５のように構成されたロボット１に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成のロボット装置や、ロボット装置以外の人間と対話を行うこの他種々の対話装置に広く適用することができる。
【０１１６】
また上述の実施の形態においては、シナリオ６１を構成するブロックＢＬとして上述した８種類のものを用意するようにした場合について述べたが、本発明はこれに限らず、これら８種類以外の構成を有するブロックによりシナリオ６１を作成したり、これら８種類に加えて他の種類のブロックを用意してシナリオ６１を作成するようにしても良い。
【０１１７】
さらに上述の実施の形態においては、応答生成部６３を１つだけ用いるようにした場合について述べたが、本発明はこれに限らず、例えば第３〜第８のブロックＢＬ３〜ＢＬ８において応答生成部６３に応答文の生成を依頼するステップ（ステップＳＰ２６、ＳＰ３６、ＳＰ４６、ＳＰ５６、ＳＰ６２、ＳＰ７２）にそれぞれ対応させて専用の応答生成部を設けるようにしても良く、また『疑問文や依頼文を生成しない』応答生成部と、『疑問文や依頼文を生成する可能性のある』応答生成部との２種類を用意して、これらを使い分けるようにしても良い。
【０１１８】
さらに上述の実施の形態においては、第２〜第６のブロックＢＬ２〜ＢＬ６において、ユーザの返答に対する肯定及び否定の判定のステップ（ステップＳＰ１２、ＳＰ１４、ＳＰ２２、ＳＰ２４、ＳＰ３２、ＳＰ３４、ＳＰ４２、ＳＰ４４、ＳＰ５２、ＳＰ５４）を設けるようにした場合について述べたが、本発明はこれに限らず、これらに代えて別の言葉とのマッチングを行うステップを設けるようにしても良い。
【０１１９】
具体的には、例えば、ロボット１がユーザに『君は何県で生まれたの？』という質問をし、これに対するユーザの返答の音声認識結果がどの都道府県と一致するかを判定するようにすることもできる。
【０１２０】
さらに上述の実施の形態においては、第４〜第６及び第８のブロックＢＬ４〜ＢＬ６、ＢＬ８におけるループ（ステップＳＰ３７、ＳＰ４７、ＳＰ５７、ＳＰ７３）の回数を無制限とするようにした場合について述べたが、本発明はこれに限らず、ループの回数をカウントするカウンタを設け、当該カウンタのカウント数に基づいてループの回数を制限するようにしても良い。
【０１２１】
さらに上述の実施の形態においては、ユーザの発話待ち（例えば第２のブロック再生処理手順ＲＴ２におけるステップＳＰ１１）の待ち時間を無制限とするようにした場合について述べたが、本発明はこれに限らず、当該待ち時間に制限を設けるようにしても良い。例えば、ロボット１が発話した後、ユーザが１０秒間発話しなかった場合には、予め用意されたタイムアウト用の応答を再生して次のブロックＢＬに対する再生処理に移るようにしても良い。
【０１２２】
さらに上述の実施の形態においては、ブロックＢＬを直列に並べてシナリオ６１を構成するようにした場合について述べたが、本発明はこれに限らず、ブロックＢＬを並列に並べるなどして、シナリオ６１に分岐をもうけるようにしても良い。
【０１２３】
さらに上述の実施の形態においては、ロボット１がユーザとの対話時に音声のみを発現するようにした場合について述べたが、本発明はこれに限らず、音声に加えてモーション（動き）をも発現するようにしても良い。
【０１２４】
さらに上述の実施の形態においては、ユーザからの依頼を受け付けないようにした場合について述べたが、本発明はこれに限らず、例えば『終了して』や『もう一度言って』などのユーザからの依頼を受け付けえるようにシナリオ６１を作成するようにしても良い。
【０１２５】
さらに上述の実施の形態においては、ユーザの発話を音声認識する音声認識手段としての音声認識部６０と、音声認識部６０の音声認識結果に基づき、予め与えられたシナリオ６１に従ってユーザとの対話を制御する対話制御手段としてのシナリオ再生部６２と、シナリオ再生部６２からの依頼に応じて、ユーザの発話内容に応じた応答文を生成する応答生成手段としての応答生成部６３と、シナリオ再生部６２により再生されたシナリオ６１の一文又は応答生成部６３により生成された応答文を音声合成処理する音声合成手段としての音声合成部６４とを図６のように組み合わせるようにした場合について述べたが、本発明はこれに限らず、例えば応答生成部６３から出力される文字列データＤ３を直接音声合成部６４に与えるようにしても良く、これら音声認識部６０、シナリオ再生部６２、応答生成部６３及び音声合成部６４の組み合わせ方としてはこの他種々の組み合わせ方を広く適用することができる。
【０１２６】
【発明の効果】
上述のように本発明によれば、音声対話装置において、ユーザの発話を音声認識する音声認識手段の音声認識結果に基づき、予め与えられたシナリオに従ってユーザとの対話を制御する対話制御手段と、対話制御手段からの依頼に応じて、ユーザの発話内容に応じた応答文を生成する応答生成手段とを設け、対話制御手段が、ユーザの発話内容に基づき、必要に応じて応答生成手段に応答文の生成を依頼するようにしたことにより、ユーザとの対話が不自然になるのを防止しながら、当該ユーザに『対話している』という印象を与えることができ、かくしてユーザとの自然な対話を行い得る音声対話装置を実現できる。
【０１２７】
また本発明によれば、ユーザの発話を音声認識する第１のステップと、音声認識結果に基づき、予め与えられたシナリオに従ってユーザとの対話を制御すると共に、必要に応じてユーザの発話内容に応じた応答文を生成する第２のステップと、再生したシナリオの一文又は生成した応答文を音声合成処理する第３のステップとを設け、第２のステップでは、ユーザの発話内容に基づき、必要に応じてユーザの発話内容に応じた応答文を生成するようにしたことにより、ユーザとの対話が不自然になるのを防止しながら、当該ユーザに『対話している』という印象を与えることができ、かくしてユーザとの自然な対話を行い得る音声対話方法を実現できる。
【０１２８】
さらに本発明によれば、ロボット装置において、ユーザの発話を音声認識する音声認識手段の音声認識結果に基づき、予め与えられたシナリオに従ってユーザとの対話を制御する対話制御手段と、対話制御手段からの依頼に応じて、ユーザの発話内容に応じた応答文を生成する応答生成手段とを設け、対話制御手段が、ユーザの発話内容に基づき、必要に応じて応答生成手段に応答文の生成を依頼するようにしたことにより、ユーザとの対話が不自然になるのを防止しながら、当該ユーザに『対話している』という印象を与えることができ、かくしてユーザとの自然な対話を行い得るロボット装置を実現できる。
【図面の簡単な説明】
【図１】本実施の形態によるロボットの外観構成を示す斜視図である。
【図２】本実施の形態によるロボットの外観構成を示す斜視図である。
【図３】本実施の形態によるロボットの外観構成の説明に供する概念図である。
【図４】本実施の形態によるロボットの内部構成の説明に供する概念図である。
【図５】本実施の形態によるロボットの内部構成の説明に供するブロック図である。
【図６】対話制御に関するメイン制御部の処理内容の説明に供するブロック図である。
【図７】シナリオ構成の説明に供する概念図である。
【図８】各ブロックのスクリプトフォーマットを示す略線図である。
【図９】一文シナリオブロックのプログラム構成例を示す略線図である。
【図１０】一文シナリオブロック再生処理手順を示すフローチャートである。
【図１１】質問ブロックのプログラム構成例を示す略線図である。
【図１２】質問ブロック再生処理手順を示すフローチャートである。
【図１３】セマンティクス定義ファイル例を示す略線図である。
【図１４】第１の質問・応答ブロックのプログラム構成例を示す略線図である。
【図１５】第１の質問・応答ブロック再生処理手順を示すフローチャートである。
【図１６】応答生成部で使用されるタグの種類を示す略線図である。
【図１７】応答文生成ルールファイル例を示す略線図である。
【図１８】応答文生成ルールファイル例を示す略線図である。
【図１９】応答文生成ルールファイル例を示す略線図である。
【図２０】応答文生成ルールファイル例を示す略線図である。
【図２１】応答文生成ルールファイル例を示す略線図である。
【図２２】ルールテーブル例を示す略線図である。
【図２３】第２の質問・応答ブロックのプログラム構成例を示す略線図である。
【図２４】第２の質問・応答ブロック再生処理手順を示すフローチャートである。
【図２５】第３の質問・応答ブロックのプログラム構成例を示す略線図である。
【図２６】第３の質問・応答ブロック再生処理手順を示すフローチャートである。
【図２７】第４の質問・応答ブロックのプログラム構成例を示す略線図である。
【図２８】第４の質問・応答ブロック再生処理手順を示すフローチャートである。
【図２９】第１の対話ブロックのプログラム構成例を示す略線図である。
【図３０】第１の対話ブロックのプログラム構成例を示す略線図である。
【図３１】第１の対話ブロック再生処理手順を示すフローチャートである。
【図３２】挿入プロンプトの一覧を示す概念図である。
【図３３】第２の対話ブロックのプログラム構成例を示す略線図である。
【図３４】第２の対話ブロックのプログラム構成例を示す略線図である。
【図３５】第２の対話ブロック再生処理手順を示すフローチャートである。
【図３６】人工無能の対話方式の説明に供するフローチャートである。
【符号の説明】
１……ロボット、４０……メイン制御部、４０Ａ……内部メモリ、５１……マイクロホン、５２……スピーカ、６０……音声認識部、６１……シナリオ、６２……シナリオ再生部、６３……応答生成部、６４……音声合成部、Ｄ１〜Ｄ３……文字列データ、Ｓ３……音声信号、ＢＬ、ＢＬ１〜ＢＬ９……ブロック、ＲＴ１〜ＲＴ９……ブロック再生処理手順。
【図１】
2004287016.tif 000003
【図２】
2004287016.tif 000004
【図３】
2004287016.tif 000005
【図４】
2004287016.tif 000006
【図５】
2004287016.tif 000007
【図６】
2004287016.tif 000008
【図７】
2004287016.tif 000009
【図８】
2004287016.tif 000010
【図９】
2004287016.tif 000011
【図１０】
2004287016.tif 000012
【図１１】
2004287016.tif 000013
【図１２】
2004287016.tif 000014
【図１３】
2004287016.tif 000015
【図１４】
2004287016.tif 000016
【図１５】
2004287016.tif 000017
【図１６】
2004287016.tif 000018
【図１７】
2004287016.tif 000019
【図１８】
2004287016.tif 000020
【図１９】
2004287016.tif 000021
【図２０】
2004287016.tif 000022
【図２１】
2004287016.tif 000023
【図２２】
2004287016.tif 000024
【図２３】
2004287016.tif 000025
【図２４】
2004287016.tif 000026
【図２５】
2004287016.tif 000027
【図２６】
2004287016.tif 000028
【図２７】
2004287016.tif 000029
【図２８】
2004287016.tif 000030
【図２９】
2004287016.tif 000031
【図３０】
2004287016.tif 000032
【図３１】
2004287016.tif 000033
【図３２】
2004287016.tif 000034
【図３３】
2004287016.tif 000035
【図３４】
2004287016.tif 000036
【図３５】
2004287016.tif 000037
【図３６】
2004287016.tif 000038