【国等の委託研究の成果に係る記載事項】(出願人による申告)平成28年度国立研究開発法人科学技術振興機構 戦略的創造研究推進事業 総括実施型研究ERATO「石黒共生ヒューマンロボットインタラクションプロジェクト」に係る委託業務、産業技術力強化法 第17条の適用を受ける特許出願
【文献】
菅田 裕紀 他,Eliza型 3DCG 会話ロボット”茶飲み友達”の会話モード,第58回(平成11年前期)全国大会講演論文集(2) 人工知能と認知科学,1999年 4月21日,pp.2-89〜2-90
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
この発明では、対話システムがユーザへ質問を行う第一発話を提示し、その第一発話に対するユーザの発話に応じて、第一発話に関連して対話システムが提示したい発話へ話題を誘導するための話題誘導発話を提示する。音声認識により得られたユーザ発話の内容が質問から想定される範囲内であった場合、そのユーザ発話と目的発話とに基づいて話題誘導発話を決定し、目的発話の前に提示する。ユーザ発話の行動認識に失敗した場合、第一発話と目的発話とに基づいて話題誘導発話を決定し、目的発話の前に提示する。肯定的な内容か否定的な内容かは認識できたがそれ以外の情報は音声認識では得られなかった場合、ユーザ発話に対して同調する発話を提示した後に、第一発話と目的発話とに基づいて話題誘導発話を決定し、目的発話の前に提示する。
【0018】
音声認識により得られたユーザ発話の内容が質問から想定される範囲外であった場合、そのユーザ発話はインタラプトであると判定できる。この場合、ユーザ発話と目的発話とに基づいて話題誘導発話を決定し、目的発話の前に提示する。この際、事前に決定していた目的発話の内容を、ユーザ発話の内容に応じて変更することもできる。
【0019】
ユーザ発話が対話システムからの質問に答えるものではなく、直前までの対話と関係なく独立にされる場合であっても、この発明は適用することができる。例えば、対話システムにあらかじめ記憶されているシナリオの中に、ユーザ発話の内容に近いものがなかったとき、選択したシナリオに含まれる発話を目的発話として、ユーザ発話と目的発話とに基づいて話題誘導発話を決定し、目的発話の前に提示すればよい。
【0020】
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【0021】
[第一実施形態]
第一実施形態の対話システムは、複数台の人型ロボットが協調してユーザとの対話を行うシステムである。すなわち、第一実施形態の対話システムは、エージェントが人型ロボットである場合の一例である。対話システム100は、
図1に示すように、例えば、対話装置1と、少なくともマイクロホン11を備える入力部10と、少なくともスピーカ51を備える提示部50とを含む。入力部10は、マイクロホン11に加えて、カメラ12を備えていてもよい。対話装置1は、例えば、行動認識部20、発話決定部30、および音声合成部40を備える。行動認識部20は、少なくとも音声認識部21を備え、動作認識部22を備えていてもよい。この対話システム100が後述する各ステップの処理を行うことにより第一実施形態の対話方法が実現される。
【0022】
対話装置1は、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。対話装置1は、例えば、中央演算処理装置の制御のもとで各処理を実行する。対話装置1に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて読み出されて他の処理に利用される。また、対話装置1の各処理部の少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
【0023】
[入力部10]
入力部10は提示部50と一体もしくは部分的に一体として構成してもよい。
図1の例では、入力部10の一部であるマイクロホン11−1、11−2が、提示部50である人型ロボット50−1、50−2の頭部(耳の位置)に搭載されている。また、
図1の例では入力部10の一部であるカメラ12が独立して設置されているが、例えば、人型ロボット50−1、50−2の頭部(目の位置)に搭載されていてもよい。
図1の例では、提示部50は二台の人型ロボット50−1、50−2から構成されているが、人型ロボットは複数台あればよく、三台以上の人型ロボットから構成されていてもよい。
【0024】
入力部10は、ユーザの発話を対話システム100が取得するためのインターフェースである。言い換えれば、入力部10は、ユーザの発話の発話音声や身体的な動作を対話システム100へ入力するためのインターフェースである。例えば、入力部10はユーザの発話音声を収音して音声信号に変換するマイクロホン11である。マイクロホン11は、ユーザ101が発話した発話音声を収音可能とすればよい。つまり、
図1は一例であって、マイクロホン11−1,11−2の何れか一方を備えないでもよい。また、ユーザ101の近傍などの人型ロボット50−1,50−2とは異なる場所に設置された1個以上のマイクロホン、または、複数のマイクロホンを備えたマイクロホンアレイを入力部とし、マイクロホン11−1,11−2の双方を備えない構成としてもよい。マイクロホン11は、変換により得たユーザの発話音声の音声信号を出力する。マイクロホン11が出力した音声信号は、行動認識部20の音声認識部21へ入力される。また、例えば、入力部10は、マイクロホン11に加えて、ユーザの身体的な動作を収録して映像信号に変換するカメラ12も備えてもよい。カメラ12はユーザ101の身体動作を収録可能とすればよい。つまり、
図1は一例であって、カメラ12は1個のカメラでもよいし複数のカメラでもよい。カメラ12が、変換により得たユーザの身体動作の映像信号を出力する。カメラ12が出力した映像信号は、行動認識部20の動作認識部22へ入力される。
【0025】
[行動認識部20]
行動認識部20は、マイクロホン11が収音したユーザの発話音声の音声信号を少なくとも入力として、音声認識部21を少なくとも用いて、音声認識部21が得た音声認識結果を少なくとも含むユーザの行動認識結果を得て、発話決定部30に対して出力する。なお、行動認識部20は、カメラ12が収録したユーザの身体動作の映像信号も入力として、動作認識部22も用いて、動作認識部22が得たユーザの発話の動作認識結果も含むユーザの行動認識結果を得て、発話決定部30に対して出力してもよい。
【0026】
[音声認識部21]
音声認識部21は、マイクロホン11から入力されたユーザの発話音声の音声信号を音声認識してユーザ発話の音声認識結果を得て出力する。音声認識部21が出力したユーザの発話の音声認識結果は行動認識部20がユーザの行動認識結果に含めて出力する。音声認識の方法や音声認識結果の詳細については後述する。
【0027】
[動作認識部22]
動作認識部22は、カメラ12から入力されたユーザの身体動作の映像信号から、ユーザの動作認識結果を得て出力する。動作認識部22が出力したユーザの発話の動作認識結果は行動認識部20がユーザの行動認識結果に含めて出力する。動作認識の方法や動作認識結果の詳細については後述する。
【0028】
[発話決定部30]
発話決定部30は、対話システム100からの発話内容を表すテキストを決定し、音声合成部40に対して出力する。行動認識部20からユーザの行動認識結果が入力された場合には、入力されたユーザの行動認識結果に含まれるユーザの発話の音声認識結果に少なくとも基づいて、対話システム100からの発話内容を表すテキストを決定し、音声合成部40に対して出力する。なお、対話システム100の提示部50が複数の人型ロボットで構成される場合には、発話決定部30は、当該発話をいずれの人型ロボットが提示するかを決定してもよい。この場合には、当該発話を提示する人型ロボットを表す情報も併せて音声合成部40へ出力する。また、この場合には、発話決定部30は、当該発話を提示する相手、すなわち、当該発話をユーザに対して提示するのか、何れかの人型ロボットに対して提示するのか、を決定してもよい。この場合には、当該発話を提示する相手を表す情報も併せて音声合成部40へ出力する。
【0029】
[音声合成部40]
音声合成部40は、発話決定部30から入力された発話内容を表すテキストを、発話内容を表す音声信号に変換し、提示部50に対して出力する。音声合成部40が行う音声合成の方法は、既存のいかなる音声合成技術であってもよく、利用環境等に合わせて最適なものを適宜選択すればよい。なお、発話決定部30から発話内容を表すテキストと共に当該発話を提示する人型ロボットを表す情報が入力された場合には、音声合成部40は、当該情報に対応する人型ロボットへ発話内容を表す音声信号を出力する。また、発話決定部30から発話内容を表すテキストと当該発話を提示する人型ロボットを表す情報に併せて発話を提示する相手を表す情報も入力された場合には、音声合成部40は、当該情報に対応する人型ロボットへ発話内容を表す音声信号と発話を提示する相手を表す情報を出力する。
【0030】
[提示部50]
提示部50は、発話決定部30が決定した発話内容をユーザへ提示するためのインターフェースである。例えば、提示部50は、人間の形を模して製作された人型ロボットである。この人型ロボットは、音声合成部40から入力された発話内容を表す音声信号に対応する音声を、例えば頭部に搭載したスピーカ51から発音する、すなわち、発話を提示する。スピーカ51は、音声合成部40から入力された発話内容を表す音声信号に対応する音声を発音可能とすればよい。つまり、
図1は一例であって、スピーカ51−1,51−2の何れか一方を備えないでもよい。また、ユーザ101の近傍などの人型ロボット50−1,50−2とは異なる場所に1個以上のスピーカ、または、複数のスピーカを備えたスピーカアレイを設置し、スピーカ51−1,51−2の双方を備えない構成としてもよい。また、人型ロボットは、顔の表情や、身体の動作等の非言語的な行動により発話決定部30が決定した発話内容をユーザへ提示してもよい。例えば、直前の発話に対して同意する旨を提示する際には、首を縦に振り、同意しない旨を提示する際には、首を横に振るなどの非言語的な行動を提示することが挙げられる。また、人型ロボットは、発話を提示する際に、顔や体全体をユーザまたは他の人型ロボットの方へ向けることで、顔や身体を向いた方にいるユーザまたは他の人型ロボットに対して発話を提示していることを表現することができる。提示部50を人型ロボットとした場合には、対話に参加する人格(エージェント)ごとに一台の人型ロボットを用意する。以下では、二人の人格が対話に参加する例として、二台の人型ロボット50−1および50−2が存在するものとする。なお、発話決定部30が当該発話をいずれの人型ロボットから提示するかを決定していた場合には、音声合成部40が出力した発話内容を表す音声信号を受け取った人型ロボット50−1または50−2が当該発話を提示する。また、発話決定部30が決定した発話を提示する相手を表す情報が入力された場合には、人型ロボット50−1または50−2は、発話を提示する相手を表す情報に対応する人型ロボットまたはユーザの方向へ顔や視線を向けた状態で、発話を提示する。
【0031】
以下、
図2を参照して、第一実施形態の対話方法の処理手続きを説明する。
【0032】
ステップS11において、対話システム100は、第一発話の内容を表す音声を、人型ロボット50−1が備えるスピーカ51−1から出力する、すなわち、第一発話を提示する。第一発話の内容を表す音声は、発話決定部30が決定した第一発話の内容を表すテキストを音声合成部40が音声信号に変換したものである。第一発話の内容を表すテキストは、発話決定部30が、例えば、あらかじめ定められ発話決定部30内の図示しない記憶部に記憶された定型文から任意に選択してもよいし、直前までの発話内容に応じて決定してもよい。直前までの発話内容に応じて発話内容を決定する技術は、従来の対話システムにおいて用いられているものを利用すればよく、例えば、非特許文献2に記載されたシナリオ対話システムや非特許文献3または4に記載された雑談対話システムなどを用いることができる。発話決定部30がシナリオ対話システムにおいて用いられている技術を用いる場合は、例えば、発話決定部30は、直前の5発話程度を含む対話について、各発話に含まれる単語や各発話を構成する焦点語と発話決定部30内の図示しない記憶部に記憶された各シナリオに含まれる単語や焦点語との単語間距離が所定の距離より近いシナリオを選択し、選択したシナリオに含まれるテキストを選択することにより第一発話の内容を表すテキストを決定する。発話決定部30が雑談対話システムにおいて用いられている技術を用いる場合は、発話決定部30は、例えば、ユーザの発話に含まれる単語をトリガーとして、あらかじめ記述して発話決定部30内の図示しない記憶部に記憶しておいたルールに従って第一発話の内容を表すテキストを決定してもよいし、ユーザの発話に含まれる単語と共起関係や係り受け関係にある単語に基づいて自動的にルールを生成し、そのルールに従って第一発話の内容を表すテキストを決定してもよい。
【0033】
発話決定部30は、第一発話の内容を表すテキストと、目的発話の内容を表すテキストと、を決定する。目的発話の内容は、第一発話の内容に関連するものであり、対話システムが対話することを所望する話題に関する発話である。発話決定部30は、さらに、目的発話に続く発話を決定しておいてもよい。発話決定部30がシナリオ対話システムによりあらかじめ記憶されたシナリオを選択する場合には、第一発話および目的発話は、一つのシナリオに含まれる発話としてあらかじめ用意された発話である。発話決定部30が雑談対話システムにより発話を決定する場合には、第一発話の内容を表すテキストを雑談対話システムに入力して目的発話を決定する。さらに、決定された目的発話を再帰的に雑談対話システムへ入力していくことで、目的発話に続く発話も決定することができる。
【0034】
ステップS12において、マイクロホン11は、ユーザ101が発した発話を受け付ける。以下、この発話をユーザ発話と呼ぶ。マイクロホン11が取得したユーザの発話内容を表す音声信号は音声認識部21へ入力される。音声認識部21は、マイクロホン11が取得したユーザの発話内容を表す音声信号を音声認識する。
【0035】
音声認識部21が行う音声認識の方法としては、第一発話の内容によって、例えば、A.x択認識、B.ポジネガ認識、C.妥当性認識などを適宜用いる。
【0036】
A.x択認識とは、対話の流れからあらかじめ想定される範囲の単語に限定して認識することで、誤認識を抑制する音声認識の手法である。想定される範囲としては、想定単語そのもの、店名など単語のカテゴリが一致するもの、否定形の有無などが考えられる。例えば、あらかじめ想定される範囲にある単語数がx個(xは自然数)であることから、本明細書ではx択認識と呼んでいる。すなわち、あらかじめ想定される範囲にある単語数が2個であれば二択の音声認識、あらかじめ想定される範囲にある単語数が3個であれば三択の音声認識、ということである。音声認識部21がx択認識を行う場合には、音声認識部21内であらかじめ想定される範囲のx個の単語を得るために、音声認識部21にはマイクロホン11で取得したユーザの発話内容を表す音声信号に加えて発話決定部30が決定した第一発話の内容を表すテキストも入力される。音声認識部21は、x択認識を行う場合には、あらかじめ想定される範囲のx個の単語のうちの何れの単語にユーザの発話内容を表す音声信号が対応するかを認識する。そして、音声認識部21は、認識できた場合には、ユーザの発話内容を表す音声信号が対応する単語を表す情報を、認識できなかった場合には、認識失敗を表す情報を、x択認識の結果としてユーザ発話の音声認識結果に含めて出力する。
【0037】
また、音声認識部21は、まず、マイクロホン11で取得したユーザの発話内容を表す音声信号を音声認識して認識結果のテキストを得て、次に、認識結果として得たテキストが第一発話の内容を表すテキストから想定される範囲にある何れの単語であるか何れの単語でもないかをチェックして、認識結果として得たテキストが第一発話の内容を表すテキストから想定される範囲にある何れの単語である場合には、ユーザの発話内容を表す音声信号が対応する単語を表す情報を、認識結果として得たテキストが第一発話の内容を表すテキストから想定される範囲にある何れの単語でもない場合には、認識失敗を表す情報を、x択認識の結果としてもよい。
【0038】
以上説明したように、音声認識部21がA.x択認識を行う場合には、音声認識部21にはマイクロホン11で取得したユーザの発話内容を表す音声信号と発話決定部30が決定した第一発話の内容を表すテキストとが少なくとも入力され、音声認識部21は、ユーザの発話内容を表す音声信号が対応する単語を表す情報、または、認識失敗を表す情報、をx択認識の結果としてユーザ発話の音声認識結果に含めて出力する。
【0039】
なお、単語ではなくカテゴリについてのx択認識を行ってもよい。この場合には、例えば、音声認識部21にはマイクロホン11で取得したユーザの発話内容を表す音声信号と発話決定部30が決定した第一発話の内容を表すテキストとが少なくとも入力され、音声認識部21は、ユーザの発話内容を表す音声信号が対応するカテゴリを表す情報、または、認識失敗を表す情報、をx択認識の結果としてユーザ発話の音声認識結果に含めて出力する。この場合は、対話システム100は、以降の処理においても、単語に代えてカテゴリを用いる。
【0040】
また、x択認識の単語やカテゴリを第一発話の内容を表すテキストに基づかずに予め決められる場合には、音声認識部21には第一発話の内容を表すテキストを入力せず、例えば、予め定めて図示しない記憶部に記憶した単語を用いてx択認識をしてもよい。また、例えば、第一発話以前のユーザと対話システム100による対話に基づいて、予め定めて図示しない記憶部に記憶した単語のうちの一部の単語を選択し、選択した単語を用いてx択認識をしてもよい。
【0041】
B.ポジネガ認識とは、対話の流れからユーザの発話がポジティブな内容か、ネガティブな内容かだけ認識できれば十分な場合に用いられる手法である。例えば、対話システムがYes/Noで答えられる質問を提示した後であれば、発話の一部を誤認識していても、発話が否定形で終わっている場合には、ユーザが全体としてNoを意図して発話している可能性が高い。音声認識部21がB.ポジネガ認識を行う場合には、例えば、音声認識部21にはマイクロホン11で取得したユーザの発話内容を表す音声信号と発話決定部30が決定した第一発話の内容を表すテキストとが入力され、音声認識部21は、ユーザの発話内容を表す音声信号が第一発話に対してポジティブな内容であるかネガティブな内容であるかを認識する。そして、音声認識部21は、認識できた場合には、ユーザの発話内容を表す音声信号が第一発話に対してポジティブな内容であることを表す情報、または、ユーザの発話内容を表す音声信号が第一発話に対してネガティブな内容であることを表す情報を、認識できなかった場合には、認識失敗を表す情報を、ポジネガ認識の結果としてユーザの発話の音声認識結果に含めて出力する。
【0042】
C.妥当性認識とは、マイクロホン11で取得したユーザの発話内容を表す音声信号を音声認識して認識結果として得たテキストが構文や意味的に発話として妥当なテキストであるか否かを得る手法である。音声認識部21がC.妥当性認識を行う場合には、音声認識部21にはマイクロホン11で取得したユーザの発話内容を表す音声信号が少なくとも入力され、音声認識部21は、ユーザの発話内容を表す音声信号を音声認識して認識結果のテキストを得て、得たテキストが構文や意味的に発話として妥当なテキストであるか否かを判定する。そして、音声認識部21は、得たテキストが構文や意味的に発話として妥当なテキストである場合には、妥当発話であることを表す情報と認識結果のテキストとを、得たテキストが構文や意味的に発話として妥当なテキストでない場合には、非妥当発話であることを表す情報を、妥当性認識の結果としてユーザの発話の音声認識結果に含めて出力する。
【0043】
ステップS13において、カメラ12は、ユーザ101の身体動作を受け付けてもよい。この場合には、カメラ12が取得したユーザの身体動作の映像信号は動作認識部22へ入力される。動作認識部22は、カメラ12が取得したユーザの身体動作の映像信号に基づいて、ユーザの発話の動作認識結果を得て出力する。動作認識部22がユーザのYes/Noの意図を認識する場合には、動作認識部22は、例えば、カメラ12が取得したユーザの身体動作の映像信号に含まれるユーザの表情や首をかしげたり振ったりした動作などから、Yes/Noの意図、すなわち、ユーザの発話の動作が第一発話に対してポジティブな内容であるかネガティブな内容であるかを認識する。そして、動作認識部22は、認識できた場合には、ユーザの発話の動作が第一発話に対してポジティブな内容であることを表す情報、または、ネガティブな内容であることを表す情報を、認識できなかった場合には、認識失敗を表す情報を、ポジネガ認識の結果としてユーザの発話の動作認識結果に含めて出力する。
【0044】
動作認識部22が行う動作認識の方法は、例えば、ユーザの表情の変化やユーザの頭部の動きなどを利用する方法である。この方法では、動作認識部22は、入力された映像信号からユーザの顔の時系列の画像を取得し、取得した時系列の画像から特徴(例えば、瞳孔の大きさ、目尻の位置、目頭の位置、口角の位置、口の開き具合等)の変化であるユーザの動作内容を取得する。動作認識部22は、取得したユーザの動作内容に、動作認識部22内の図示しない記憶部に記憶されたあらかじめ定めた動作が含まれる場合に、ユーザの発話の動作が第一発話に対してポジティブな内容である、もしくは、ネガティブな内容であることを認識する。例えば、ユーザが頷きながら発話した場合には、ポジティブ(Yes)を意図しているとみなすことができ、ユーザが首を傾げたり振ったりしながら発話した場合には、ネガティブ(No)を意図しているとみなすことができることから、動作認識部22内の図示しない記憶部には、あらかじめ定めた動作としてこれらの動作を記憶しておく。
【0045】
ステップS14において、発話決定部30は、行動認識部20が出力したユーザの行動認識結果を受け取り、すなわち、少なくとも音声認識部21が出力したユーザ発話の音声認識結果を受け取り、ユーザ発話の音声認識結果、および、目的発話の内容を表すテキストに少なくとも基づいて、目的発話へ話題を誘導するための話題誘導発話の内容を表すテキストを決定する。話題誘導発話は、一つの発話であってもよいし、複数の発話であってもよい。発話決定部30は話題誘導発話を提示する人型ロボットを決定してもよく、その場合、話題誘導発話の内容を表すテキストと共に話題誘導発話を提示する人型ロボットを表す情報を出力する。また、発話決定部30は話題誘導発話を提示する相手を決定してもよく、その場合、話題誘導発話の内容を表すテキストと共に話題誘導発話を提示する相手を表す情報を出力する。
【0046】
発話決定部30は、ユーザ発話の音声認識結果に少なくとも基づいて、下記の分類に応じた話題誘導発話を決定する。分類は、具体的には、1.音声認識により得られたユーザ発話の内容が想定範囲内であった場合(以下、「1.想定内の発話」と呼ぶ)、2.行動認識に失敗した場合(以下、「2.行動認識失敗」と呼ぶ)、3.行動認識により肯定的か否定的かは認識できたが、それ以外の情報は音声認識では得られなかった場合(以下、「3.認識一部成功」と呼ぶ)、4.音声認識により得られたユーザ発話の内容が想定範囲外であった場合、すなわち、ユーザが第一発話の内容や意図を無視して勝手な発話をした場合(以下、「4.想定外の発話」と呼ぶ)、である。
【0047】
発話決定部30が、行動認識部20から入力されたユーザの行動認識結果がどのような場合に、上記の「1.想定内の発話」「2.行動認識失敗」「3.認識一部成功」「4.想定外の発話」の何れの分類であると判定するかは、第一発話の内容と、行動認識部20内の音声認識部21が行った音声認識の手法や行動認識部20内の動作認識部22が行った動作認識の手法に基づく。以下では、5つの例を説明する。
【0048】
[ケース1:第一発話が、x択の何れかであるかと、Yes/Noと、を尋ねる質問である場合]
このケースでは、行動認識部20ではx択認識とポジネガ認識と妥当性認識とが行われ、これらの認識の結果がユーザの行動認識結果として発話決定部30に入力される。
【0049】
発話決定部30は、入力されたユーザの行動認識結果に含まれるx択認識の結果が単語を表す情報である場合には「1.想定内の発話」であると判定する。
【0050】
発話決定部30は、入力されたユーザの行動認識結果に含まれるx択認識の結果が認識失敗を表す情報である場合であって、入力されたユーザの行動認識結果に含まれるポジネガ認識の結果が認識失敗を表す情報である場合であって、入力されたユーザの行動認識結果に含まれる妥当性認識の結果が非妥当発話を表す情報である場合には、「2.行動認識失敗」であると判定する。
【0051】
発話決定部30は、入力されたユーザの行動認識結果に含まれるx択認識の結果が認識失敗を表す情報である場合であって、入力されたユーザの行動認識結果に含まれるポジネガ認識の結果がポジティブな内容であることを表す情報またはネガティブな内容であることを表す情報である場合には、「3.認識一部成功」であると判定する。
【0052】
発話決定部30は、入力されたユーザの行動認識結果に含まれるx択認識の結果が認識失敗を表す情報である場合であって、入力されたユーザの行動認識結果に含まれるポジネガ認識の結果が認識失敗を表す情報である場合であって、入力されたユーザの行動認識結果に含まれる妥当性認識の結果が妥当発話を表す情報である場合には、「4.想定外の発話」であると判定する。
【0053】
[ケース2:第一発話を提示しているときにユーザが発話した場合]
このケースでは、行動認識部20では妥当性認識が行われ、妥当性認識の結果がユーザの行動認識結果として発話決定部30に入力される。
【0054】
発話決定部30は、入力されたユーザの行動認識結果に含まれる妥当性認識の結果が妥当発話を表す情報である場合には、「4.想定外の発話」であると判定する。
【0055】
発話決定部30は、入力されたユーザの行動認識結果に含まれる妥当性認識の結果が非妥当発話を表す情報である場合には、「2.行動認識失敗」であると判定する。
【0056】
[ケース3:第一発話がYes/Noを尋ねる質問である場合]
このケースでは、行動認識部20ではポジネガ認識と妥当性認識とが行われ、これらの認識の結果がユーザの行動認識結果として発話決定部30に入力される。
【0057】
発話決定部30は、入力されたユーザの行動認識結果に含まれるポジネガ認識の結果がポジティブな内容であることを表す情報またはネガティブな内容であることを表す情報である場合には、「1.想定内の発話」であると判定する。
【0058】
発話決定部30は、入力されたユーザの行動認識結果に含まれるポジネガ認識の結果が認識失敗を表す情報である場合であって、入力されたユーザの行動認識結果に含まれる妥当性認識の結果が非妥当発話を表す情報である場合には、「2.行動認識失敗」であると判定する。
【0059】
発話決定部30は、入力されたユーザの行動認識結果に含まれるポジネガ認識の結果が認識失敗を表す情報である場合であって、入力されたユーザの行動認識結果に含まれる妥当性認識の結果が妥当発話を表す情報である場合には、「4.想定外の発話」であると判定する。
【0060】
[ケース4:第一発話がx択の何れかであるかを尋ねる質問である場合]
このケースでは、行動認識部20ではx択認識と妥当性認識とが行われ、これらの認識の結果がユーザの行動認識結果として発話決定部30に入力される。
【0061】
発話決定部30は、入力されたユーザの行動認識結果に含まれるx択認識の結果が単語を表す情報である場合には「1.想定内の発話」であると判定する。
【0062】
発話決定部30は、入力されたユーザの行動認識結果に含まれるx択認識の結果が認識失敗を表す情報である場合であって、入力されたユーザの行動認識結果に含まれる妥当性認識の結果が非妥当発話を表す情報である場合には、「2.行動認識失敗」であると判定する。
【0063】
発話決定部30は、入力されたユーザの行動認識結果に含まれるx択認識の結果が認識失敗を表す情報である場合であって、入力されたユーザの行動認識結果に含まれる妥当性認識の結果が妥当発話を表す情報である場合には、「4.想定外の発話」であると判定する。
【0064】
[ケース5:第一発話がオープン質問である場合]
このケースでは、行動認識部20ではx択認識と妥当性認識とが行われ、これらの認識の結果がユーザの行動認識結果として発話決定部30に入力される。また、行動認識部20では、x択認識が行われる。
【0065】
発話決定部30は、入力されたユーザの行動認識結果に含まれるx択認識の結果が単語を表す情報である場合には「1.想定内の発話」であると判定する。
【0066】
発話決定部30は、入力されたユーザの行動認識結果に含まれるx択認識の結果が認識失敗を表す情報である場合であって、入力されたユーザの行動認識結果に含まれる妥当性認識の結果が非妥当発話を表す情報である場合には、「2.行動認識失敗」であると判定する。
【0067】
発話決定部30は、入力されたユーザの行動認識結果に含まれるx択認識の結果が認識失敗を表す情報である場合であって、入力されたユーザの行動認識結果に含まれる妥当性認識の結果が妥当発話を表す情報である場合には、「4.想定外の発話」であると判定する。
【0068】
次に、発話決定部30が、「1.想定内の発話」「2.行動認識失敗」「3.認識一部成功」「4.想定外の発話」の何れの分類であると判定した場合に、どのような話題誘導発話を決定するかを説明する。なお、発話決定部30は、後述する[第一実施形態の具体例]で説明するような話題誘導発話を決定してもよい。
【0069】
「1.想定内の発話」の場合、発話決定部30は、ユーザ発話に含まれるいずれかの単語から容易に連想され、かつ目的発話の焦点語のいずれかを連想させる話題誘導発話を決定する。発話決定部30は、まず、ユーザ発話に含まれる各単語から連想される単語と、目的発話の各焦点語を連想させる単語と、をそれぞれ連想語として抽出する。連想語の抽出方法としては、あらかじめ大規模なテキストコーパス中の単語の係り受け関係や共起関係を記憶しておき、ある単語と関係のある単語を出力する方法、同義語・類似語辞書を利用して同義語・類義語を出力する方法、word2vecなどの単語を意味ベクトルに変換する方法を利用して距離の近い意味ベクトルを持つ単語を出力する方法などが考えられる。これらの方法では、単語が複数出力される場合があるが、その場合には、複数の単語による集合から、ランダムに選択して1つの単語を出力する方法や、目的発話の焦点語と連想単語の距離が近いものを優先して出力する方法などを採用すればよい。そして、発話決定部30は、発話決定部30の図示しない記憶部に記憶された発話文のうち、ユーザ発話の連想語と目的発話の連想語の両方を含む発話文から文脈に沿ったものを選択することで、話題誘導発話を決定する。決定する話題誘導発話は、複数の発話を含み、複数段階の連想を経てユーザ発話に含まれる単語のいずれかから目的発話の焦点語のいずれかを連想させる発話であってもよい。
【0070】
「2.行動認識失敗」の場合、第一発話に関連する一つ以上の発話と、目的発話の焦点語のいずれかを連想させる話題誘導発話と、を決定する。第一発話に関連する一つ以上の発話は、様々なパターンが考えられる。例えば、第一発話を提示した人型ロボット50−1が他の人型ロボット50−2に対して提示するための、第一発話と同様の内容の発話と、これに対して人型ロボット50−2が提示するための、第一発話の内容から想定される応答を内容とする発話とが挙げられる。また例えば、第一発話を提示した人型ロボット50−1以外の人型ロボット50−2が第一発話を提示した人型ロボット50−1に対して提示するための、第一発話の意図に直接答えないが第一発話の内容に関連する発話が挙げられる。また例えば、第一発話を提示した人型ロボット50−1以外の人型ロボット50−2が第一発話を提示した人型ロボット50−1に対して提示するための、第一発話の意図に沿った応答を内容とする発話と、さらにその理由付けなどの付加情報を含む発話とが挙げられる。
【0071】
「3.認識一部成功」の場合、ユーザ発話が肯定的な内容であると判定されたときは、第一発話を提示した人型ロボット50−1が提示するための、ユーザに対して同意できる旨の発話と、その発話と矛盾なく目的発話の焦点語のいずれかを連想させる話題誘導発話とを決定する。ユーザ発話が否定的な内容であると判定されたときは、第一発話を提示した人型ロボット50−1が提示するための、ユーザに対して同意できない旨の発話と、他の人型ロボット50−2がユーザに対して提示するための、同意できる旨もしくは同意できない旨の発話と、それらの発話と矛盾なく目的発話の焦点語のいずれかを連想させる話題誘導発話とを決定する。
【0072】
「4.想定外の発話」の場合、ユーザ発話に関連する複数の発話と、目的発話の焦点語のいずれかを連想させる話題誘導発話とを決定する。ユーザ発話に関連する複数の発話は、複数の人型ロボットが分担して提示するように、各発話を提示する人型ロボットを決定してもよい。目的発話が複数の発話からなるとき、ユーザ発話の話題が目的発話の二番目以降の発話に繋げた方がより自然な流れになる場合は、目的発話の一部を省略してもよい。また、ユーザ発話の話題が目的発話のいずれの発話にも繋げるのが難しい場合には、決定していた目的発話を破棄して、他の発話を新たな目的発話として再選択してもよい。
【0073】
ステップS15において、音声合成部40は、話題誘導発話の内容を表すテキストを話題誘導発話の内容を表す音声信号に変換し、提示部50は、発話内容を表す音声信号に対応する音声を、人型ロボット50−1が備えるスピーカ51−1または人型ロボット50−2が備えるスピーカ51−2から出力する。発話決定部30から話題誘導発話の内容を表すテキストと共に話題誘導発話を提示する人型ロボットを表す情報が入力された場合、提示部50は、当該情報に対応する人型ロボット50が備えるスピーカ51から当該話題誘導発話の内容を表す音声を出力する。発話決定部30から話題誘導発話の内容を表すテキストと共に話題誘導発話を提示する相手を表す情報が入力された場合、提示部50は、当該情報に対応する相手のいる方向へ人型ロボット50の顔もしくは体全体を向けて当該話題誘導発話の内容を表す音声を出力する。
【0074】
ステップS16において、音声合成部40は、目的発話の内容を表すテキストを目的発話の内容を表す音声信号に変換し、提示部50は、目的発話の発話内容を表す音声信号に対応する音声を、人型ロボット50−1が備えるスピーカ51−1または人型ロボット50−2が備えるスピーカ51−2から出力する。発話決定部30から目的発話の内容を表すテキストと共に目的発話を提示する人型ロボットを表す情報が入力された場合、提示部50は、当該情報に対応する人型ロボット50が備えるスピーカ51から当該目的発話の内容を表す音声を出力する。発話決定部30から目的発話の内容を表すテキストと共に目的発話を提示する相手を表す情報が入力された場合、提示部50は、当該情報に対応する相手のいる方向へ人型ロボット50の顔もしくは体全体を向けて当該目的発話の内容を表す音声を出力する。
【0075】
以降、対話システムは目的発話の内容を話題とした発話を行うことで、ユーザとの対話を続行する。例えば、目的発話をシナリオ対話システムにおいて用いられている技術により生成した場合には、シナリオ対話システムにおいて用いられている技術により選択したシナリオに沿った対話がユーザと対話システムとの間で実行されるように、対話システムはシナリオ対話システムにおいて用いられている技術により決定したシナリオ発話の発話内容を表す音声をスピーカから出力する。また、例えば、目的発話を雑談対話システムにおいて用いられている技術により生成した場合には、ユーザの発話に基づいて雑談対話システムにおいて用いられている技術により決定した雑談発話の発話内容を表す音声をスピーカから出力する。以降の発話を提示する人型ロボットは、何れか一台の人型ロボットであってもよいし、複数台の人型ロボットであってもよい。
【0076】
[第一実施形態の具体例]
以下、第一実施形態による対話内容の具体例を示す。以降の具体例の記載では、Rはロボットを表し、Hはユーザを表す。Rの後の数字は人型ロボットの識別子である。t(i)(i=0, 1, 2, …)は対話中の発話または行動を表し、特に、t(1)は第一発話、t(2)は第一発話に対するユーザ発話、t(3)は話題誘導発話、t(4)は目的発話を表す。各発話または行動の記載順は、その発話または行動を提示または表出する順番を表す。各発話が複数の発話からなる場合、t(i-j)と表す。例えば、話題誘導発話が3つの発話を含む場合、話題誘導発話はt(3-1), t(3-2), t(3-3)で表す。
【0077】
(具体例1−1:想定内の発話、連想による話題の誘導)
具体例1−1は、ユーザ発話の音声認識結果が第一発話の内容から想定される範囲内であったときに、連想による話題の誘導を行う例である。
【0078】
t(1) R1:ラーメン、そば、うどんなら、やっぱりラーメン派?
t(2) H:いや、そばかな
t(3) R2:だよね。そばってヘルシーな感じ。
t(4) R1:お酒の後のラーメンって健康的にはNGだけど、やばいよね
【0079】
この例では、対話システムが提示したい目的発話t(4)の焦点語の一つである「健康」を連想によって導くために、第一発話t(1)に対して発せられ第一発話t(1)の内容から想定される範囲内であったユーザ発話t(2)の後に、第一発話t(1)を発した人型ロボットR1とは異なる人型ロボットR2が「ヘルシー」を含む話題誘導発話t(3)を発話している。これにより、現在の対話が「健康」を話題としていることを認めている参加者が多数派である状態となり、話題を誘導することができる。一方で、第一発話t(1)に対するユーザ発話であるユーザの回答t(2)に対しては賛同を示す(「だよね。」の部分)ことで、ユーザが完全に少数派となり疎外感を与えないように配慮している。このとき、賛同を示す発話を行うのは、話題誘導発話t(3)を発話する人型ロボットR2であってもよいし、他の人型ロボットR1であってもよい。
【0080】
(具体例1−2:想定内の発話、連想による話題の誘導、複数発話)
具体例1−2は、ユーザ発話の音声認識結果が第一発話の内容から想定される範囲内であったときに、複数段階の連想による話題の誘導を行う例である。
【0081】
t(1) R1:ラーメン、そば、うどんなら、やっぱりラーメン派?
t(2) H:うどんかな
t(3-1) R2:うどんと言えば香川だね
t(3-2) R1:うん、あ、でもこの間、和歌山で食べたうどんもおいしかったよ
t(3-3) R2:そうなの?和歌山はラーメンだけかと思ってた
t(3-4) R1:うどんも有名だよ。でも確かに和歌山はどっちかっていえばラーメンかなあ。
t(4) R1:お酒の後のラーメンって健康的にはNGだけど、やばいよね
【0082】
この例では、第一発話t(1)に対して発せられ第一発話t(1)の内容から想定される範囲内であったユーザ発話t(2)に含まれる単語「うどん」から、複数の話題誘導発話t(3-1)〜t(3-4)によって「うどん」→「香川」→「和歌山」→「ラーメン」のように複数段階の連想を経て、対話システムが提示したい目的発話t(4)の焦点語の一つである「ラーメン」を導いている。これらの話題誘導発話t(3-1)〜t(3-4)を複数の人型ロボットが分担して発話することで、現在の対話が「ラーメン」を話題としている参加者が多数派である状態となり、話題を誘導することができる。
【0083】
(具体例2−1:行動認識失敗、他のロボットへ同じ発話)
具体例2−1は、ユーザ発話の行動認識に失敗したときに、他のロボットへ同じ内容の発話を提示して、他のロボットがこれに回答することで、自然な多数決による話題の誘導を行う例である。
【0084】
t(1) R1:ラーメン、そば、うどんなら、やっぱりラーメン派?
t(2) H:*****(行動認識失敗)
t(3-1) R1:そっか、君は?
t(3-2) R2:ラーメン
t(3-3) R1:だよね
t(4) R1:お酒の後のラーメンって健康的にはNGだけど、やばいよね
【0085】
この例では、第一発話t(1)に対して発せられたユーザ発話t(2)の行動認識に失敗したため、第一発話t(1)を提示した人型ロボットR1が他の人型ロボットR2に第一発話t(1)と同様の発話t(3-1)をユーザ発話t(2)の後に提示し、これに対して対話システムが提示したい目的発話t(4)の焦点語の一つである「ラーメン」を回答する話題誘導発話t(3-2)を提示し、さらに人型ロボットR1が賛同する発話t(3-3)を提示することで、対話システムが提示したい目的発話t(4)を導いている。このとき、一般的に同意される可能性が高い回答をする発話t(3-2)を提示しておくと、ユーザの意図を汲むものとなりやすい。
【0086】
(具体例2−2:行動認識失敗、話題を脱線)
具体例2−2は、ユーザ発話の行動認識に失敗したときに、一旦話題を脱線させてから元の話題に戻すことで、自然な多数決による話題の誘導を行う例である。
【0087】
t(1) R1:ラーメン、そば、うどんなら、やっぱりラーメン派?
t(2) H:*****(行動認識失敗)
t(3-1) R2:何々派って、人間性でるよね
t(3-2) R1:そんなつもりじゃないよ
t(3-3) R2:僕はラーメン派だなぁ
t(4) R1:お酒の後のラーメンって健康的にはNGだけど、やばいよね
【0088】
この例では、第一発話t(1)に対して発せられたユーザ発話t(2)の行動認識に失敗したため、第一発話t(1)の内容に関連するが本題ではない発話t(3-1)をユーザ発話t(2)の後に提示して一旦話題を脱線させた後に、対話システムが提示したい目的発話t(4)の焦点語の一つである「ラーメン」を含む話題誘導発話t(3-3)を提示することで、対話システムが提示したい目的発話t(4)を導いている。第一発話t(1)自体から連想される発話で脱線することで、ユーザの発話が無視される状態を作らず、ユーザが完全に少数派とならないように配慮している。
【0089】
(具体例2−3:行動認識失敗、付加情報を含む発話)
具体例2−3は、ユーザ発話の行動認識に失敗したとき、第一発話に関係する付加情報を含む発話を提示して、自然な多数決による話題の誘導を行う例である。
【0090】
t(1) R1:ラーメン、そば、うどんなら、やっぱりラーメン派?
t(2) H:*****(行動認識失敗)
t(3-1) R2:僕はこの間、和歌山に行っておいしいのを食べてから、ラーメン派だよ
t(3-2) R1:お、和歌山
t(3-3) R2:うん、味噌ラーメン
t(4) R1:お酒の後のラーメンって健康的にはNGだけど、やばいよね
【0091】
この例では、第一発話t(1)に対して発せられたユーザ発話t(2)の行動認識に失敗したため、ユーザ発話t(2)の後に、付加的な情報(「和歌山に行っておいしいのを食べてから」)を追加して、一旦それに関する話題の発話t(3-1), t(3-2)を提示した後に、対話システムが提示したい発話t(4)の焦点語の一つである「ラーメン」を含む話題誘導発話t(3-3)を提示することで、対話システムが提示したい目的発話t(4)を導いている。付加情報に関するやり取りt(3-1)〜t(3-2)を付加して話題の遷移に時間やターンをかけることで、話題を強引に誘導している印象(またはユーザを無視している印象)を低減することができる。
【0092】
(具体例3−1:認識一部成功(その1))
具体例3−1は、ユーザ発話のx択認識には失敗したが、ポジネガ認識や動作認識により肯定的な内容であることが判定できたときに、人型ロボット同士の対話を提示することで、自然な多数決による話題の誘導を行う例である。
【0093】
t(1) R1:ラーメン、そば、うどんなら、やっぱりラーメン派?
t(2) H:**<肯定的>**(x択認識に失敗したが、肯定的であることは判定できた)
t(3-1) R2:だよねぇ
t(3-2) R1:僕はこの間、和歌山に行っておいしいのを食べてから、ラーメン派だよ
t(3-3) R2:お、和歌山
t(3-4) R1:うん、味噌ラーメン
t(4) R1:お酒の後のラーメンって健康的にはNGだけど、やばいよね
【0094】
この例では、第一発話t(1)に対して発せられたユーザ発話t(2)のx択認識には失敗したが、ポジネガ認識や動作認識により肯定的な内容であることは判定できたため、「ユーザが第一発話に対して肯定的である」という情報に対して、肯定的な応答を表す発話t(3-1)を提示することで、一旦ユーザの意図する話題が多数派である状態とする。これにより、話題誘導発話t(3-2)〜t(3-4)により導かれた話題がユーザの意図に反しており、ユーザが少数派となったとしても不満感を与えないようにできる。話題誘導発話t(3-2)〜t(3-4)は音声認識に失敗した例と同様であるが、肯定的な応答と整合性が保たれるように決定する必要がある。
【0095】
(具体例3−2:認識一部成功(その2))
具体例3−2は、ユーザ発話のx択認識には失敗したが、ポジネガ認識や動作認識により否定的な内容であることが判定できたときに、人型ロボット同士の対話を提示することで、自然な多数決による話題の誘導を行う例である。
【0096】
t(1) R1:ラーメン、そば、うどんなら、やっぱりラーメン派?
t(2) H:**<否定的>**(x択認識に失敗したが、否定的であることは判定できた)
t(3-1) R1:えー、そっか。君は?
t(3-2) R2:僕もラーメン派ではないかなぁ
t(3-3) R1:そっか。でも、誰が何と言おうと、僕はラーメン派。
t(3-4) R2:好きなんだね。人それぞれだからいいけど。
t(4) R1:お酒の後のラーメンって健康的にはNGだけど、やばいよね
【0097】
この例では、第一発話t(1)に対して発せられたユーザ発話t(2)のx択認識には失敗したが、ポジネガ認識や動作認識により否定的な内容であることは判定できたため、「ユーザが第一発話t(1)に対して否定的である」という情報に対して、否定された第一発話t(1)を発話した人型ロボットR1が驚きを示す発話t(3-1)をユーザ発話t(2)の後に提示する。発話t(3-1)を提示した後に、他の人型ロボットR2がユーザ発話t(2)に同調して否定的な発話t(3-2)を提示することで、ユーザが多数派である印象を与える。その上で、対話システムが提示したい目的発話t(4)の焦点語の一つである「ラーメン」を導く発話t(3-3)と、これに歩み寄る姿勢を見せる発話t(3-4)を提示することで、話題誘導発話t(3-1)〜t(3-4)で示した話題の遷移が多数派である状態とする。
【0098】
すなわち、この例は、目的発話t(4)が第一発話t(1)に対する肯定的な発話を受けた発話として違和感がないものであるケースにおいて、ユーザ発話t(2)が否定的な発話である場合に、第一発話を提示した人型ロボットR1がユーザ発話t(2)に同調しない発話t(3-1), t(3-3)を提示し、人型ロボットR1とは別の人型ロボットR2がユーザ発話t(2)に同調する発話t(3-2)を提示する構成を含んでいる。
【0099】
また、このとき、ユーザの発話に同調して見せた人型ロボットR2が歩み寄る姿勢を見せる発話t(3-4)を提示することで、ユーザも歩み寄る姿勢を誘発することが期待できる。
【0100】
なお、この例とは逆のケース、すなわち、目的発話t(4)が第一発話t(1)に対する否定的な発話を受けた発話として違和感がないものであるケースにおいては、ユーザ発話t(2)が肯定的な発話である場合に、第一発話を提示した人型ロボットR1がユーザ発話t(2)に同調しない発話を提示し、人型ロボットR1とは別の人型ロボットR2がユーザ発話t(2)に同調する発話を提示する構成を含めばよい。
【0101】
(具体例3−3:認識一部成功(その3))
具体例3−3は、ユーザ発話のx択認識には失敗したが、ポジネガ認識や動作認識により肯定的な内容であることが判定できたときに、人型ロボット同士の対話を提示することで、自然な多数決による話題の誘導を行う例である。
【0102】
t(1) R1:ラーメン、そば、うどんなら、やっぱりラーメン派?
t(2) H:**<肯定的>**(x択認識に失敗したが、肯定的であることは判定できた)
t(3-1) R2:えー、そうなの?
t(3-2) R1:僕はこの間、和歌山に行っておいしいのを食べてから、ラーメン派だよ
t(3-3) R2:お、和歌山
t(3-4) R1:うん、味噌ラーメン
t(4) R1:お酒の後のラーメンって健康的にはNGだけど、やばいよね
【0103】
この例では、第一発話t(1)に対して発せられたユーザ発話t(2)のx択認識には失敗したが、ポジネガ認識や動作認識により肯定的な内容であることは判定できたため、「ユーザが第一発話に対して肯定的である」という情報に対して、肯定的な応答を表す発話t(3-2)を提示することで、一旦ユーザの意図する話題が多数派である状態とする。その際、否定的な応答を表す発話t(3-1)も提示する。
【0104】
すなわち、この例は、目的発話t(4)が第一発話t(1)に対する肯定的な発話を受けた発話として違和感がないものであるケースにおいて、ユーザ発話t(2)が肯定的な発話である場合に、あるロボットである人型ロボットR2がユーザ発話t(2)に同調しない発話t(3-1)を提示し、人型ロボットR2とは別の人型ロボットR1がユーザ発話t(2)に同調する発話t(3-2)を提示する構成を含んでいる。
【0105】
また、発話t(3-2)を提示した後に、目的発話t(4)と整合性が保たれるような発話である話題誘導発話t(3-3)〜t(3-4)を提示し、その後に目的発話t(4)を提示する。
【0106】
この例では、否定的な応答を表す発話t(3-1)と肯定的な応答を表す発話t(3-2)の両方を提示することで、ロボット間でも意見の相違が生じることがあることを示し、その後にt(3-3)〜t(4)を提示することで、意見の相違からロボットが復帰できることを示すことで、ロボットが個性を持った知的な存在であるという印象をユーザに与えることができる。
【0107】
なお、この例とは逆のケース、すなわち、目的発話t(4)が第一発話t(1)に対する否定的な発話を受けた発話として違和感がないものであるケースにおいては、ユーザ発話t(2)が否定的な発話である場合に、あるロボットである人型ロボットR2がユーザ発話t(2)に同調しない発話を提示し、人型ロボットR2とは別の人型ロボットR1がユーザ発話t(2)に同調する発話を提示する構成を含めばよい。
【0108】
(具体例3−4:認識一部成功(その4))
具体例3−4は、ユーザ発話のx択認識には失敗したが、ポジネガ認識や動作認識により否定的な内容であることが判定できたときに、人型ロボット同士の対話を提示することで、自然な多数決による話題の誘導を行う例である。
【0109】
t(1) R1:ラーメン、そば、うどんなら、やっぱりラーメン派?
t(2) H:**<否定的>**(x択認識に失敗したが、否定的であることは判定できた)
t(3-1) R1:えー、そっか。残念。
t(3-2) R2:ラーメンいいよねえ。
t(3-3) R1:だよね。僕は外で食べるときはラーメンが多いかなあ。
t(3-4) R2:まあ、食べすぎるとお腹回りに来るんだけど。
t(4) R1:お酒の後のラーメンって健康的にはNGだけど、やばいよね
【0110】
この例では、第一発話t(1)に対して発せられたユーザ発話t(2)のx択認識には失敗したが、ポジネガ認識や動作認識により否定的な内容であることは判定できたため、「ユーザが第一発話に対して否定的である」という情報に対して、複数ロボットによって肯定的な応答を表す発話t(3-1), t(3-2)を提示することで、第一発話t(1)に対して肯定的であるのが多数派である状態とする。
【0111】
すなわち、この例は、目的発話t(4)が第一発話t(1)に対する肯定的な発話を受けた発話として違和感がないものであるケースにおいて、ユーザ発話t(2)が否定的な発話である場合に、あるロボットである人型ロボットR1によるユーザ発話に同調しない発話t(3-1)と、人型ロボットR1とは別の人型ロボットR2によるユーザ発話に同調しない発話t(3-2)と、を提示する構成を含んでいる。
【0112】
また、発話t(3-2)を提示した後に、目的発話t(4)と整合性が保たれるような発話である話題誘導発話t(3-3)〜t(3-4)を提示し、その後に目的発話t(4)を提示する。
【0113】
なお、この例とは逆のケース、すなわち、目的発話t(4)が第一発話t(1)に対する否定的な発話を受けた発話として違和感がないものであるケースにおいては、ユーザ発話t(2)が肯定的な発話である場合に、あるロボットである人型ロボットR1によるユーザ発話に同調しない発話t(3-1)と、人型ロボットR1とは別の人型ロボットR2によるユーザ発話に同調しない発話t(3-2)と、を提示する構成を含めばよい。
【0114】
(具体例4−1:想定外の発話、FAQ対話)
具体例4−1は、音声認識により得られたユーザ発話の内容が第一発話の内容から想定される範囲外であったときに、ユーザ発話に類似した発話を提示することで、話題の誘導を行う例である。
【0115】
t(1) R1:ぼく温泉だと湯布院が好きなんだけど・・・
t(2) H:え?ロボットなのに温泉入れるの?
t(3-1) R2:きみは温泉は好き?
t(3-2) R1:うん、好きだよ
t(4) R1:湯布院は風情があっていいよね
【0116】
この例では、第一発話t(1)を提示している途中で、ユーザが質問t(2)でインタラプトしている。このユーザ発話t(2)は第一発話t(1)の内容から想定される範囲外となっているため、ユーザ発話t(2)に類似する内容の質問を、第一発話t(1)を提示した人型ロボットR1とは異なる人型ロボットR2がユーザ発話t(2)の後に提示している。これに対して人型ロボットR1が応答することで、自然な流れで対話システムが提示したい目的発話t(4)を導いている。
【0117】
(具体例4−2:想定外の発話、追加質問)
具体例4−2は、音声認識により得られたユーザ発話の内容が第一発話の内容から想定される範囲外であったときに、ユーザ発話に関連する質問を提示することで、話題の誘導を行う例である。
【0118】
t(1) R1:ぼく温泉だと湯布院が好きなんだけど・・・
t(2) H:湯布院いいよね!
t(3-1) R2:だよね!湯布院のどこが好きなの?
t(3-2) R1:風情があるところが好きだよ
t(4) R2:湯布院は風情があっていいよね
【0119】
この例では、第一発話t(1)を提示している途中で、ユーザが質問ではない通常の発話t(2)でインタラプトしている。このユーザ発話t(2)は第一発話t(1)の内容から想定される範囲外となっているため、第一発話t(1)を提示した人型ロボットR1とは異なる人型ロボットR2が、ユーザ発話t(2)をいったん相槌で受け止め、その後ユーザ発話t(2)に関連する内容の質問を、ユーザ発話t(2)の後に提示している。これに対して人型ロボットR1が応答することで、ユーザ発話を対話の流れに反映しつつ、自然な流れで対話システムが提示したい目的発話t(4)を導いている。
【0120】
(具体例4−3:想定外の発話、シナリオ一部省略)
具体例4−3は、音声認識により得られたユーザ発話の内容が第一発話の内容から想定される範囲外であったときに、対話システムが提示したい発話文の一部を省略することで、話題の誘導を行う例である。
【0121】
以下は、第一発話t(1)に対して発せられたユーザ発話t(2)が第一発話t(1)の内容から想定される範囲内にある場合に、話題誘導発話を用いずに、対話システムが提示したい目的発話t(4-1)〜t(4-3)をユーザ発話t(2)の後に提示する対話の例である。
【0122】
t(1) R1:ラーメン、そば、うどんなら、やっぱりラーメン派?
t(2) H:おそばかな
t(4-1) R2:だよね。そばってヘルシーな感じ。
t(4-2) R1:お酒の後のラーメンって健康的にはNGだけど、やばいよね
t(4-3) R2:健康に一番効いてくるのは、やっぱり普段の運動だよね。
【0123】
以下は、第一発話t(1)に対して発せられたユーザ発話t(2)が第一発話t(1)の内容から想定される範囲外であった場合に、対話システムが提示したい目的発話の一部t(4-1)〜t(4-2)を省略し、ユーザ発話t(2)と対話システムが提示したい発話t(4-3)との間を繋ぐ話題誘導発話t(3)をユーザ発話t(2)の後に提示する例である。
【0124】
t(1) R1:ラーメン、そば、うどんなら、やっぱりラーメン派?
t(2) H:あー、お腹空いたね
t(3) R2:最近、食べてばっかりで、健康診断やばいかも
t(4-3) R2:健康に一番効いてくるのは、やっぱり普段の運動だよね。
【0125】
(具体例4−4:想定外の発話、シナリオ一部省略、複数発話)
具体例4−4は、音声認識により得られたユーザ発話の内容が第一発話の内容から想定される範囲外であったときに、対話システムが提示したい目的発話の一部を省略し、複数の発話により話題の誘導を行う例である。
【0126】
t(1) R1:ラーメン、そば、うどんなら、やっぱりラーメン派?
t(2) H:あー、お腹空いたね
t(3-1) R2:最近、食べてばっかりで、健康診断やばいかも
t(3-2) R1:ぼく、健康診断のときは、1か月前からジョギングするんだ
t(4-3) R2:健康に一番効いてくるのは、やっぱり普段の運動だよね。
【0127】
この例では、第一発話t(1)に対して発せられたユーザ発話t(2)の内容が第一発話t(1)の内容から想定される範囲外であったため、対話システムが提示したい目的発話の一部t(4-1)〜t(4-2)を省略し、ユーザ発話t(2)と対話システムが提示したい発話t(4-3)との間を繋ぐ複数の話題誘導発話t(3-1), t(3-2)をユーザ発話t(2)の後に人型ロボットR1、R2が分担して提示している。これにより、対話システムが提示したい目的発話t(4-3)への話題の遷移が多数派である状態とする。
【0128】
(具体例4−5:想定外の発話、シナリオ再選択)
具体例4−5は、音声認識により得られたユーザ発話の内容が第一発話の内容から想定される範囲外であったときに、対話システムが提示しようとしていた目的発話を再選択して、新しい目的発話へ話題の誘導を行う例である。
【0129】
t(1) R1:ラーメン、そば、うどんなら、やっぱりラーメン派?
t(2) H:そういう心理テストみたいなの好きだね
t(3-1) R2:ぼく、人を分析するのは好きじゃないな
t(3-2) R1:どうして?
t(4') R2:疑って人を傷つけるよりは、信じて裏切られる方がいいじゃん
【0130】
この例では、第一発話t(1)に対して発せられたユーザ発話t(2)の内容が第一発話t(1)の内容から想定される範囲から大きく外れており、対話システムが提示したい目的発話t(4-1)〜t(4-3)に話題を遷移させることが困難となっている。そこで、対話システムが提示したい発話t(4-1)〜t(4-3)を取り止め、ユーザ発話t(2)に関連する他の発話t(4')を選択し、ユーザ発話t(2)と再選択された発話t(4')との間を繋ぐ話題誘導発話t(3-1)〜t(3-2)をユーザ発話t(2)の後に提示して、話題を誘導している。
【0131】
[第二実施形態]
第一実施形態では、対話システムから提示した第一発話に対するユーザ発話の音声認識結果を少なくとも含むユーザの行動認識結果に基づいて、対話システムが提示したい目的発話の話題へ誘導する構成を説明した。しかしながら、ユーザが自発的に発話したユーザ発話に基づいて、対話システムが提示したい目的発話の話題へ誘導する構成としてもよい。第二実施形態は、ユーザ発話に基づいて対話システムが提示したい目的発話を決定したときに、ユーザ発話の話題と目的発話の話題とが遠い場合に、話題を誘導する発話をユーザ発話と目的発話の間に挿入する構成である。
【0132】
以下、
図3を参照して、第二実施形態の対話方法の処理手続きを説明する。
【0133】
ステップS21において、マイクロホン11は、ユーザ101が発した発話を受け付ける。以下、この発話をユーザ発話と呼ぶ。マイクロホン11が取得したユーザの発話内容を表す音声信号は音声認識部21へ入力される。音声認識部21は、マイクロホン11が取得したユーザの発話内容を表す音声信号を音声認識する。この実施形態では、行動認識部20内の音声認識部21はC.妥当性認識のみを行う。音声認識部21は、マイクロホン11が取得したユーザの発話内容を表す音声信号を妥当性認識し、ユーザ発話の音声認識結果を出力する。
【0134】
ステップS22において、発話決定部30は、行動認識部20が出力したユーザの行動認識結果を受け取り、すなわち、音声認識部21が出力したユーザ発話の音声認識結果を受け取り、ユーザ発話の音声認識結果に基づいて、目的発話の内容を表すテキストと目的発話へ話題を誘導するための話題誘導発話の内容を表すテキストとを決定する。話題誘導発話および目的発話はいずれも、一つの発話であってもよいし、複数の発話であってもよい。発話決定部30は話題誘導発話および目的発話を提示する人型ロボットを決定してもよく、その場合、話題誘導発話の内容を表すテキストと共に話題誘導発話を提示する人型ロボットを表す情報を出力し、目的発話の内容を表すテキストと共に目的発話を提示する人型ロボットを表す情報を出力する。また、発話決定部30は話題誘導発話および目的発話を提示する相手を決定してもよく、その場合、話題誘導発話の内容を表すテキストと共に話題誘導発話を提示する相手を表す情報を出力し、目的発話の内容を表すテキストと共に目的発話を提示する相手を表す情報を出力する。
【0135】
発話決定部30は、ユーザ発話を含む直前までの発話内容に基づいて目的発話の内容を決定する。発話決定部30がシナリオ対話システムにおいて用いられている技術を用いる場合は、例えば、発話決定部30は、ユーザ発話を含む直前の5発話程度を含む対話について、すなわち、ユーザ発話の音声認識結果に含まれる認識結果のテキスト(ユーザ発話の内容を表すテキスト)とユーザ発話の直前の5発話程度の各発話の内容を表すテキストについて、各発話の内容を表すテキストに含まれる単語や各発話を構成する焦点語と発話決定部30内の図示しない記憶部に記憶された各シナリオに含まれる単語や焦点語との単語間距離が所定の距離より近いシナリオを選択し、選択したシナリオに含まれるテキストを選択することにより目的発話の内容を表すテキストを決定する。
【0136】
発話決定部30は、ユーザ発話の内容を表すテキストに含まれるいずれかの単語から目的発話の焦点語のいずれかを連想させる話題誘導発話を決定する。発話決定部30は、まず、ユーザ発話の内容を表すテキストに含まれる各単語から連想される単語と、目的発話の各焦点語を連想させる単語と、を連想語として抽出する。そして、発話決定部30は、発話決定部30の図示しない記憶部に記憶された発話文のうち、ユーザ発話の連想語と目的発話の連想語の両方を含む発話文から文脈に沿ったものを選択することで、話題誘導発話を決定する。決定する話題誘導発話は、複数の発話を含み、複数段階の連想を経てユーザ発話に含まれる単語のいずれかから目的発話の焦点語のいずれかを連想させる発話であってもよい。
【0137】
ステップS23において、音声合成部40は、話題誘導発話の内容を表すテキストを話題誘導発話の内容を表す音声信号に変換し、提示部50は、話題誘導発話の内容を表す音声を、人型ロボット50−1が備えるスピーカ51−1または人型ロボット50−2が備えるスピーカ51−2から出力する。発話決定部30から話題誘導発話の内容を表すテキストと共に話題誘導発話を提示する人型ロボットを表す情報が入力された場合、提示部50は、当該情報に対応する人型ロボット50が備えるスピーカ51から当該話題誘導発話の内容を表す音声を出力する。発話決定部30から話題誘導発話の内容を表すテキストと共に話題誘導発話を提示する相手を表す情報が入力された場合、提示部50は、当該情報に対応する相手のいる方向へ人型ロボット50の顔もしくは体全体を向けて当該話題誘導発話の内容を表す音声を出力する。
【0138】
ステップS24において、音声合成部40は、目的発話の内容を表すテキストを目的発話の内容を表す音声を信号に変換し、提示部50は、目的発話の内容を表す音声信号に対応する音声を、人型ロボット50−1が備えるスピーカ51−1または人型ロボット50−2が備えるスピーカ51−2から出力する。発話決定部30から目的発話の内容を表すテキストと共に目的発話を提示する人型ロボットを表す情報が入力された場合、提示部50は、当該情報に対応する人型ロボット50が備えるスピーカ51から当該発話の内容を表す音声を出力する。発話決定部30から目的発話の内容を表すテキストと共に目的発話を提示する相手を表す情報が入力された場合、提示部50は、当該情報に対応する相手のいる方向へ人型ロボット50の顔もしくは体全体を向けて当該目的発話の内容を表す音声を出力する。
【0139】
[第二実施形態の具体例]
以下、第二実施形態による対話内容の具体例を示す。以降の具体例の記載では、t(2)はユーザ発話、t(3)は話題誘導発話、t(4)は目的発話を表す。
【0140】
(具体例5−1:連想による話題の誘導)
具体例5−1は、ユーザ発話の内容に基づいて選択した目的発話の話題が、ユーザ発話の話題と離れており、そのまま続けて発話すると違和感を生じるおそれがあるときに、目的発話の話題を連想する発話を挿入することで、話題の誘導を行う例である。
【0141】
以下は、ユーザ発話の内容に基づいて選択した目的発話の話題が、ユーザ発話の話題と近いため、話題誘導発話を用いずにそのまま続けて発話しても違和感を生じない場合の例である。
【0142】
t(2) H:ロボットって泳げるの?
t(4-1) R2:きみは泳げる?
t(4-2) R1:泳げるよ
【0143】
以下は、ユーザ発話の内容に基づいて選択した目的発話の話題がユーザ発話の話題と離れており、そのまま続けて発話すると違和感を生じるおそれがある場合の例である。
【0144】
t(2) H:ロボットって泳げるの?
t(3-1) R2:あ、泳ぐ・・
t(3-2) R1:ん?どうしたの?
t(3-3) R2:いや、プール行きたいなーって
t(4-1) R1:あ!そういえば箱根に温泉とプールが付いてる施設があるの知ってる?
t(4-2) R2:知ってる!○○○でしょ?
t(4-3) R1:そうそう、いいよね
【0145】
この例では、ユーザ発話t(2)に含まれる単語「泳げる」から「温泉とプール」が含まれる対話t(4-1)〜t(4-3)が選択されたが、話題間の距離が離れていると判断し、「泳ぐ」と「プール」を繋ぐ話題誘導発話t(3-1)〜t(3-3)をユーザ発話t(2)の後に挿入することで、自然な流れで話題が遷移した印象を与える。また、ユーザ発話に含まれる「泳ぐ」に言及しているため、ユーザは発話を無視されていないように感じる。
【0146】
(具体例5−2:連想による話題の誘導)
具体例5−2は、ユーザ発話の内容に基づいて選択した目的発話の話題が、ユーザ発話の話題と離れており、そのまま続けて発話すると違和感を生じるおそれがあるときに、目的発話の話題を連想する発話を挿入することで、話題の誘導を行う例である。
【0147】
t(2) H:ロボットって泳げるの?
t(3) R2:おっきいお風呂だと泳げていいよね
t(4-1) R1:お風呂はいつ入る?
t(4-2) R2:うーん、夕方かな。ごはん後が多いよ。
t(4-3) R1:その時間がいいね
【0148】
この例では、ユーザ発話t(2)に含まれる単語「泳げる」から「お風呂」に関する対話t(4-1)〜t(4-3)が選択されたが、話題間の距離が離れていると判断し、「泳ぐ」と「お風呂」を繋ぐ話題誘導発話t(3)をユーザ発話t(2)の後に挿入することで、自然な流れで話題が遷移した印象を与える。また、ユーザ発話に含まれる「泳ぐ」に言及しているため、ユーザは発話を無視されていないように感じる。
【0149】
[変形例]
上述した実施形態では、エージェントとして人型ロボットを用いて音声による対話を行う例を説明したが、上述した実施形態の提示部は身体等を有する人型ロボットであっても、身体等を有さないロボットであってもよい。また、この発明の対話技術はこれらに限定されず、人型ロボットのように身体等の実体がなく、発声機構を備えないエージェントを用いて対話を行う形態とすることも可能である。そのような形態としては、例えば、コンピュータの画面上に表示されたエージェントを用いて対話を行う形態が挙げられる。より具体的には、「LINE」(登録商標)や「2ちゃんねる」(登録商標)のような、複数アカウントがテキストメッセージにより対話を行うグループチャットにおいて、ユーザのアカウントと対話装置のアカウントとが対話を行う形態に適用することも可能である。この形態では、エージェントを表示する画面を有するコンピュータは人の近傍にある必要があるが、当該コンピュータと対話装置とはインターネットなどのネットワークを介して接続されていてもよい。つまり、本対話システムは、人とロボットなどの話者同士が実際に向かい合って話す対話だけではなく、話者同士がネットワークを介してコミュニケーションを行う会話にも適用可能である。
【0150】
変形例の対話システム200は、
図4に示すように、例えば、一台の対話装置2からなる。変形例の対話装置2は、例えば、入力部10、
行動認識部20、発話決定部30、および提示部50を備える。対話装置2は、例えば、マイクロホン11、スピーカ51を備えていてもよい。
【0151】
変形例の対話装置2は、例えば、スマートフォンやタブレットのようなモバイル端末、もしくはデスクトップ型やラップトップ型のパーソナルコンピュータなどの情報処理装置である。以下、対話装置2がスマートフォンであるものとして説明する。提示部50はスマートフォンが備える液晶ディスプレイである。この液晶ディスプレイにはチャットアプリケーションのウィンドウが表示され、ウィンドウ内にはグループチャットの対話内容が時系列に表示される。グループチャットとは、チャットにおいて複数のアカウントが互いにテキストメッセージを投稿し合い対話を展開する機能である。このグループチャットには、対話装置2が制御する仮想的な人格に対応する複数の仮想アカウントと、ユーザのアカウントとが参加しているものとする。すなわち、本変形例は、エージェントが、対話装置であるスマートフォンの液晶ディスプレイに表示された仮想アカウントである場合の一例である。ユーザはソフトウェアキーボードを用いてグループチャットのウィンドウ内に設けられた入力エリアである入力部10へ発話内容を入力し、自らのアカウントを通じてグループチャットへ投稿することができる。発話決定部30はユーザのアカウントからの投稿に基づいて対話装置2からの発話内容を決定し、各仮想アカウントを通じてグループチャットへ投稿する。なお、スマートフォンに搭載されたマイクロホン11と音声認識機能を用い、ユーザが発声により入力部10へ発話内容を入力する構成としてもよい。また、スマートフォンに搭載されたスピーカ51と音声合成機能を用い、各対話システムから得た発話内容を、各仮想アカウントに対応する音声でスピーカ51から出力する構成としてもよい。
【0152】
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、提示部が提示する発話順を除いて、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【0153】
[プログラム、記録媒体]
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【0154】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0155】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0156】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0157】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。