JP6941856B2 - 対話ロボットおよびロボット制御プログラム - Google Patents

対話ロボットおよびロボット制御プログラム Download PDF

Info

Publication number
JP6941856B2
JP6941856B2 JP2017069873A JP2017069873A JP6941856B2 JP 6941856 B2 JP6941856 B2 JP 6941856B2 JP 2017069873 A JP2017069873 A JP 2017069873A JP 2017069873 A JP2017069873 A JP 2017069873A JP 6941856 B2 JP6941856 B2 JP 6941856B2
Authority
JP
Japan
Prior art keywords
dialogue
robot
listening
interlocutor
reliability
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017069873A
Other languages
English (en)
Other versions
JP2018173456A (ja
Inventor
石黒 浩
浩 石黒
昇吾 西口
昇吾 西口
虎 小山
虎 小山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Osaka University NUC
Original Assignee
Osaka University NUC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Osaka University NUC filed Critical Osaka University NUC
Priority to JP2017069873A priority Critical patent/JP6941856B2/ja
Publication of JP2018173456A publication Critical patent/JP2018173456A/ja
Application granted granted Critical
Publication of JP6941856B2 publication Critical patent/JP6941856B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)
  • Toys (AREA)

Description

この発明は対話ロボットおよびロボット制御プログラムに関し、特にたとえば、マイクから入力される人の発話に含まれるキーワードを認識して発話する、対話ロボットおよびロボット制御プログラムに関する。
現在、ロボットの対話における音声認識や応答生成システムは完全ではなく、音声認識の失敗や不適切な応答生成が生じ、その結果対話破綻が引き起こされる。チャットボットのような質問と回答が対になっているような非タスク指向型の対話においてこのような破綻による問題は一時的なものであるが、対話自体に何か目的がある場合や、ストーリー性のある対話においては、このような問題はその後の対話や互いの関係性にまで影響を及ぼしかねない大きな問題である。対話破綻を解消するために音声認識技術や応答生成の精度の向上を目指した研究はいくつかある。
特許文献1には、音声認識の精度向上のために、複数の音声認識処理部でそれぞれ音声認識を開始し、各音声認識処理部は、いずれかの音声認識処理部によって音声が認識されるまで繰り返し音声認識を実施する、ロボットが開示されている。
特開2013-257598号 [G10L 15/32, G01L 15/00]
ロボットによる音声認識の精度を高めたとしても、対話破綻は人間同士の対話においても発生するため、これを完全になくすことは難しい。対話破綻の解消には非常に高度な対話能力が不可欠であり、人間にはこれが備わっているものの、従来のロボットにはこのような高度な対話技術は搭載されていない。
さらに、ロボットだけで対話破綻を技術的に解決することは困難であるため、対話を円滑に進めるためには、はっきり話したり、簡単な言い回しをしたりするなどの人間側の協力が不可欠となる。しかしながら、ロボットはあくまで無機物と認識されることが多く、結果として、人間が対話破綻の責任を一方的にロボットに押し付けてしまうため、人間の協力行動を引き出すことは難しい。
それゆえに、この発明の主たる目的は、新規な、対話ロボットおよびロボット制御プログラムを提供することである。
この発明の他の目的は、対話破綻の修復が期待できる、対話ロボットおよびロボット制御プログラムを提供することである。
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
第1の発明は、マイクから入力される音声を認識する音声認識機能を有し、その認識結果に応じてスクリプトに従った発話を行う、対話ロボットであって、対話者からの応答発話の認識の信頼度を判断する信頼度判断部、対話者との対話が破綻したかどうかを検出する破綻検出部、破綻検出部が検出した、対話が破綻した破綻回数をカウントする破綻回数カウンタ、および信頼度判断部によって信頼度が低いと判断したとき、破綻回数カウンタがカウントした破綻回数に応じて異なる態様で聞き返しを行う聞き返し部を備える、対話ロボットである。
第1の発明では、対話ロボット(10:実施例において相当する要素を例示する参照符号。以下同じ。)は、マイク(52)を有し、音声認識機能によってマイクから入力される音声を認識し、その認識結果に含まれるキーワードからキーワードマッチングの手法に従ってスクリプトデータベース(60a)に予め設定されているスクリプに従った発話を行う。対話ロボットは、音声認識機能による認識結果に基づいて、対話者からの応答発話の認識の信頼度(cmscore)が高いか低いか判断する信頼度判断部(34、S1)および対話者との対話が破綻したかどうかを検出する破綻検出部(34、56c、S1‐S7)を備え、破綻回数カウンタ(60b)は、破綻検出部が検出した、対話が破綻した破綻回数(error)をカウントする。聞き返し部(34、56d、S17‐S18)では、信頼度判断部によって信頼度が低いと判断したとき、破綻回数ウンタがカウントした破綻回数に応じて異なる態様で聞き返しを行う。
第1の発明によれば、対話者の言っていることが理解できない場合、破綻回数に応じて関係構造が異なる聞き返しのへと移行することによって、対話ロボットと対話者との関係が深まり、その結果として対話者は適用的になり、対話破綻を修復できると期待される。
第2の発明は、第1の発明に従属し、聞き返し部による聞き返しの聞き返し回数をカウントする聞き返し回数カウンタをさらに備え、聞き返し部は聞き返し回数が所定値未満のとき聞き返しを実行し、所定値以上のときには聞き返しを実行しない、対話ロボットである。
第2の発明では、回数カウンタ(60b)は、聞き返し部による聞き返しの聞き返し回数(loop)をカウントし、聞き返し部は聞き返し回数が所定値未満、たとえばloop<2のとき、前記の対話破綻回数に応じた聞き返しを実行する。
第2の発明によれば、聞き返し部は、聞き返しの回数が所定値未満のときにのみ聞き返しを実行するので、対話破綻の修復の可能性を早期に見極めることができる。
第3の発明は、第2の発明に従属し、聞き返し回数が所定値以上の場合、話題をスキップしたスキップ回数が所定値より大きいとき、対話を終了する対話終了部をさらに備える、対話ロボットである。
第3の発明では、対話終了部(34、S15)は、聞き返し回数が所定値以上のときはさらなる聞き返しは行わず、話題(トピック)をスキップした回数(skip)が所定値、たとえば3回を超えると、対話を終了する。つまり、話題のスキップは対話者の発話の理解を諦めることであるため、同様のスキップが4回以上発生した場合は、その対話者は対話ロボットに適した対話者ではないと判断して、対話を終了する。
第3の発明によれば、対話破綻を修復しようとしない対話者との対話は、対話ロボットの意思として、強制的に終了させることができる。
第4の発明は、第1ないし第3のいずれかの発明に従属し、聞き返し部は、破綻回数の少ない順に、単純な聞き返し、社会的繋がりに基づく聞き返しおよび心情的聞き返しを行う、対話ロボットである。
第4の発明では、対話破綻の回数によって聞き返しのレベル移行を行なった。たとえば、初めは言語的なやりとりのみで破綻を解消しようとするが、それでも解消されない場合は社会的な行動をとることによって解決を試みる。このとき、互いの「社会」は共有されているからこそ、対話者はロボットが社会的に責任を帰属して対話破綻を解決しようとしていることを認識し、破綻解消行動をとることができる。それでも破綻が起こるのであれば、対話者の話していることを理解したいのに理解できない葛藤から感情的にならざるを得ない。このときも苛立ちという感情が共有されているからこそ、感情を表現することで責任の帰属が可能であると考える。
第4の発明によれば、聞き返しのレベルを段階的に強くすることによって、対話破綻の修復の可能性が一層期待できる。
第5の発明は、マイクから入力される音声を認識する音声認識機能を有し、その認識結果に応じてスクリプトに従った発話を行う対話ロボットのコンピュータによって実行されるロボット制御プログラムであって、コンピュータを、音声認識機能による認識結果に基づいて、対話者からの応答発話の認識の信頼度を判断する信頼度判断部、対話者との対話が破綻したかどうかを検出する破綻検出部、および信頼度判断部によって信頼度が低いと判断したとき、破綻検出部が検出した、対話が破綻した破綻回数に応じて異なる態様で聞き返しを行う聞き返し部として機能させる、ロボット制御プログラムである。
第6の発明は、マイクから入力される音声を認識する音声認識機能を有し、その認識結果に応じてスクリプトに従った発話を行う対話ロボットのコンピュータによって実行される対話ロボットの制御方法であって、コンピュータが、音声認識機能による認識結果に基づいて、対話者からの応答発話の認識の信頼度を判断する信頼度判断ステップ、対話者との対話が破綻したかどうかを検出する破綻検出ステップ、および信頼度判断ステップによって信頼度が低いと判断したとき、破綻検出ステップで検出した、対話が破綻した破綻回数に応じて異なる態様で聞き返しを行う聞き返しステップを実行する、対話ロボットの制御方法である。
この発明によれば、対話破綻が発生したときに、破綻回数に応じて異なる聞き返しを実行するので、対話者にも対話破綻の責任を帰属でき、破綻が起き続けていた対話が改善へと向かって行くことが期待される。
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
図1はこの発明の一実施例のロボット対話システムを示す図解図である。 図2は図1実施例の対話ロボットにおいてスピーカを実装する方法の一例を示す図解図である。 図3は図1実施例の対話ロボットの電気的な構成を示すブロック図である。 図4は図3に示す対話ロボットのメモリのメモリマップの一例を示す図解図である。 図5は図1実施例の対話ロボットにおける対話者からの応答発話の処理の一例を示すフロー図である。 図6は図5実施例において対話破綻回数に応じた異なる聞き返しを示すフロー図である。 図7は図6における聞き返しに関する認知モデルを示す図解図である。
図1を参照して、この実施例のロボット対話システム10は、一例として自律対話型アンドロイドである対話ロボット12を含む。この対話ロボット(以下、単に「ロボット」ということがある。)12は、この実施例では、人間に酷似した姿形(外観など)を有する対話ロボットであり、人間に酷似した動作(振り、振る舞い、発話)を行う。ただし、他の外観、構造を持つ任意の対話ロボットが利用可能であることを予め指摘しておく。
対話ロボット12は、胴体部14およびその胴体部14の上に、首部16を介して設けられた頭部18を含む。
頭部18には、目、鼻、口など人の頭部が持つ種々のパーツが配置されている。胴体部14の上端(頭部の下方)が肩であり、その肩の両端に上肢20が設けられている。そして、胴体部12の下端からは下肢22が設けられる。
このような、対話ロボット12は、たとえば金属のような構造材で全体を組み立て、その構造材の上にたとえばシリコーン樹脂のようなソフトな樹脂で皮膚を形成し、必要な部分でその皮膚を衣服から露出させている。
この実施例の対話ロボットシステム10では、対話ロボット12は、図1実施例では椅子24に座った状態でセットされていて、たとえば人間らしい動作を実現するように、n個の、空気圧アクチュエータで各部分を動かす。
たとえば、頭部18は、首部16に内蔵された空気圧アクチュエータ(図示せず)によって、左右(旋回)方向および上下(俯仰)方向に可動である。
実施例の対話ロボットシステム10では、図2(A)に示すように、カチューシャ26を用いて小型の指向性スピーカ28を頭部18に取り付けた。つまり、カチューシャ26の先端にスピーカ28を取り付け、そのカチューシャ26を、図2(A)に示すように、頭部18に装着することによって、小型の指向性スピーカ28を頭部18に設けた。
ただし、カチューシャ26やスピーカ28がそのまま露出するのはロボットの外観としてはとしてあまりよくないので、図2(B)に示すように、かつら30で隠すようにしている。
なお、この指向性スピーカ28は頭部18の動きに追従するので、対話者はこのスピーカ28からの発話を対話ロボット12からの発話しているように感じさせることができる。
そして、この実施例の対話ロボットシステム10では、上記の高音域を実現する指向性スピーカ28とは別に、対話ロボット12の発話の際の胴鳴り音(対話ロボットの胴体の共振による音)を実現する、スピーカ32が、対話ロボット12の胴体部14の近傍の椅子24に配置される。このスピーカ32は、中低音域を実現する無指向性のスピーカである。
対話ロボット12は、図3に示すように、対話ロボット12の全体制御を司るCPU34を備える。CPU34は、バス36を通して通信モジュール38に接続され、したがって、CPU34は通信モジュール38を介して、ネットワーク(図示せず)に有線で、または無線で、通信可能に接続される。
CPU34はまた、バス36を通してメモリ40にアクセスでき、このメモリ40に設定されているプログラムやデータに従って、バス36を通してアクチュエータ制御回路42に適宜の指令値を与え、n個の空気圧アクチュエータA1‐Anの動作を制御する。アクチュエータ制御回路42は、CPU34から与えられる指令値に応じて各空気圧アクチュエータA1‐Anを駆動する。したがって、この対話ロボット12に人間酷似の動作(所作)を発現させることができる。
センサI/F(インタフェース)44は、バス36を介して、CPU34に接続され、触覚センサ46および眼カメラ48からのそれぞれの出力を受ける。
触覚センサ46ないし皮膚センサは、たとえばタッチセンサであり、対話ロボット12の触覚の一部を構成する。つまり、触覚センサ46は、人間や他の物体等が対話ロボット12に触れたか否かを検出するために用いられる。触覚センサ46からの出力(検出データ)は、センサI/F44を介してCPU34に与えられる。したがって、CPU34は、人間や他の物体等が対話ロボット12に触れたこと(およびその強弱)を検出することができる。
眼カメラ48は、イメージセンサであり、対話ロボット12の視覚の一部を構成する。つまり、眼カメラ48は、対話ロボット12の眼から見た映像ないし画像を検出するために用いられる。この実施例では、眼カメラ48の撮影映像(動画ないし静止画)に対応するデータ(画像データ)は、センサI/F44を介してCPU34に与えられる。CPU34は、撮影映像の変化を検出するのみならず、その画像データを、通信モジュール38およびネットワーク(図示せず)を介して遠隔操作端末(図示せず)に送信する。
また、スピーカ26およびマイク52は、入出力I/F50に接続される。ただし、マイク52は胴体14など対話者32(図1)の発話音声を補足し易い適宜の位置に設けられ、対話ロボット12の聴覚の一部を構成する。このマイク52は、適度な指向性を有し、主として、対話ロボット12と対話(コミュニケーション)する人間(ユーザ)の音声を検出する。
実施例の対話ロボットシステム10では、図4に示すように、メモリ40のプログラム記憶領域54に、対話プログラム56を設定している。この対話プログラム56は、対話者32の発話音声の音声認識を行う音声認識プログラム56aを含む。この実施例では、音声認識プログラム56aは、マイク52が取込んだ人間(対話者32)の声を認識するようにしている。この音声認識プログラム56aとしては、コンピュータで音声を認識する機構(エンジン)のうち、プログラム(ソースコード)が公開されている、オープンソース音声認識エンジンを採用している。
対話プログラム56の発話プログラム56bは、音声認識の結果からキーワードを抽出して、そのキーワードに従ってデータ記憶領域58に記憶されているスクリプトデータベース60aから発話コンテンツを読み出して、スピーカ28から出力させる。
対話プログラム56の破綻検出プログラム56cは、この実施例で想定している4種類の対話破綻、(1)音声認識の失敗による破綻、(2)割り込みの発生による破綻、(3)対話者による指摘、および(4)キーワードマッチング失敗による破綻を検出する。この対話破綻について、ここで具体的に説明する。
(1)音声認識の失敗による破綻
対話者の発話をうまく聞き取れないという失敗である。ロボットは我々の日常社会に徐々に浸透し始めているものの未だロボットと対話をした経験がある人は多くない。そのような人たちはロボットとどのように対話をすればいいのか分からず、吃ってしまうことが多い。また、現在の音声認識技術は必ずしも正確な結果を出力するわけではない。そこで音声認識が失敗した場合は正しくキーワードマッチングによる分岐が行われないため、これを破綻として処理する。
(2)割り込みの発生による破綻
ロボットとの対話中に対話者が文脈に沿わない質問を投げかけることが多々ある。対話者がロボットの対話能力を試そうとして悪意を持って割り込もうとする場合もあるが、多くの場合は悪意がないままに話題を対話者から変更しようと試みるために発生する。このような場合はロボットが事前に用意しているストーリーに沿った対話を続けることが難しいため破綻とみなす。
(3)対話者による指摘
話者が意図していないキーワードにマッチして誤った応答を行うことも考えられる。間違ったキーワードにマッチングしてしまった場合、ロボット自身ではそれを検知できないので、対話者によるそれの指摘があった場合に破綻が生じたと考える。
(4)キーワードマッチング失敗による破綻 ‐キーワードにマッチしない場合‐
ストーリー性のある対話や何か目的を達成することを目的とした対話には、言語理解部に条件分岐がいくつか用意されているが、対話者によってそのどれにもマッチしない発話が行われることがある。そのような場合、ロボットは応答を生成できないためこれを破綻として扱う。
図4に戻って、対話プログラム56の聞き返しプログラム56dは、上で説明したがいまして、対話破綻が生じたとき、対話ロボット12は対話継続の意思表示として、対話者に対する聞き返しを実行するためのプログラムである。
なお、メモリ40のデータ記憶領域58には、対話破綻の回数(error)、対話をスキップした回数(skip)、さらには聞き返しをした回数(loop)などをカウントするカウンタ60bや、その他必要なバッファ領域、ワーキング領域などが形成される。
図5は、対話者323(図1)からの応答発話がマイク52に入力された後の、CPU34(図3)の動作を示すフロー図である。
応答発話u(t)があったとき、CPU34は最初のステップS1で、音声認識プログラム56aでその応答発話を認識したときの信頼度(cmscore)が高いか低いか判定する。
ここで、ロボットの発話Ui(tk)に対する対話者の応答をui(tk)とする。このとき、tkは対話におけるk番目の話題である(k∈{0、k})。また、iは話題tk内の対話ロボット12の発話番号である(i∈{0、Ik})。対話ロボット12の対話システムはスクリプトデータベース60aにおけるスクリプトで管理されているため、このように一連の発話番号が存在する。
ただし、ステップS1の前提として聞き返し回数(loop)およびスキップ回数(skip)はともに0(ゼロ)(loop=0、skip=0)とする。
ロボットの発話U(t)に対する対話者の応答u(t)が対話システムに入力されたとき、u(t)の音声認識の精度(cmscore)を調べる。精度(cmscore)が閾値より低い場合は正しく聞き取れていないと判断し、破綻が生じたとする。これまで発生した破綻の回数(error)に応じて聞き返し方を決定し、聞き返しを行う。
このように、最初に音声認識の精度すなわち信頼度(cmscore)を確かめる理由は、音声認識が正しく行われていない場合は、処理する認識されたテキストデータが正しくないものになっているので、キーワードマッチングが行われているかどうかを確認しても意味がないからである。
ステップS1で、音声認識の信頼度(cmscore)が高いと判断したときは、破綻を生じていないのであり、ステップS1から分岐S1aから次のステップS3に進む。ステップS3においては、CPU34は、割り込みの発生による破綻があるかどうか判断する。つまり、音声認識が正常に行われている場合は、スクリプトデータベース60aを参照することによって、割り込みが発生したのかをチェックする。ステップS3で、割り込みによる破綻がないと判断したとき、分岐S3aからステップS5に進む。
ステップS5においては、CPU34は、対話者によって間違ったキーワードにマッチングしてしまったという指摘があったかどうか判断する。つまり、割り込みが発生していないときは、対話ロボット12からの1つ前の発話Ui−1(t)に対して対話者からの訂正が入ったのかどうかを確かめる。
そして、そのような指摘がない場合、分岐S5aからステップS7に進む。ステップS7では、キーワードマッチング失敗による破綻が生じたかどうか判断する。つまり、対話者からの訂正が入らない場合は、ステップS7で、キーワードマッチングできるキーワードが発話文中に存在するのかを確かめる。キーワードが見つからない場合はロボットが応答を生成できないため破綻が発生したとみなす。ステップS7でそのような破綻が生じたと判断しなかった場合、すなわち、キーワードマッチングに成功した場合、分岐S7aからステップS9に進む。
ステップS9では、発話番号iが話題tの終了番号に達したかどうか、つまり、話題tが終了したかどうか判断する。終了していないと判断したとき、分岐S9aからステップS10に進み、CPU34は、話題t内の次の発話Ui+1をスプリクトデータベース60aから読み出して、発話する。
ステップS9で話題終了を判断したとき、さらに聞き返しがあったかどうか判断する。そして、聞き返しがなかったときには、CPU34は、分岐S9bからステップS11に進み、破綻回数カウンタerrorをディクリメント(error--)した後、ステップS12で次の話題tk+1の最初の発話番号の発話U0(tk+1)を行わせる。ただし、話題終了でかつ聞き返しがないとステップS9で判断したとき、分岐S9cからステップS12に直接進む。
ステップS1での音声認識の信頼度(cmscore)が低いときの聞き返しは最大2回までとし、3回目の音声認識失敗が起きた際(分岐S1c)は、ステップS13に進み、現在のトピック(話題)tをスキップし、次の話題tk+1に移行する。
このような話題のスキップは対話者の発話の理解を諦めることであるため、同様のスキップが4回以上発生した場合(skip>3)は、分岐S11aからステップS14に進み、その対話者はロボットに適した対話者ではないと判断してロボットは対話を終了する。ただし、スキップカウンタskipのカウント値が「3」以下のとき、分岐S11bからステップS15に進み、CPU34はスキップカウンタskipをインクリメントする。つまり、対話破綻を修復しようとしない対話者との対話は、対話ロボット12の意思として、終了させる。
ステップS1で信頼度(cmscore)が低いと判断しかつ聞き返し回数(loop)=2であるときは分岐S1cから、またはステップS3で割り込みがあったと判断しかつ聞き返し回数(loop)=2であるときは分岐S3cから、またはステップS5で対話者からミスマッチングの指摘があったと判断しかつ聞き返し回数(loop)=2であるときは分岐S5cから、またはステップS7で対話者によってスクリプトデータベース60aに登録しているどのキーワードにもマッチしない発話が行われと判断しかつ聞き返し回数(loop)=2であるときは分岐S73cから、それぞれ、先のステップS13に進み、話題のスキップ回数(skip)を判断する。
音声認識が正常に行われている場合は、ステップS3において、上述のようにスクリプトデータベース60aを用いることで割り込みが発生したのかをチェックする。音声認識の精度が高い質問であるため、聞き返し回数が2回未満のとき(loop<2)、CPU34は、スクリプトデータベース60aを参照して、この質問に対して回答が用意されている場合は、分岐S3bからステップS4に進み、そのステップS4でその回答を読み出して割り込みに対して答える。発話U(t)に対する割り込みが3回以上発生した場合には、その話題を継続することが難しいと判断し、上述のようにステップS13、S15からステップS12に進み、次の話題へと移行する。
ただし、破綻回数(error)と話題をスキップした回数(skip)は音声認識のときのものと共通であるため、音声認識の失敗により話題のスキップが3回発生し、割り込みによる話題スキップが1回発生した場合も対話が終了される(ステップS14)。以下に説明する破綻処理においても破綻の回数(error)と話題をスキップした回数(skip)は共通のグローバル変数である。
割り込みが発生していないときは、前述のようにステップS5でロボットの1つ前の発話Ui−1(t)に対して対話者からの訂正が入ったのかどうかを確かめる。訂正が入っていた場合は誤ったキーワードマッチングが行われた可能性が高いので、破綻が発生したとみなす。これに関しても同様に、破綻回数に応じた最大2回までの聞き返しを行い、3回目にはステップS13で話題のスキップを行う。
ただし、対話者からの訂正があったとしても、聞き返し回数(loop)が2未満のときには、分岐S5bで、ステップS6で、前の発話Ui−1(t)を傾聴する。つまり、一つ前の質問をもう一度尋ねる。
ステップS5で対話者からの訂正が入らない場合は、ステップS7において、スクリプトデータベース60aを参照して、キーワードマッチングできるキーワードが発話文中に存在するのかを確かめる。キーワードが見つからない場合はロボットが応答を生成できないため破綻が発生したとみなす。したがって、聞き返し回数(loop)が2回に達していたら、分岐S7cから先に説明したステップS13に進む。
ステップS7で理解ができない場合であっても、音声認識は正しく行われており、スクリプトから外れた割り込みではない応答が対話者から行われているので、これを完全に無視して聞き返すと何を言っても理解できないロボットだと過小評価されてしまう可能性がある。
そこで、完全ではないので理解はできないが、少なからず聞き取れている単語があることを示すために、聞き取れている単語をおうむ返しする。具体的には信頼度(cmscore)の高い名詞、形容詞、動詞を最大3個まで繰り返して発話する信頼度(cmscore)の閾値は経験的に0.6と定めた)。このとき、動詞は基本形に直しておうむ返しを行う。この段階で初めておうむ返しを行うのは、文全体の音声認識の精度が低い文をおうむ返しの対象にすると偶然高い信頼度(cmscore)が出力された意味不明な単語を繰り返してしまう可能性もあるため、おうむ返しは音声認識の信頼度の高い応答に対してしか有効でないからである。
1度目の破綻時(loo=0)は、ステップS81でのおうむ返しと、ステップS17、S18での聞き返しの両方を行うが、信頼度(cmscore)の高い名詞や形容詞や動詞が1つも見つからない場合は単純に聞き返しのみを行う。2回目の破綻時(loop=1)は、おうむ返しの後に発話U(t)を単純化してから聞き返しを行う。ただし、相手がはっきり話しているのにそれを何度も聞き返すのは相手の対話意欲を下げると考え、この場合はロボットが理解できるような単純な質問に変更する。
たとえば、ロボットが「海外旅行に行くならどこがいいですか?」と質問し、対話者が「アイルランドに行きたいです」と答えたときを考える。このとき、アイルランドに関する応答がスクリプトデータベース60aに用意されていない場合は、「最近シンガポールとか旅行先として人気ですけど、どうですか?行ってみたいと思いますか?」と肯定か否定の2択の質問に落とし込む。これにより対話者の応答が理解しやすくなる。この質問に対する「シンガポールもいいですね」という回答は肯定として処理できるが、「アイルランドに行きたいです!」という回答は肯定か否定かの判断か難しいため対話破綻として扱う。この場合は他の破綻処理と同じように話題のスキップを行う。
これらの破綻検出にひっかからずにキーワードマッチングが成功したときには、先に説明したように、スクリプトデータベース60aの発話コンテンツに沿った次の発話Ui+1(t)を行う。話題t内に次の発話が存在しない場合(i=I)は次の話題tk+1に移行する(ステップS12)。
破綻が発生したときの、ステップS17およびS18での聞き返しについて、以下説明する。これのような聞き返しを実行することによって、対話者に対話破綻の責任を帰属でき、破綻が起き続けていた対話が修復されて改善へと向かって行くことが期待される。ただし、聞き返し部として機能するこのステップS17‐18では、聞き返しの回数が所定値未満、実施例では2未満のときにのみ聞き返しを実行し、所定値以上のときにはさらなる聞き返しは行わない(ステップS13へ移行する)ので、対話破綻の修復の可能性を早期に見極めることができる。
この実施例では、音声認識の失敗や応答生成が適切に行われず、対話破綻が生じた際に、分岐S1b、S3b、S5b、またはステップS81もしくはS82を経て、ステップS17‐S18で、図6に示すように、5段階の方法で聞き返しを行う。つまり、対話破綻が起きるとステップS21‐S32において、順次レベルが推移した聞き返しをする。
図6はステップS17での聞き返しの戦略(f(error))を詳細に示し、最初のステップS21で、CPU34は図4のカウンタ60bを参照して、破綻回数(error)=0かどうか判断する。もしステップS21で“YES”を判断すると、つまり対話破綻が初めて発生したときは、続くステップS22で、CPU34は、たとえば「え?」というような驚きを表出する。ここで初めて、対話者との対話において対話破綻が発生することを認識する。
ステップS21で“NO”を判断したとき、ステップS23で破綻回数error=1かどうか判断する。もしステップS23で“YES”を判断すると、ステップS24で、たとえば、「なんですか?」あるいは「何?もう1回言ってください。」のような「単純な聞き返し」を実行する。
対話破綻が起き始めたばかりであり、対話破綻が起きたときは相手の言っていることを理解しようとして単純に聞き返す。対話破綻が起きてすぐに責任の帰属を行うと対話者が不快感を持つ可能性があるので、このステップS24での聞き直しでは責任の帰属は行わずに、対話破綻が起きるということをお互いに認識しあうことを目的にする。
ステップS23で“NO”を判断したとき、ステップS25で破綻回数error=2かどうか判断する。もしステップS25で“YES”を判断すると、ステップS26で、たとえば、「すいません、聞き取れなかったのでもう1度言ってください。」あるいは「ごめんなさい、よくわかりませんでした。」のような聞き返しを行う。
ステップS23までで対話破綻が起きるということを認識した上でさらに対話破綻が起きる際はステップS26で、「自分に責任を帰属した聞き返し」を行う。上記のように、謝罪を行いながら聞き返すことで自分に破綻の原因があることを相手に示す。つまり、ロボットは対話者の言っていることを理解しようとしているのだが、どうしても理解できずに対話破綻が起き続けるので、相手にもっとはっきり話し、わかりやすい言い直しをしてもらうように協力を促す。ここではあくまでロボット自身に原因があるため対話破綻が起きるということを示す。
さらに、ステップS25で“NO”を判断したとき、ステップS27で破綻回数error=3かどうか判断する。もしステップS27で“YES”を判断すると、ステップS28で、たとえば、「聞こえないのでもう少しはっきり話してください。」あるいは「もっとわかりやすく話してください。」のように、「相手に責任を帰属した聞き返し」として、対話者に具体的な指示を与えるような聞き返しを行う。
対話破綻改善のための協力姿勢を相手に示した上で、さらに対話破綻が発生する場合は、多少の強制力を持って相手を歩み寄らせることで相手の言っていることを理解しようとする。自分に責任を帰属する前に相手に責任を帰属すると対話者は不快に感じて、対話意思を失いかねないためステップS26で先に自分自身に責任を帰属してから、その後のステップS28で相手に責任を帰属する。そうすることで対話者はロボットの命令を受け入れやすくなると考えられる。
ステップS27で“NO”を判断したとき、ステップS29で破綻回数error=4かどうか判断する。もしステップS29で“YES”を判断すると、ステップS30で、「自分に苛立つ聞き返し」を実行する。この場合、たとえば、「あーあ。何度も何度も申し訳ないですがもう1回言ってください。」あるいは「はぁ…。分かりません。」のような聞き返しを行う。
このように、ため息や苛立ちを表現する発言を含めることで、ロボットが自分自身に苛立っているような聞き返し方をする。相手の言っていることを理解しようとして様々な聞き返しを行なってきたが、それでも対話破綻が改善しないため自分自身に苛立つ。これによって対話者がロボットに対して罪悪感を感じて協力的になることに期待する。
ステップS29で“NO”を判断したとき、ステップS31で破綻回数error=5かどうか判断する。もしステップS31で“YES”を判断すると、ステップS32で、「相手に苛立つ聞き返し」を実行する。たとえば、第三者(ここでは「Aくん」)がいる場合であれば、「ねえ、Aくん。さっきからこの人の言っていることがわからないんだけど。」や「Aくん、あのね。この人の言っていることが聞き取れないの。」のような第三者を巻き込んで対話者を苛立たせるような発話を行う。
ロボットと対話者では対話破綻の改善が見込めないので、第三者を巻き込んで対話破綻を改善しようとする。たとえば側にいるロボットの案内員を対話に巻き込んで、ロボットに同調させる。そうすることで、ロボットの意見に客観性が付与される。また、ロボットと案内員の2名に対して対話者1名という構造になり、対話者がマイノリティになることから、対話者に対する強制力が強まると考えられる。
このようにして、聞き返しの戦略がステップS17で策定され、それに応じて、ステップS18で、対話ロボット12では、CPU34が、スクリプトデータベース60aから、決定した聞き返し方法に基づく発話コンテンツを読み出し、発話させる。このステップS18では、CPU34は、破綻回数カウンタerrorをインクリメントするとともに、聞き返し回数カウンタloopをインクリメントする。
この実施例における上述の聞き返しがどのように動作し、対話者に働きかけるのかに関する認知モデルを図7に示す。ステップS1、S3、S5、S7で対話破綻が生じたことを判断したとき、ロボットは対話者に対して様々な聞き直し方をするが、最初のerror=0での驚きの表現は、対話破綻を繕おうとする対話ロボット12の動作のトリガとしての役割を持つ。すなわち、これをきっかけに対話者との対話において破綻が発生し得ることを認識する。
破綻回数error=1のときの単純に聞き返す行為は、反射的な言語的行動であり、相手の話していることが分からないから聞くという単純な行動である。これはロボットと対話者の間に何の関係構造も必要としない。
一方、破綻回数error=2のときのステップS26や破綻回数error=3のときのステップS28におけるように、自らに責任を帰属したり、対話者に責任を帰属したりするという行為は、お互いに協力しあうような関係構造が必要である。どちらかに責任を押し付けていては一向に対話は改善しないため、互いが責任を感じながら対話に取り組むという、社会的な繋がりを前提にした行為であり、単純な行動よりも効果が高いと考えられる。
そして、破綻回数error=4のときのステップS30や破綻回数error=5のときのステップS32でのように、自らに苛立ったり、相手に苛立ったりする行動は、本能的な行動であり、協力して改善を試みようとするような戦略協力的なものではなく感情的な行動である。感情的な行動は本能的であるため相手の共感を得られた場合はかなり高い効果が得られると考えられる。
この3つのレベルをそれぞれ個人(言語的)レベル、社会的繋がり(協力的)レベル、個人的繋がり(本能的)レベルと呼ぶことにする。
対話者の言っていることが理解できない場合、対話者の行動を認識して、これらのレベルを移行しながら対話破綻の修復を試みる。関係構造が異なるレベルへと移行していくことにつれロボットと対話者との関係が深まり、その結果として対話者は適用的になると考えられることができる。
実施例のロボット対話システム10では、対話破綻の回数によって聞き返しのレベル移行を行なった。すなわち、初めは言語的なやりとりのみで破綻を解消しようとするが、それでも解消されない場合は社会的な行動をとることによって解決を試みる。このとき、互いの「社会」は共有されているからこそ、対話者はロボットが社会的に責任を帰属して対話破綻を解決しようとしていることを認識し、破綻解消行動をとることができる。それでも破綻が起こるのであれば、対話者の話していることを理解したいのに理解できない葛藤から感情的にならざるを得ない。このときも苛立ちという感情が共有されているからこそ、感情を表現することで責任の帰属が可能であると考える。
この認知モデルに従えば、対話者は、個人レベルでのロボットの単純な聞き返しに対しては同じように言語的に単純に反応する。その後、社会的繋がりのレベルと個人的つながりのレベルにおいて、ロボットが自分自身に責任を感じたり、苛立ったりすると、対話者はロボットの理解を助けるために、はっきり話したり、簡単な言い回しで話したり、協力的な行動を相手のために取ろうとする。一方で、ロボットが相手に責任を感じさせたり、相手を苛立たせたりする場合は、対話者はロボットのためというよりは、むしろ責められている自分自身を改善しなければいけないと考えたり、もしくは感情的にそれを受け止めて自らの話し方を改善していくと考えられる。それでも破綻が解決しない場合は、破綻回数(error)が6以上になったとき、図6のステップS33において対話意思を失い対話を終了する。
発明者等の実験によれば、この一連の流れを対話ロボット12に実装することで、ロボットはまるで対話欲求を持ち、さらに対話者の言うことを理解しようとしているが理解できないという苛立ちを対話者に感じさせることができることが確認されている。また、この対話システムをロボットに実装することで、対話者はさらにロボットと話したくなるという対話欲求の向上も検証済みである。
なお、上述の実施例では、対話ロボット12のメモリ40にスクリプトデータベース60aを設定したが、このスクリプトデータベースは、対話ロボット12の遠隔操作装置(図示せず)に設けておき、それをCPU34がその都度、あるいはトピック(話題)毎に取得するようにしてもよい。
10 …対話ロボットシステム
12 …対話ロボット
34 …CPU
40 …メモリ

Claims (6)

  1. マイクから入力される音声を認識する音声認識機能を有し、その認識結果に応じてスクリプトに従った発話を行う、対話ロボットであって、
    前記音声認識機能による認識結果に基づいて、対話者からの応答発話の認識の信頼度を判断する信頼度判断部、
    前記対話者との対話が破綻したかどうかを検出する破綻検出部、
    前記破綻検出部が検出した、対話が破綻した破綻回数をカウントする破綻回数カウンタ、および
    前記信頼度判断部によって信頼度が低いと判断したとき、前記破綻回数カウンタがカウントした前記破綻回数に応じて異なる態様で聞き返しを行う聞き返し部を備える、対話ロボット。
  2. 前記聞き返し部による聞き返しの聞き返し回数をカウントする聞き返し回数カウンタをさらに備え、
    前記聞き返し部は前記聞き返し回数が所定値未満のとき前記聞き返しを実行し、所定値以上のときには聞き返しを実行しない、請求項1記載の対話ロボット。
  3. 前記聞き返し回数が前記所定値以上の場合、話題をスキップしたスキップ回数が所定値より大きいとき対話を終了する対話終了部をさらに備える、請求項2記載の対話ロボット。
  4. 前記聞き返し部は、前記破綻回数の少ない順に、単純な聞き返し、社会的繋がりに基づく聞き返しおよび心情的聞き返しを行う、請求項1ないし3のいずれかに記載の対話ロボット。
  5. マイクから入力される音声を認識する音声認識機能を有し、その認識結果に応じてスクリプトに従った発話を行う対話ロボットのコンピュータによって実行されるロボット制御プログラムであって、前記コンピュータを、
    前記音声認識機能による認識結果に基づいて、対話者からの応答発話の認識の信頼度を判断する信頼度判断部、
    前記対話者との対話が破綻したかどうかを検出する破綻検出部、および
    前記信頼度判断部によって信頼度が低いと判断したとき、前記破綻検出部が検出した、対話が破綻した破綻回数に応じて異なる態様で聞き返しを行う聞き返し部
    として機能させる、ロボット制御プログラム。
  6. マイクから入力される音声を認識する音声認識機能を有し、その認識結果に応じてスクリプトに従った発話を行う対話ロボットのコンピュータによって実行される対話ロボットの制御方法であって、前記コンピュータが、
    前記音声認識機能による認識結果に基づいて、対話者からの応答発話の認識の信頼度を判断する信頼度判断ステップ
    前記対話者との対話が破綻したかどうかを検出する破綻検出ステップ、および
    前記信頼度判断ステップによって信頼度が低いと判断したとき、前記破綻検出ステップで検出した、対話が破綻した破綻回数に応じて異なる態様で聞き返しを行う聞き返しステップを実行する、対話ロボットの制御方法。
JP2017069873A 2017-03-31 2017-03-31 対話ロボットおよびロボット制御プログラム Active JP6941856B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017069873A JP6941856B2 (ja) 2017-03-31 2017-03-31 対話ロボットおよびロボット制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017069873A JP6941856B2 (ja) 2017-03-31 2017-03-31 対話ロボットおよびロボット制御プログラム

Publications (2)

Publication Number Publication Date
JP2018173456A JP2018173456A (ja) 2018-11-08
JP6941856B2 true JP6941856B2 (ja) 2021-09-29

Family

ID=64107771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017069873A Active JP6941856B2 (ja) 2017-03-31 2017-03-31 対話ロボットおよびロボット制御プログラム

Country Status (1)

Country Link
JP (1) JP6941856B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7092653B2 (ja) * 2018-12-19 2022-06-28 Kddi株式会社 評価装置、評価方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001188787A (ja) * 1999-12-28 2001-07-10 Sony Corp 会話処理装置および方法、並びに記録媒体
JP5189858B2 (ja) * 2008-03-03 2013-04-24 アルパイン株式会社 音声認識装置
JP2010054897A (ja) * 2008-08-29 2010-03-11 Brother Ind Ltd 音声認識装置、音声認識プログラム、受付装置および受付プログラム
EP2610862B1 (en) * 2011-12-30 2015-07-08 Samsung Electronics Co., Ltd. Electronic apparatus and method of controlling electronic apparatus
JP2014071124A (ja) * 2012-09-27 2014-04-21 Sharp Corp テレビ受信機、及びテレビ受信機の音声認識方法
JP2014137430A (ja) * 2013-01-16 2014-07-28 Sharp Corp 電子機器及び掃除機

Also Published As

Publication number Publication date
JP2018173456A (ja) 2018-11-08

Similar Documents

Publication Publication Date Title
CA2493265C (en) System and method for augmenting spoken language understanding by correcting common errors in linguistic performance
JP5753869B2 (ja) 音声認識端末およびコンピュータ端末を用いる音声認識方法
JP3945356B2 (ja) 音声対話装置及びプログラム
CN110661927A (zh) 语音交互方法、装置、计算机设备及存储介质
WO2017200074A1 (ja) 対話方法、対話システム、対話装置、及びプログラム
JP2008009153A (ja) 音声対話システム
JP6970413B2 (ja) 対話方法、対話システム、対話装置、およびプログラム
KR20150085145A (ko) 사용자 반응 기반 통역 시스템 및 그 방법
JP2014191029A (ja) 音声認識システムおよび音声認識システムの制御方法
JP4505862B2 (ja) 音声対話装置と音声対話方法及びそのプログラム
JP2018049132A (ja) 音声対話システムおよび音声対話方法
WO2018163646A1 (ja) 対話方法、対話システム、対話装置、およびプログラム
WO2017200079A1 (ja) 対話方法、対話システム、対話装置、およびプログラム
JP6941856B2 (ja) 対話ロボットおよびロボット制御プログラム
US20170337922A1 (en) System and methods for modifying user pronunciation to achieve better recognition results
JPH07129594A (ja) 自動通訳システム
Cowan et al. Does voice anthropomorphism affect lexical alignment in speech-based human-computer dialogue?
JP2017167270A (ja) 音声処理装置および音声処理方法
WO2020227557A1 (en) Method, system and apparatus for understanding and generating human conversational cues
JP6647636B2 (ja) 対話方法、対話システム、対話装置、及びプログラム
JPH11175093A (ja) 音声認識確認応答方法
KR102153220B1 (ko) 동일성 판단에 기초한 음성 인식 결과 출력 방법 및 이를 이용한 장치
KR100622019B1 (ko) 음성 인터페이스 시스템 및 방법
JP2017207693A (ja) 対話方法、対話システム、対話装置、およびプログラム
Nishimuta et al. Development of a robot quizmaster with auditory functions for speech-based multiparty interaction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201027

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210810

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210831

R150 Certificate of patent or registration of utility model

Ref document number: 6941856

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150