(57)【要約】      （修正有）【課題】対話破綻の解消が期待できる、対話ロボットおよびロボット制御プログラムを提供する。【解決手段】対話ロボットは、マイクから入力される音声を認識する音声認識機能を有し、その認識結果に応じてスクリプトに従った発話を行う。対話ロボットは、対話者からの応答発話の音声認識の信頼度(cmscore)を判断する。破綻回数カウンタは対話が破綻した破綻回数(error)をカウントする。対話ロボットは、信頼度が低いと判断したとき、破綻回数に応じて、単純な聞き返し、社会的繋がりに基づく聞き返しおよび心情的聞き返しを実行する。それによって、対話破綻の修復が図れる。【選択図】図６
2018173456.tif 000002
【特許請求の範囲】
【請求項１】
マイクから入力される音声を認識する音声認識機能を有し、その認識結果に応じてスクリプトに従った発話を行う、対話ロボットであって、
対話者からの応答発話の認識の信頼度を判断する信頼度判断部、
対話が破綻した破綻回数をカウントする破綻回数カウンタ、および
前記信頼度判断部によって信頼度が低いと判断したとき、前記破綻回数に応じて異なる態様で聞き返しを行う聞き返し部を備える、対話ロボット。
【請求項２】
前記聞き返し部による聞き返しの聞き返し回数をカウントする聞き返し回数カウンタをさらに備え、
前記聞き返し部は前記聞き返し回数が所定値未満のとき前記聞き返しを実行し、所定値以上のときには聞き返しを実行しない、請求項１記載の対話ロボット。
【請求項３】
前記聞き返し回数が前記所定値以上の場合、話題をスキップしたスキップ回数が所定値より大きいとき対話を終了する対話終了部をさらに備える、請求項２記載の対話ロボット。
【請求項４】
前記聞き返し部は、前記破綻回数の少ない順に、単純な聞き返し、社会的繋がりに基づく聞き返しおよび心情的聞き返しを行う、請求項１ないし３のいずれかに記載の対話ロボット。
【請求項５】
マイクから入力される音声を認識する音声認識機能を有し、その認識結果に応じてスクリプトに従った発話を行う対話ロボットのコンピュータによって実行されるロボット制御プログラムであって、前記コンピュータを、
対話者からの応答発話の認識の信頼度を判断する信頼度判断部、および
前記信頼度判断部によって信頼度が低いと判断したとき、対話が破綻した破綻回数に応じて異なる態様で聞き返しを行う聞き返し部
として機能させる、ロボット制御プログラム。
【請求項６】
マイクから入力される音声を認識する音声認識機能を有し、その認識結果に応じてスクリプトに従った発話を行う対話ロボットのコンピュータによって実行される対話ロボットの制御方法であって、前記コンピュータが、
対話者からの応答発話の認識の信頼度を判断する信頼度判断ステップ、および
前記信頼度判断部によって信頼度が低いと判断したとき、対話が破綻した破綻回数に応じて異なる態様で聞き返しを行う聞き返しステップを実行する、対話ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は対話ロボットおよびロボット制御プログラムに関し、特にたとえば、マイクから入力される人の発話に含まれるキーワードを認識して発話する、対話ロボットおよびロボット制御プログラムに関する。
【背景技術】
【０００２】
現在、ロボットの対話における音声認識や応答生成システムは完全ではなく、音声認識の失敗や不適切な応答生成が生じ、その結果対話破綻が引き起こされる。チャットボットのような質問と回答が対になっているような非タスク指向型の対話においてこのような破綻による問題は一時的なものであるが、対話自体に何か目的がある場合や、ストーリー性のある対話においては、このような問題はその後の対話や互いの関係性にまで影響を及ぼしかねない大きな問題である。対話破綻を解消するために音声認識技術や応答生成の精度の向上を目指した研究はいくつかある。
【０００３】
特許文献１には、音声認識の精度向上のために、複数の音声認識処理部でそれぞれ音声認識を開始し、各音声認識処理部は、いずれかの音声認識処理部によって音声が認識されるまで繰り返し音声認識を実施する、ロボットが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2013-257598号 [G10L 15/32, G01L 15/00］
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ロボットによる音声認識の精度を高めたとしても、対話破綻は人間同士の対話においても発生するため、これを完全になくすことは難しい。対話破綻の解消には非常に高度な対話能力が不可欠であり、人間にはこれが備わっているものの、従来のロボットにはこのような高度な対話技術は搭載されていない。
【０００６】
さらに、ロボットだけで対話破綻を技術的に解決することは困難であるため、対話を円滑に進めるためには、はっきり話したり、簡単な言い回しをしたりするなどの人間側の協力が不可欠となる。しかしながら、ロボットはあくまで無機物と認識されることが多く、結果として、人間が対話破綻の責任を一方的にロボットに押し付けてしまうため、人間の協力行動を引き出すことは難しい。
【０００７】
それゆえに、この発明の主たる目的は、新規な、対話ロボットおよびロボット制御プログラムを提供することである。
【０００８】
この発明の他の目的は、対話破綻の修復が期待できる、対話ロボットおよびロボット制御プログラムを提供することである。
【課題を解決するための手段】
【０００９】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【００１０】
第１の発明は、マイクから入力される音声を認識する音声認識機能を有し、その認識結果に応じてスクリプトに従った発話を行う、対話ロボットであって、対話者からの応答発話の認識の信頼度を判断する信頼度判断部、対話が破綻した破綻回数をカウントする破綻回数カウンタ、および信頼度判断部によって信頼度が低いと判断したとき、破綻回数に応じて異なる態様で聞き返しを行う聞き返し部を備える、対話ロボットである。
【００１１】
第１の発明では、対話ロボット（１０：実施例において相当する要素を例示する参照符号。以下同じ。）は、マイク（５２）を有し、音声認識機能によってマイクから入力される音声を認識し、その認識結果に含まれるキーワードからキーワードマッチングの手法に従ってスクリプトデータベース（６０ａ）に予め設定されているスクリプに従った発話を行う。対話ロボットは、対話者からの応答発話の認識の信頼度(cmscore)が高いか低いか判断する信頼度判断部(３４、Ｓ１)および対話が破綻した破綻回数(error)をカウントする破綻回数カウンタ（６０ｂ）を含み、聞き返し部（３４、Ｓ１７‐Ｓ１８）では、信頼度判断部によって信頼度が低いと判断したとき、破綻回数に応じて異なる態様で聞き返しを行う。
【００１２】
第１の発明によれば、対話者の言っていることが理解できない場合、破綻回数に応じて関係構造が異なる聞き返しのへと移行することによって、対話ロボットと対話者との関係が深まり、その結果として対話者は適用的になり、対話破綻を修復できると期待される。
【００１３】
第２の発明は、第１の発明に従属し、聞き返し部による聞き返しの聞き返し回数をカウントする聞き返し回数カウンタをさらに備え、聞き返し部は聞き返し回数が所定値未満のとき聞き返しを実行し、所定値以上のときには聞き返しを実行しない、対話ロボットである。
【００１４】
第２の発明では、回数カウンタ（６０ｂ）は、聞き返し部による聞き返しの聞き返し回数(loop)をカウントし、聞き返し部は聞き返し回数が所定値未満、たとえばloop<２のとき、前記の対話破綻回数に応じた聞き返しを実行する。
【００１５】
第２の発明によれば、聞き返し部は、聞き返しの回数が所定値未満のときにのみ聞き返しを実行するので、対話破綻の修復の可能性を早期に見極めることができる。
【００１６】
第３の発明は、第２の発明に従属し、聞き返し回数が所定値以上の場合、話題をスキップしたスキップ回数が所定値より大きいとき、対話を終了する対話終了部をさらに備える、対話ロボットである。
【００１７】
第３の発明では、対話終了部（３４、Ｓ１５）は、聞き返し回数が所定値以上のときはさらなる聞き返しは行わず、話題（トピック）をスキップした回数（skip）が所定値、たとえば３回を超えると、対話を終了する。つまり、話題のスキップは対話者の発話の理解を諦めることであるため、同様のスキップが４回以上発生した場合は、その対話者は対話ロボットに適した対話者ではないと判断して、対話を終了する。
【００１８】
第３の発明によれば、対話破綻を修復しようとしない対話者との対話は、対話ロボットの意思として、強制的に終了させることができる。
【００１９】
第４の発明は、第１ないし第３のいずれかの発明に従属し、聞き返し部は、破綻回数の少ない順に、単純な聞き返し、社会的繋がりに基づく聞き返しおよび心情的聞き返しを行う、対話ロボットである。
【００２０】
第４の発明では、対話破綻の回数によって聞き返しのレベル移行を行なった。たとえば、初めは言語的なやりとりのみで破綻を解消しようとするが、それでも解消されない場合は社会的な行動をとることによって解決を試みる。このとき、互いの「社会」は共有されているからこそ、対話者はロボットが社会的に責任を帰属して対話破綻を解決しようとしていることを認識し、破綻解消行動をとることができる。それでも破綻が起こるのであれば、対話者の話していることを理解したいのに理解できない葛藤から感情的にならざるを得ない。このときも苛立ちという感情が共有されているからこそ、感情を表現することで責任の帰属が可能であると考える。
【００２１】
第４の発明によれば、聞き返しのレベルを段階的に強くすることによって、対話破綻の修復の可能性が一層期待できる。
【００２２】
第５の発明は、マイクから入力される音声を認識する音声認識機能を有し、その認識結果に応じてスクリプトに従った発話を行う対話ロボットのコンピュータによって実行されるロボット制御プログラムであって、コンピュータを、人からの応答発話の認識の信頼度を判断する信頼度判断部、および信頼度判断部によって信頼度が低いと判断したとき、対話が破綻した破綻回数に応じて異なる態様で聞き返しを行う聞き返し部として機能させる、ロボット制御プログラムである。
【００２３】
第６の発明は、マイクから入力される音声を認識する音声認識機能を有し、その認識結果に応じてスクリプトに従った発話を行う対話ロボットのコンピュータによって実行される対話ロボットの制御方法であって、コンピュータが、人からの応答発話の認識の信頼度を判断する信頼度判断ステップ、および信頼度判断部によって信頼度が低いと判断したとき、対話が破綻した破綻回数に応じて異なる態様で聞き返しを行う聞き返しステップを実行する、対話ロボットの制御方法である。
【発明の効果】
【００２４】
この発明によれば、対話破綻が発生したときに、破綻回数に応じて異なる聞き返しを実行するので、対話者にも対話破綻の責任を帰属でき、破綻が起き続けていた対話が改善へと向かって行くことが期待される。
【００２５】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００２６】
【図１】図１はこの発明の一実施例のロボット対話システムを示す図解図である。
【図２】図２は図１実施例の対話ロボットにおいてスピーカを実装する方法の一例を示す図解図である。
【図３】図３は図１実施例の対話ロボットの電気的な構成を示すブロック図である。
【図４】図４は図３に示す対話ロボットのメモリのメモリマップの一例を示す図解図である。
【図５】図５は図１実施例の対話ロボットにおける対話者からの応答発話の処理の一例を示すフロー図である。
【図６】図６は図５実施例において対話破綻回数に応じた異なる聞き返しを示すフロー図である。
【図７】図７は図６における聞き返しに関する認知モデルを示す図解図である。
【発明を実施するための最良の形態】
【００２７】
図１を参照して、この実施例のロボット対話システム１０は、一例として自律対話型アンドロイドである対話ロボット１２を含む。この対話ロボット（以下、単に「ロボット」ということがある。）１２は、この実施例では、人間に酷似した姿形（外観など）を有する対話ロボットであり、人間に酷似した動作（振り、振る舞い、発話）を行う。ただし、他の外観、構造を持つ任意の対話ロボットが利用可能であることを予め指摘しておく。
【００２８】
対話ロボット１２は、胴体部１４およびその胴体部１４の上に、首部１６を介して設けられた頭部１８を含む。
【００２９】
頭部１８には、目、鼻、口など人の頭部が持つ種々のパーツが配置されている。胴体部１４の上端（頭部の下方）が肩であり、その肩の両端に上肢２０が設けられている。そして、胴体部１２の下端からは下肢２２が設けられる。
【００３０】
このような、対話ロボット１２は、たとえば金属のような構造材で全体を組み立て、その構造材の上にたとえばシリコーン樹脂のようなソフトな樹脂で皮膚を形成し、必要な部分でその皮膚を衣服から露出させている。
【００３１】
この実施例の対話ロボットシステム１０では、対話ロボット１２は、図１実施例では椅子２４に座った状態でセットされていて、たとえば人間らしい動作を実現するように、ｎ個の、空気圧アクチュエータで各部分を動かす。
【００３２】
たとえば、頭部１８は、首部１６に内蔵された空気圧アクチュエータ（図示せず）によって、左右（旋回）方向および上下（俯仰）方向に可動である。
【００３３】
実施例の対話ロボットシステム１０では、図２（Ａ）に示すように、カチューシャ２６を用いて小型の指向性スピーカ２８を頭部１８に取り付けた。つまり、カチューシャ２６の先端にスピーカ２８を取り付け、そのカチューシャ２６を、図２（Ａ）に示すように、頭部１８に装着することによって、小型の指向性スピーカ２８を頭部１８に設けた。
【００３４】
ただし、カチューシャ２６やスピーカ２８がそのまま露出するのはロボットの外観としてはとしてあまりよくないので、図２（Ｂ）に示すように、かつら３０で隠すようにしている。
【００３５】
なお、この指向性スピーカ２８は頭部１８の動きに追従するので、対話者はこのスピーカ２８からの発話を対話ロボット１２からの発話しているように感じさせることができる。
【００３６】
そして、この実施例の対話ロボットシステム１０では、上記の高音域を実現する指向性スピーカ２８とは別に、対話ロボット１２の発話の際の胴鳴り音（対話ロボットの胴体の共振による音）を実現する、スピーカ３２が、対話ロボット１２の胴体部１４の近傍の椅子２４に配置される。このスピーカ３２は、中低音域を実現する無指向性のスピーカである。
【００３７】
対話ロボット１２は、図３に示すように、対話ロボット１２の全体制御を司るＣＰＵ３４を備える。ＣＰＵ３４は、バス３６を通して通信モジュール３８に接続され、したがって、ＣＰＵ３４は通信モジュール３８を介して、ネットワーク（図示せず）に有線で、または無線で、通信可能に接続される。
【００３８】
ＣＰＵ３４はまた、バス３６を通してメモリ４０にアクセスでき、このメモリ４０に設定されているプログラムやデータに従って、バス３６を通してアクチュエータ制御回路４２に適宜の指令値を与え、ｎ個の空気圧アクチュエータＡ１‐Ａｎの動作を制御する。アクチュエータ制御回路４２は、ＣＰＵ３４から与えられる指令値に応じて各空気圧アクチュエータＡ１‐Ａｎを駆動する。したがって、この対話ロボット１２に人間酷似の動作（所作）を発現させることができる。
【００３９】
センサＩ／Ｆ（インタフェース）４４は、バス３６を介して、ＣＰＵ３４に接続され、触覚センサ４６および眼カメラ４８からのそれぞれの出力を受ける。
【００４０】
触覚センサ４６ないし皮膚センサは、たとえばタッチセンサであり、対話ロボット１２の触覚の一部を構成する。つまり、触覚センサ４６は、人間や他の物体等が対話ロボット１２に触れたか否かを検出するために用いられる。触覚センサ４６からの出力（検出データ）は、センサＩ／Ｆ４４を介してＣＰＵ３４に与えられる。したがって、ＣＰＵ３４は、人間や他の物体等が対話ロボット１２に触れたこと（およびその強弱）を検出することができる。
【００４１】
眼カメラ４８は、イメージセンサであり、対話ロボット１２の視覚の一部を構成する。つまり、眼カメラ４８は、対話ロボット１２の眼から見た映像ないし画像を検出するために用いられる。この実施例では、眼カメラ４８の撮影映像（動画ないし静止画）に対応するデータ（画像データ）は、センサＩ／Ｆ４４を介してＣＰＵ３４に与えられる。ＣＰＵ３４は、撮影映像の変化を検出するのみならず、その画像データを、通信モジュール３８およびネットワーク（図示せず）を介して遠隔操作端末（図示せず）に送信する。
【００４２】
また、スピーカ２６およびマイク５２は、入出力Ｉ／Ｆ５０に接続される。ただし、マイク５２は胴体１４など対話者３２（図１）の発話音声を補足し易い適宜の位置に設けられ、対話ロボット１２の聴覚の一部を構成する。このマイク５２は、適度な指向性を有し、主として、対話ロボット１２と対話（コミュニケーション）する人間（ユーザ）の音声を検出する。
【００４３】
実施例の対話ロボットシステム１０では、図４に示すように、メモリ４０のプログラム記憶領域５４に、対話プログラム５６を設定している。この対話プログラム５６は、対話者３２の発話音声の音声認識を行う音声認識プログラム５６ａを含む。この実施例では、音声認識プログラム５６ａは、マイク５２が取込んだ人間（対話者３２）の声を認識するようにしている。この音声認識プログラム５６ａとしては、コンピュータで音声を認識する機構（エンジン）のうち、プログラム（ソースコード）が公開されている、オープンソース音声認識エンジンを採用している。
【００４４】
対話プログラム５６の発話プログラム５６ｂは、音声認識の結果からキーワードを抽出して、そのキーワードに従ってデータ記憶領域５８に記憶されているスクリプトデータベース６０ａから発話コンテンツを読み出して、スピーカ２８から出力させる。
【００４５】
対話プログラム５６の破綻検出プログラム５６ｃは、この実施例で想定している４種類の対話破綻、（１）音声認識の失敗による破綻、（２）割り込みの発生による破綻、（３）対話者による指摘、および（４）キーワードマッチング失敗による破綻を検出する。この対話破綻について、ここで具体的に説明する。
（１）音声認識の失敗による破綻
対話者の発話をうまく聞き取れないという失敗である。ロボットは我々の日常社会に徐々に浸透し始めているものの未だロボットと対話をした経験がある人は多くない。そのような人たちはロボットとどのように対話をすればいいのか分からず、吃ってしまうことが多い。また、現在の音声認識技術は必ずしも正確な結果を出力するわけではない。そこで音声認識が失敗した場合は正しくキーワードマッチングによる分岐が行われないため、これを破綻として処理する。
（２）割り込みの発生による破綻
ロボットとの対話中に対話者が文脈に沿わない質問を投げかけることが多々ある。対話者がロボットの対話能力を試そうとして悪意を持って割り込もうとする場合もあるが、多くの場合は悪意がないままに話題を対話者から変更しようと試みるために発生する。このような場合はロボットが事前に用意しているストーリーに沿った対話を続けることが難しいため破綻とみなす。
（３）対話者による指摘
話者が意図していないキーワードにマッチして誤った応答を行うことも考えられる。間違ったキーワードにマッチングしてしまった場合、ロボット自身ではそれを検知できないので、対話者によるそれの指摘があった場合に破綻が生じたと考える。
（４）キーワードマッチング失敗による破綻  ‐キーワードにマッチしない場合‐
ストーリー性のある対話や何か目的を達成することを目的とした対話には、言語理解部に条件分岐がいくつか用意されているが、対話者によってそのどれにもマッチしない発話が行われることがある。そのような場合、ロボットは応答を生成できないためこれを破綻として扱う。
【００４６】
図４に戻って、対話プログラム５６の聞き返しプログラム５６ｄは、上で説明したがいまして、対話破綻が生じたとき、対話ロボット１２は対話継続の意思表示として、対話者に対する聞き返しを実行するためのプログラムである。
【００４７】
なお、メモリ４０のデータ記憶領域５８には、対話破綻の回数(error)、対話をスキップした回数(skip)、さらには聞き返しをした回数(loop)などをカウントするカウンタ６０ｂや、その他必要なバッファ領域、ワーキング領域などが形成される。
【００４８】
図５は、対話者３２３（図１）からの応答発話がマイク５２に入力された後の、ＣＰＵ３４（図３）の動作を示すフロー図である。
【００４９】
応答発話ｕｉ（ｔｋ）があったとき、ＣＰＵ３４は最初のステップＳ１で、音声認識プログラム５６ａでその応答発話を認識したときの信頼度(cmscore)が高いか低いか判定する。
【００５０】
ここで、ロボットの発話Ｕｉ（ｔｋ）に対する対話者の応答をｕｉ（ｔｋ）とする。このとき、ｔｋは対話におけるｋ番目の話題である（ｋ∈｛０、ｋ｝）。また、ｉは話題ｔｋ内の対話ロボット１２の発話番号である（ｉ∈｛０、Ｉｋ｝）。対話ロボット１２の対話システムはスクリプトデータベース６０ａにおけるスクリプトで管理されているため、このように一連の発話番号が存在する。
【００５１】
ただし、ステップＳの前提として聞き返し回数(loop)およびスキップ回数(skip)はともに０（ゼロ）（loop=0、skip=0）とする。
【００５２】
ロボットの発話Ｕｉ（ｔｋ）に対する対話者の応答ｕｉ（ｔｋ）が対話システムに入力されたとき、ｕｉ（ｔｋ）の音声認識の精度(cmscore)を調べる。精度(cmscore)が閾値より低い場合は正しく聞き取れていないと判断し、破綻が生じたとする。これまで発生した破綻の回数(error)に応じて聞き返し方を決定し、聞き返しを行う。
【００５３】
このように、最初に音声認識の精度すなわち信頼度(cmscore)を確かめる理由は、音声認識が正しく行われていない場合は、処理する認識されたテキストデータが正しくないものになっているので、キーワードマッチングが行われているかどうかを確認しても意味がないからである。
【００５４】
ステップＳ１で、音声認識の信頼度(cmscore)が高いと判断したときは、破綻を生じていないのであり、ステップＳ１から分岐Ｓ１ａから次のステップＳ３に進む。ステップＳ３においては、ＣＰＵ３４は、割り込みの発生による破綻があるかどうか判断する。つまり、音声認識が正常に行われている場合は、スクリプトデータベース６０ａを参照することによって、割り込みが発生したのかをチェックする。ステップＳ３で、割り込みによる破綻がないと判断したとき、分岐Ｓ３ａからステップＳ５に進む。
【００５５】
ステップＳ５においては、ＣＰＵ３４は、対話者によって間違ったキーワードにマッチングしてしまったという指摘があったかどうか判断する。つまり、割り込みが発生していないときは、対話ロボット１２からの１つ前の発話Ｕｉ−１（ｔｋ）に対して対話者からの訂正が入ったのかどうかを確かめる。
【００５６】
そして、そのような指摘がない場合、分岐Ｓ５ａからステップＳ７に進む。ステップＳ７では、キーワードマッチング失敗による破綻が生じたかどうか判断する。つまり、対話者からの訂正が入らない場合は、ステップＳ７で、キーワードマッチングできるキーワードが発話文中に存在するのかを確かめる。キーワードが見つからない場合はロボットが応答を生成できないため破綻が発生したとみなす。ステップＳ７でそのような破綻が生じたと判断しなかった場合、すなわち、キーワードマッチングに成功した場合、分岐Ｓ７ａからステップＳ９に進む。
【００５７】
ステップＳ９では、発話番号ｉが話題ｔｋの終了番号に達したかどうか、つまり、話題ｔｋが終了したかどうか判断する。終了していないと判断したとき、分岐Ｓ９ａからステップＳ１０に進み、ＣＰＵ３４は、話題ｔｋ内の次の発話Ｕｉ＋１をスプリクトデータベース６０ａから読み出して、発話する。
【００５８】
ステップＳ９で話題終了を判断したとき、さらに聞き返しがあったかどうか判断する。そして、聞き返しがなかったときには、ＣＰＵ３４は、分岐Ｓ９ｂからステップＳ１１に進み、破綻回数カウンタerrorをディクリメント（error--）した後、ステップＳ１２で次の話題ｔｋ＋１の最初の発話番号の発話Ｕ0（ｔｋ+１）を行わせる。ただし、話題終了でかつ聞き返しがないとステップＳ９で判断したとき、分岐Ｓ９ｃからステップＳ１２に直接進む。
【００５９】
ステップＳ１での音声認識の信頼度(cmscore)が低いときの聞き返しは最大２回までとし、３回目の音声認識失敗が起きた際（分岐Ｓ１ｃ）は、ステップＳ１３に進み、現在のトピック（話題）ｔｋをスキップし、次の話題ｔｋ＋１に移行する。
【００６０】
このような話題のスキップは対話者の発話の理解を諦めることであるため、同様のスキップが４回以上発生した場合（skip>3）は、分岐Ｓ１１ａからステップＳ１４に進み、その対話者はロボットに適した対話者ではないと判断してロボットは対話を終了する。ただし、スキップカウンタskipのカウント値が「３」以下のとき、分岐Ｓ１１ｂからステップＳ１５に進み、ＣＰＵ３４はスキップカウンタskipをインクリメントする。つまり、対話破綻を修復しようとしない対話者との対話は、対話ロボット１２の意思として、終了させる。
【００６１】
ステップＳ１で信頼度(cmscore)が低いと判断しかつ聞き返し回数(loop)＝２であるときは分岐Ｓ１ｃから、またはステップＳ３で割り込みがあったと判断しかつ聞き返し回数(loop)＝２であるときは分岐Ｓ３ｃから、またはステップＳ５で対話者からミスマッチングの指摘があったと判断しかつ聞き返し回数(loop)＝２であるときは分岐Ｓ５ｃから、またはステップＳ７で対話者によってスクリプトデータベース６０ａに登録しているどのキーワードにもマッチしない発話が行われと判断しかつ聞き返し回数(loop)＝２であるときは分岐Ｓ７３ｃから、それぞれ、先のステップＳ１３に進み、話題のスキップ回数(skip)を判断する。
【００６２】
音声認識が正常に行われている場合は、ステップＳ３において、上述のようにスクリプトデータベース６０ａを用いることで割り込みが発生したのかをチェックする。音声認識の精度が高い質問であるため、聞き返し回数が２回未満のとき（loop<2）、ＣＰＵ３４は、スクリプトデータベース６０ａを参照して、この質問に対して回答が用意されている場合は、分岐Ｓ３ｂからステップＳ４に進み、そのステップＳ４でその回答を読み出して割り込みに対して答える。発話Ｕｉ（ｔｋ）に対する割り込みが３回以上発生した場合には、その話題を継続することが難しいと判断し、上述のようにステップＳ１３、Ｓ１５からステップＳ１２に進み、次の話題へと移行する。
【００６３】
ただし、破綻回数(error)と話題をスキップした回数(skip)は音声認識のときのものと共通であるため、音声認識の失敗により話題のスキップが３回発生し、割り込みによる話題スキップが１回発生した場合も対話が終了される（ステップＳ１４）。以下に説明する破綻処理においても破綻の回数(error)と話題をスキップした回数(skip)は共通のグローバル変数である。
【００６４】
割り込みが発生していないときは、前述のようにステップＳ５でロボットの１つ前の発話Ｕｉ−１（ｔｋ）に対して対話者からの訂正が入ったのかどうかを確かめる。訂正が入っていた場合は誤ったキーワードマッチングが行われた可能性が高いので、破綻が発生したとみなす。これに関しても同様に、破綻回数に応じた最大２回までの聞き返しを行い、３回目にはステップＳ１３で話題のスキップを行う。
【００６５】
ただし、対話者からの訂正があったとしても、聞き返し回数(loop)が２未満のときには、分岐Ｓ５ｂで、ステップＳ６で、前の発話Ｕｉ−１（ｔｋ）を傾聴する。つまり、一つ前の質問をもう一度尋ねる。
【００６６】
ステップＳ５で対話者からの訂正が入らない場合は、ステップＳ７において、スクリプトデータベース６０ａを参照して、キーワードマッチングできるキーワードが発話文中に存在するのかを確かめる。キーワードが見つからない場合はロボットが応答を生成できないため破綻が発生したとみなす。したがって、聞き返し回数(loop)が２回に達していたら、分岐Ｓ７ｃから先に説明したステップＳ１３に進む。
【００６７】
ステップＳ７で理解ができない場合であっても、音声認識は正しく行われており、スクリプトから外れた割り込みではない応答が対話者から行われているので、これを完全に無視して聞き返すと何を言っても理解できないロボットだと過小評価されてしまう可能性がある。
【００６８】
そこで、完全ではないので理解はできないが、少なからず聞き取れている単語があることを示すために、聞き取れている単語をおうむ返しする。具体的には信頼度(cmscore)の高い名詞、形容詞、動詞を最大３個まで繰り返して発話する信頼度(cmscore)の閾値は経験的に０．６と定めた）。このとき、動詞は基本形に直しておうむ返しを行う。この段階で初めておうむ返しを行うのは、文全体の音声認識の精度が低い文をおうむ返しの対象にすると偶然高い信頼度(cmscore)が出力された意味不明な単語を繰り返してしまう可能性もあるため、おうむ返しは音声認識の信頼度の高い応答に対してしか有効でないからである。
【００６９】
１度目の破綻時（loo=0）は、ステップＳ８１でのおうむ返しと、ステップＳ１７、Ｓ１８での聞き返しの両方を行うが、信頼度(cmscore)の高い名詞や形容詞や動詞が１つも見つからない場合は単純に聞き返しのみを行う。２回目の破綻時（loop=1）は、おうむ返しの後に発話Ｕｉ（ｔｋ）を単純化してから聞き返しを行う。ただし、相手がはっきり話しているのにそれを何度も聞き返すのは相手の対話意欲を下げると考え、この場合はロボットが理解できるような単純な質問に変更する。
【００７０】
たとえば、ロボットが「海外旅行に行くならどこがいいですか？」と質問し、対話者が「アイルランドに行きたいです」と答えたときを考える。このとき、アイルランドに関する応答がスクリプトデータベース６０ａに用意されていない場合は、「最近シンガポールとか旅行先として人気ですけど、どうですか？行ってみたいと思いますか？」と肯定か否定の２択の質問に落とし込む。これにより対話者の応答が理解しやすくなる。この質問に対する「シンガポールもいいですね」という回答は肯定として処理できるが、「アイルランドに行きたいです！」という回答は肯定か否定かの判断か難しいため対話破綻として扱う。この場合は他の破綻処理と同じように話題のスキップを行う。
【００７１】
これらの破綻検出にひっかからずにキーワードマッチングが成功したときには、先に説明したように、スクリプトデータベース６０ａの発話コンテンツに沿った次の発話Ｕｉ＋１（ｔｋ）を行う。話題ｔｋ内に次の発話が存在しない場合（ｉ＝Ｉｋ）は次の話題ｔｋ＋１に移行する（ステップＳ１２）。
【００７２】
破綻が発生したときの、ステップＳ１７およびＳ１８での聞き返しについて、以下説明する。これのような聞き返しを実行することによって、対話者に対話破綻の責任を帰属でき、破綻が起き続けていた対話が修復されて改善へと向かって行くことが期待される。ただし、聞き返し部として機能するこのステップＳ１７‐１８では、聞き返しの回数が所定値未満、実施例では２未満のときにのみ聞き返しを実行し、所定値以上のときにはさらなる聞き返しは行わない（ステップＳ１３へ移行する）ので、対話破綻の修復の可能性を早期に見極めることができる。
【００７３】
この実施例では、音声認識の失敗や応答生成が適切に行われず、対話破綻が生じた際に、分岐Ｓ１ｂ、Ｓ３ｂ、Ｓ５ｂ、またはステップＳ８１もしくはＳ８２を経て、ステップＳ１７‐Ｓ１８で、図６に示すように、５段階の方法で聞き返しを行う。つまり、対話破綻が起きるとステップＳ２１‐Ｓ３２において、順次レベルが推移した聞き返しをする。
【００７４】
図６はステップＳ１７での聞き返しの戦略（f(error)）を詳細に示し、最初のステップＳ２１で、ＣＰＵ３４は図４のカウンタ６０ｂを参照して、破綻回数(error)=０かどうか判断する。もしステップＳ２１で“ＹＥＳ”を判断すると、つまり対話破綻が初めて発生したときは、続くステップＳ２２で、ＣＰＵ３４は、たとえば「え？」というような驚きを表出する。ここで初めて、対話者との対話において対話破綻が発生することを認識する。
【００７５】
ステップＳ２１で“ＮＯ”を判断したとき、ステップＳ２３で破綻回数error=１かどうか判断する。もしステップＳ２３で“ＹＥＳ”を判断すると、ステップＳ２４で、たとえば、「なんですか？」あるいは「何？もう１回言ってください。」のような「単純な聞き返し」を実行する。
【００７６】
対話破綻が起き始めたばかりであり、対話破綻が起きたときは相手の言っていることを理解しようとして単純に聞き返す。対話破綻が起きてすぐに責任の帰属を行うと対話者が不快感を持つ可能性があるので、このステップＳ２４での聞き直しでは責任の帰属は行わずに、対話破綻が起きるということをお互いに認識しあうことを目的にする。
【００７７】
ステップＳ２３で“ＮＯ”を判断したとき、ステップＳ２５で破綻回数error=２かどうか判断する。もしステップＳ２５で“ＹＥＳ”を判断すると、ステップＳ２６で、たとえば、「すいません、聞き取れなかったのでもう１度言ってください。」あるいは「ごめんなさい、よくわかりませんでした。」のような聞き返しを行う。
【００７８】
ステップＳ２３までで対話破綻が起きるということを認識した上でさらに対話破綻が起きる際はステップＳ２６で、「自分に責任を帰属した聞き返し」を行う。上記のように、謝罪を行いながら聞き返すことで自分に破綻の原因があることを相手に示す。つまり、ロボットは対話者の言っていることを理解しようとしているのだが、どうしても理解できずに対話破綻が起き続けるので、相手にもっとはっきり話し、わかりやすい言い直しをしてもらうように協力を促す。ここではあくまでロボット自身に原因があるため対話破綻が起きるということを示す。
【００７９】
さらに、ステップＳ２５で“ＮＯ”を判断したとき、ステップＳ２７で破綻回数error=３かどうか判断する。もしステップＳ２７で“ＹＥＳ”を判断すると、ステップＳ２８で、たとえば、「聞こえないのでもう少しはっきり話してください。」あるいは「もっとわかりやすく話してください。」のように、「相手に責任を帰属した聞き返し」として、対話者に具体的な指示を与えるような聞き返しを行う。
【００８０】
対話破綻改善のための協力姿勢を相手に示した上で、さらに対話破綻が発生する場合は、多少の強制力を持って相手を歩み寄らせることで相手の言っていることを理解しようとする。自分に責任を帰属する前に相手に責任を帰属すると対話者は不快に感じて、対話意思を失いかねないためステップＳ２６で先に自分自身に責任を帰属してから、その後のステップＳ２８で相手に責任を帰属する。そうすることで対話者はロボットの命令を受け入れやすくなると考えられる。
【００８１】
ステップＳ２７で“ＮＯ”を判断したとき、ステップＳ２９で破綻回数error=４かどうか判断する。もしステップＳ２９で“ＹＥＳ”を判断すると、ステップＳ３０で、「自分に苛立つ聞き返し」を実行する。この場合、たとえば、「あーあ。何度も何度も申し訳ないですがもう１回言ってください。」あるいは「はぁ…。分かりません。」のような聞き返しを行う。
【００８２】
このように、ため息や苛立ちを表現する発言を含めることで、ロボットが自分自身に苛立っているような聞き返し方をする。相手の言っていることを理解しようとして様々な聞き返しを行なってきたが、それでも対話破綻が改善しないため自分自身に苛立つ。これによって対話者がロボットに対して罪悪感を感じて協力的になることに期待する。
【００８３】
ステップＳ２９で“ＮＯ”を判断したとき、ステップＳ３１で破綻回数error=５かどうか判断する。もしステップＳ３１で“ＹＥＳ”を判断すると、ステップＳ３２で、「相手に苛立つ聞き返し」を実行する。たとえば、第三者（ここでは「Ａくん」）がいる場合であれば、「ねえ、Ａくん。さっきからこの人の言っていることがわからないんだけど。」や「Ａくん、あのね。この人の言っていることが聞き取れないの。」のような第三者を巻き込んで対話者を苛立たせるような発話を行う。
【００８４】
ロボットと対話者では対話破綻の改善が見込めないので、第三者を巻き込んで対話破綻を改善しようとする。たとえば側にいるロボットの案内員を対話に巻き込んで、ロボットに同調させる。そうすることで、ロボットの意見に客観性が付与される。また、ロボットと案内員の２名に対して対話者１名という構造になり、対話者がマイノリティになることから、対話者に対する強制力が強まると考えられる。
【００８５】
このようにして、聞き返しの戦略がステップＳ１７で策定され、それに応じて、ステップＳ１８で、対話ロボット１２では、ＣＰＵ３４が、スクリプトデータベース６０ａから、決定した聞き返し方法に基づく発話コンテンツを読み出し、発話させる。このステップＳ１８では、ＣＰＵ３４は、破綻回数カウンタerrorをインクリメントするとともに、聞き返し回数カウンタloopをインクリメントする。
【００８６】
この実施例における上述の聞き返しがどのように動作し、対話者に働きかけるのかに関する認知モデルを図７に示す。ステップＳ１、Ｓ３、Ｓ５、Ｓ７で対話破綻が生じたことを判断したとき、ロボットは対話者に対して様々な聞き直し方をするが、最初のerror=０での驚きの表現は、対話破綻を繕おうとする対話ロボット１２の動作のトリガとしての役割を持つ。すなわち、これをきっかけに対話者との対話において破綻が発生し得ることを認識する。
【００８７】
破綻回数error=１のときの単純に聞き返す行為は、反射的な言語的行動であり、相手の話していることが分からないから聞くという単純な行動である。これはロボットと対話者の間に何の関係構造も必要としない。
【００８８】
一方、破綻回数error=２のときのステップＳ２６や破綻回数error=３のときのステップＳ２８におけるように、自らに責任を帰属したり、対話者に責任を帰属したりするという行為は、お互いに協力しあうような関係構造が必要である。どちらかに責任を押し付けていては一向に対話は改善しないため、互いが責任を感じながら対話に取り組むという、社会的な繋がりを前提にした行為であり、単純な行動よりも効果が高いと考えられる。
【００８９】
そして、破綻回数error=４のときのステップＳ３０や破綻回数error=５のときのステップＳ３２でのように、自らに苛立ったり、相手に苛立ったりする行動は、本能的な行動であり、協力して改善を試みようとするような戦略協力的なものではなく感情的な行動である。感情的な行動は本能的であるため相手の共感を得られた場合はかなり高い効果が得られると考えられる。
【００９０】
この３つのレベルをそれぞれ個人（言語的）レベル、社会的繋がり（協力的）レベル、個人的繋がり（本能的）レベルと呼ぶことにする。
【００９１】
対話者の言っていることが理解できない場合、対話者の行動を認識して、これらのレベルを移行しながら対話破綻の修復を試みる。関係構造が異なるレベルへと移行していくことにつれロボットと対話者との関係が深まり、その結果として対話者は適用的になると考えられることができる。
【００９２】
実施例のロボット対話システム１０では、対話破綻の回数によって聞き返しのレベル移行を行なった。すなわち、初めは言語的なやりとりのみで破綻を解消しようとするが、それでも解消されない場合は社会的な行動をとることによって解決を試みる。このとき、互いの「社会」は共有されているからこそ、対話者はロボットが社会的に責任を帰属して対話破綻を解決しようとしていることを認識し、破綻解消行動をとることができる。それでも破綻が起こるのであれば、対話者の話していることを理解したいのに理解できない葛藤から感情的にならざるを得ない。このときも苛立ちという感情が共有されているからこそ、感情を表現することで責任の帰属が可能であると考える。
【００９３】
この認知モデルに従えば、対話者は、個人レベルでのロボットの単純な聞き返しに対しては同じように言語的に単純に反応する。その後、社会的繋がりのレベルと個人的つながりのレベルにおいて、ロボットが自分自身に責任を感じたり、苛立ったりすると、対話者はロボットの理解を助けるために、はっきり話したり、簡単な言い回しで話したり、協力的な行動を相手のために取ろうとする。一方で、ロボットが相手に責任を感じさせたり、相手を苛立たせたりする場合は、対話者はロボットのためというよりは、むしろ責められている自分自身を改善しなければいけないと考えたり、もしくは感情的にそれを受け止めて自らの話し方を改善していくと考えられる。それでも破綻が解決しない場合は、破綻回数(error)が６以上になったとき、図６のステップＳ３３において対話意思を失い対話を終了する。
【００９４】
発明者等の実験によれば、この一連の流れを対話ロボット１２に実装することで、ロボットはまるで対話欲求を持ち、さらに対話者の言うことを理解しようとしているが理解できないという苛立ちを対話者に感じさせることができることが確認されている。また、この対話システムをロボットに実装することで、対話者はさらにロボットと話したくなるという対話欲求の向上も検証済みである。
【００９５】
なお、上述の実施例では、対話ロボット１２のメモリ４０にスクリプトデータベース６０ａを設定したが、このスクリプトデータベースは、対話ロボット１２の遠隔操作装置（図示せず）に設けておき、それをＣＰＵ３４がその都度、あるいはトピック（話題）毎に取得するようにしてもよい。
【符号の説明】
【００９６】
１０  …対話ロボットシステム
１２  …対話ロボット
３４  …ＣＰＵ
４０  …メモリ
【図１】
2018173456.tif 000003
【図２】
2018173456.tif 000004
【図３】
2018173456.tif 000005
【図４】
2018173456.tif 000006
【図５】
2018173456.tif 000007
【図６】
2018173456.tif 000008
【図７】
2018173456.tif 000009