説明

対話装置及び方法

【課題】過去のユーザ入力に対する誤った解釈を、その後のユーザ入力により容易にしかも正確に訂正することができる対話装置及び方法を提供する。
【解決手段】対話状態の履歴を記憶する記憶手段と、現在の対話状態におけるシステム応答を出力する応答出力手段と、入力されたユーザ発話を音声認識して、該ユーザ発話に対する1または複数の認識候補とその尤度を求める音声認識手段と、前記記憶手段に記憶されている現在の対話状態及びその1つ前の対話状態を含む複数の対話状態のそれぞれについて、前記ユーザ発話との適合度を算出する算出手段と、各対話状態の前記適合度と各認識候補の前記尤度との組合せを基に、前記複数の対話状態のうちの1つと、前記1または複数の認識候補のうちの1つとを選択する選択手段と、選択された対話状態及び認識候補を基に新たな対話状態へ遷移する遷移手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザ発話を受けて応答を返す対話装置に関する。
【背景技術】
【0002】
近年、音声や自然言語入力を可能とするインタフェースに関する研究が盛んである。また、そのようなインタフェースを用いるエキスパートシステムなどが多数開発され、入力された音声やテキストなどを受理する装置が一般向けにも利用可能となっている。
【0003】
自然言語による入力を行う場合には、ユーザはシステムが必要とする全ての条件を一度に入力することは少なく、ユーザとシステムとの間でのやりとりが必要となる。例えばユーザの入力内容に不備がある場合には、システムは、その足りない条件をユーザに問い合わせ、その問い合わせに対するユーザの回答を統合するなどの処理が必要となる。このような処理を行うためにユーザとシステムとの対話処理技術が不可欠である。
【0004】
対話システムは、対話状態を示す情報(対話状態情報)を参照してユーザとのやりとりの内容を決定する。対話状態は、ユーザとの対話の進行状況であり、対話状態情報は、ユーザとの対話の進行状況を示す情報であり、例えば対話中においてユーザから入力された内容を統合した情報や、システムからユーザに提示した情報を含んでいる。この対話状態情報を参照し、動作決定ルールを適用することで対話システムは応答内容を決定する。対話システムは、ユーザ入力を受けて対話状態情報を更新し、更新した対話状態情報を参照してユーザへの応答内容を決定し、ユーザに対して応答を提示すると共にその応答内容に応じて対話状態情報を更新していく。
【0005】
入力方法に音声を利用する対話システムでは、入力された音声に対する認識誤りが生じる場合がある。或いは音声認識が正しく動作してもその後の解釈(例えば照応・補完処理)に誤りが生じる場合もある。対話システムに誤った入力が通知されると、誤った応答をユーザに提示すると共に、誤った内容で対話状態情報を更新してしまい、その後の対話システムの動作においても誤りの影響が現れる場合がある。したがって対話システムはユーザによる訂正のための入力(訂正入力)を受理しなければならない。
【0006】
ユーザは、誤ったシステム応答を受けて誤りに気づき、その時にユーザは訂正のための入力を行う。この訂正入力は、誤りの影響が出ていない過去の対話状態情報に対する再入力であるとみなすことができる。従って、訂正入力を扱うためには、ユーザ入力から尤もらしい入力内容を推定すると共に、その入力内容で対話状態情報を更新したり、応答内容を決定する対話状態情報(入力を作用させる対話状態情報)をこれまでの対話中に更新されてきた対話状態情報から推定したりする必要もある。
【0007】
従来の対話装置には、入力時刻のしきい値処理に基づいて、1つ前の状態に対する入力か否かを判断する方法(例えば、特許文献1参照)や、訂正入力用の音声認識文法を作成し、ユーザ入力が訂正用の文法に合致した場合に訂正入力であると判断する方法(例えば、特許文献2参照)が開示されている。
【0008】
しかしながら、特許文献1ではユーザが熟考してから訂正するような場合は、入力時刻がしきい値を超えてしまい、訂正入力を受け付けられなくなるという問題がある。また、特許文献2では今回入力を受ける文法と訂正用の文法とで共通するものがある場合に訂正であるかどうかを判断することが出来ないという問題がある。或いは、共通のものがなくとも、音声認識結果には曖昧性を含むものがあり、1つの認識結果に訂正用文法のものと今回のものの両方が含まれる場合もある。このような場合には訂正か否かを判断することができないという問題がある。
【0009】
これらの問題は、特許文献1では入力時刻のみで対話状態の推定をしており、特許文献2では入力内容のみで対話状態の推定をしていることに起因する。ユーザの訂正入力を受理するためには、入力内容の推定と、入力を作用させる対話状態の推定の両方を総合的に扱う入力解釈が必要である。
【特許文献1】特開2004−325848号公報
【特許文献2】特開2005−316247号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
以上説明したように、従来は、過去のユーザ入力に対する誤った解釈を、その後のユーザ入力により容易にしかも正確に訂正することができないという問題点があった。
【0011】
そこで、本発明は、上記問題点に鑑み、過去のユーザ入力に対する誤った解釈を、その後のユーザ入力により容易にしかも正確に訂正することができる対話装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明の対話装置は、対話状態の履歴を記憶する記憶手段と、現在の対話状態におけるシステム応答を出力する応答出力手段と、入力されたユーザ発話を音声認識して、該ユーザ発話に対する1または複数の認識候補とその尤度を求める音声認識手段と、前記記憶手段に記憶されている現在の対話状態及びその1つ前の対話状態を含む複数の対話状態のそれぞれについて、前記ユーザ発話との適合度を算出する算出手段と、各対話状態の前記適合度と各認識候補の前記尤度との組合せを基に、前記複数の対話状態のうちの1つと、前記1または複数の認識候補のうちの1つとを選択する選択手段と、選択された対話状態に該選択された認識候補を作用させて新たな対話状態へ遷移する遷移手段とを備える。
【発明の効果】
【0013】
本発明によれば、過去のユーザ入力に対する誤った解釈を、その後のユーザ入力により容易にしかも正確に訂正することができる。
【発明を実施するための最良の形態】
【0014】
以下、本発明の実施形態について図面を参照して説明する。
【0015】
(第1の実施形態)
図1は、本発明の第1の実施形態に係る対話装置を示すブロック図である。図1の対話装置は、音声入力部100、音声認識部101、入力解釈部102、対話進行部103、対話履歴記憶部104、入力関連情報抽出部105、状態適合度算出部106を含む。
【0016】
音声認識部101は、マイク等からなる音声入力部100から入力されたユーザの音声を音声認識する。音声認識部101は、入力音声に対し音声認識した結果、1または複数の候補(候補文字列)が得られた場合には当該1または複数の候補と、各候補の該入力音声に対する尤もらしさを表すスコア(尤度)とを含む音声認識結果を入力解釈部102へ通知する。入力音声に対し音声得認識した結果、スコアが予め定められた閾値以上の有効な候補が得られなかった場合には(有効な入力音声でない場合には)、音声認識部101は、その旨を含む音声認識結果を入力解釈部102へ通知する。
【0017】
入力解釈部102は、ユーザ入力の解釈を行う。入力解釈部102は、まず、通知された音声認識結果に含まれる候補文字列と、対話履歴記憶部104に記憶される対話状態とを1組とする複数の入力候補を生成する。そして、各入力候補中の候補文字列に対する音声認識のスコアと、状態適合度算出部106から通知される、各入力候補中の対話状態の状態適合度とを基に、上記複数の入力候補のうちの1つを入力解釈結果として選択する。
【0018】
対話進行部103は、対話進行方法を記述した対話シナリオと対話履歴記憶部104に記憶されている対話状態とを参照して、入力解釈部102から通知された入力解釈結果を基に、ユーザ入力の内容に応じたシステム応答(以下、簡単に応答と呼ぶことがある)を決定し、出力することにより、ユーザとの対話を進行する。応答は音声信号やテキスト表示・画像出力等によってユーザに提示される。
【0019】
入力解釈部102から通知される入力解釈結果には、ユーザ入力を示す候補文字列と、該ユーザ入力を作用させる対話状態とが含まれている。対話進行部103は、入力解釈結果を受け取ると、該入力解釈結果にて指定されている対話状態に遷移し、該対話状態に対して入力解釈結果で指定されたユーザ入力を適用した場合の動作を行う。
【0020】
対話進行の方法には、対話の進行状況を状態遷移図で記述した対話シナリオを参照し、ユーザ入力に伴い状態を遷移させていく方式や、対話状態をユーザから取得した情報群として、この情報群と予め定められたユーザから取得すべき情報群と比較し、不足している情報をユーザに問い合わせるといった方法など、種々の方法が考えられる。本発明には任意の方法を適用することができる。
【0021】
対話履歴記憶部104は、ユーザとの対話の進行状況を示す対話状態の履歴を記憶する。対話履歴記憶部104では、現在の(最新の)対話状態と、現在の対話状態よりも1つ前の対話状態、さらにそれよりも前の対話状態を記憶する。それ以外の対話状態は消去してもよい。対話履歴記憶部104の詳細は後述する。
【0022】
入力関連情報抽出部105は、ユーザ入力から音声認識結果以外の入力関連情報を抽出し、状態適合度算出部106に通知する。入力関連情報には、入力のタイミング情報や、ユーザ発話の音声の振幅(パワー)の情報といった音声入力に含まれる非言語情報が考えられる。入力関連情報抽出部105の詳細は後述する。
【0023】
状態適合度算出部106は、入力関連情報抽出部105から通知される入力関連情報を基に対話状態管理部104に記憶されている各対話状態について状態適合度を算出する。ある対話状態の状態適合度とは、ユーザ入力の該対話状態に対する適合度を示す値である。ユーザ入力に訂正意図が強く含まれている場合には、状態適合度算出部106で算出される最新の対話状態に対する状態適合度は低く、過去の対話状態に対する状態適合度が高くなる。逆にユーザ入力に訂正意図が含まれていない場合には、状態適合度算出部106で算出される最新の対話状態に対する状態適合度は高くなり、過去の対話状態に対する状態適合度が低くなる。状態適合度算出部106の動作の詳細は後述する。
【0024】
次に、図2に示すフローチャートを参照して本発明の対話装置の動作を説明する。
【0025】
図1の対話装置はユーザと対話を行うものであり、ユーザとの対話を開始した時がStartに相当し、ユーザとの対話が終了した時がEndに相当する。
【0026】
ユーザとの対話が開始されると、対話進行部103は、対話シナリオを参照してユーザとの対話を進行する(ステップS201)。対話進行中にはシステム応答を出力してユーザ入力を待ち受ける状態は、ステップS201でユーザ入力まで一時停止している状態であると云える。この場合はユーザ入力やタイマイベント等を受理することでステップS201の処理が継続される。対話進行部103は、ユーザとの対話中の各段階で、対話状態が更新されたか否か(ステップS202)、ユーザとの対話が終了したか否か(ステップS203)、ユーザ入力の有無(ステップS204)を逐一確認する。
【0027】
ステップS201において、例えば、対話進行部103が、ある対話状態において生成される応答を出力すると決定したとき、ステップS202において、対話状態の更新を決定し、ステップS205へ進む。ステップS205では、対話進行部103は、当該対話状態を現在の対話状態として対話履歴記憶部104に記憶する。応答を出力することにより、ユーザに現在の対話状態を表明すると、表明した対話状態に対してユーザが何らかの反応をし、ユーザ音声が入力される。応答を出力した時の対話状態はユーザ入力が作用する可能性があるため、対話履歴記憶部104にその対話状態を記憶させることが望ましい。
【0028】
ステップS203において、対話の終了を検知した場合、処理を終了する。
【0029】
ステップS204において、ユーザ入力(ユーザ発話)を検知した場合、該ユーザ発話の内容を解釈する。まず、状態適合度算出部106が、対話履歴記憶部104に記憶されている現在の対話状態と、それ以前の対話状態とについて、該ユーザ入力との適合度を算出する(ステップS206)。次に、入力解釈部102が、算出された適合度、音声認識部101から通知される音声認識結果を参照し、該ユーザ入力を解釈する(ステップS207)。入力解釈部102の入力解釈結果を受けて、対話進行部103がユーザとの対話を継続する(ステップS201)。ステップS206、ステップS207の処理動作の詳細は後述する。
【0030】
ここで対話進行部103について説明する。対話進行部103における対話進行方法は任意のものを適用できるが、ここでは、対話進行方法として対話シナリオを状態遷移図で記述する方法を例として説明する。
【0031】
図3は、本実施形態に係る対話シナリオの一例を示したものである。図3は場所を検索して目的地を設定する対話シナリオの一部である。図3の対話シナリオは状態遷移図形式で対話シナリオが記述されており、対話の進行状況をノードに、遷移先をリンクで表している。以後このノードのことを「シナリオノード」と表記する。シナリオノードは、対話状態に対応する。
【0032】
図3の対話シナリオでは、検索結果の場所をユーザに順に提示するシナリオノード301と、ユーザ入力(ユーザ発話)「それ」により指示された場所を目的地とするかを確認するシナリオノード302を示している。シナリオノード間を結ぶリンクにはユーザ入力が関連付けられている。対話進行部103はユーザとの対話中の各時点で、現在どのシナリオノードの対話を行っているかを管理し、現在のシナリオノードから流出するリンクに関連付けられたユーザ入力を受けると、そのリンク先にあるシナリオノードに遷移し、遷移後のシナリオノードを現在のシナリオノードとする。
【0033】
対話進行部103は遷移の際に”{ }”で括られた内容の動作を実行し、遷移後のシナリオノードに記述されている応答をユーザに提示する。最終的に状態遷移図の最後のシナリオノードまで遷移すると、ユーザとの対話を終了する。なお、図3において“$x”は変数xを表している。また、リンク304のように、リンクに対して動作指定が対応付けられていない場合は”{ }”の動作指定表記を省略している。
【0034】
入力解釈部102では、ユーザ入力の言語表現に対して品詞情報や意味・意図などの意味的な情報(以後「意味タグ」と表記)を付与する場合がある。意味タグは同じ表現で複数の動作がある場合にそれを区別する情報として有効であり、対話シナリオにおいて意味タグを考慮した動作を指定することも可能である。図3において意味タグを「@XX」と表記する。リンク303における「次@Index操作」は、「Index操作」を指示する「次」というユーザ入力、という意味を持つ。以後、表記を簡単にするために言語表現(例えば「次」)で、シナリオノードからのリンクが一意に決定できる場合は、意味タグは省略する。
【0035】
例えば、現在のシナリオノードがノード301の時に、ユーザ入力「次」が入力されると、対話進行部103はリンク303の先にあるノード301を次に遷移するシナリオノードとする。遷移前は、変数「n」が「2」番目であったとすると、遷移の際に変数「n」を「2」から「3」に更新し、変数「name」を3番目の場所名(例えば「xx」)に更新する。リンク303は、シナリオノード301に流入するため、更新した変数の内容で「3番目は「xx」です」という旨の応答を出力する。また、現在のシナリオノードがノード301の時にユーザ入力「それ」が入力されると、対話進行部103はリンク304の先にあるシナリオノード302を次のシナリオノードとし、「「xx」を目的地に設定しますか?」という旨の応答を出力する。応答は、音声やテキスト表示、画像を用いて提示される。
【0036】
続いて対話履歴記憶部104について詳細に説明する。対話履歴記憶部104はユーザとの対話進行状況に伴い更新される対話状態を時系列に記憶する。対話履歴記憶部104は対話開始から現在までの全ての対話状態を記憶する必要はなく、現在の(最新の)対話状態と、現在の対話状態よりも1つまたは複数前の対話状態を記憶する。
【0037】
対話状態は、少なくとも該対話状態において受理できるユーザ入力の内容(待ち受け情報)と、対話の進行状況を表現する情報と、状態適合度を算出するための情報とを含むデータである。対話状態の構造は対話進行部103で採用する対話進行方法に依存するため、ここでは対話進行部103が上述のように対話シナリオに沿って対話を進行する場合を例にとり説明する。
【0038】
図4は、対話履歴記憶部104で記憶する対話状態の情報の例を示したものである。図4の対話状態400は、当該対話状態を識別するための状態ID401、各対話状態の待ち受け情報402、変数の内容403、及び状態適合度を算出するための情報404を含む。
【0039】
図3の対話シナリオを参照して対話を行う場合、対話進行状況はシナリオノード301、302に相当する。ここで、説明の簡単のために、シナリオノードの符号301、302をそれぞれ状態IDとして用いる。図4の対話状態は、図3のシナリオノード301に対応し、状態IDは「301」である。各対話状態の待ち受け情報は、当該対話状態に対応するシナリオノードから流出するリンクに相当する。また、状態適合度を算出するための情報404として、本実施形態では応答開始時刻と応答終了予定時刻を用いる。これは状態適合度をユーザ入力のタイミングから算出することを目的としたものである。応答開始時刻は、対話進行部103が応答を出力する際の開始時刻である。対話進行部103が応答を全て出力するために必要な時間を計算し、この時間を応答開始時刻に加算した結果得られる時刻が応答終了予定時刻である。
【0040】
図5は、対話装置がユーザとの間で図6に示したような対話を経た場合に、対話履歴記憶部104に記憶されている対話状態の履歴を示したものである。図5では、対話履歴記憶部104に記憶されている、ユーザとの対話中に通過した対話状態を、左端から時系列に示し、右端の対話状態501が現在の対話状態である。
【0041】
図6の対話例は、図3の対話シナリオにおけるシナリオノード301(変数n=2、変数name=△△)から始まっている。図2のステップS201において、対話進行部103が応答「SYS601」を出力すると決定した時、ステップS202において対話状態の更新を決定し、ステップS205において、対話進行部103は、その時の対話状態503を対話履歴記憶部104に記憶する。以後順に応答「SYS603」、「SYS605」を出力すると決定したときに、対話進行部103は対話状態502、501の順に対話履歴記憶部104に記憶する。
【0042】
続いて、図2のステップS206における、入力関連情報抽出部105と状態適合度算出部106の動作について詳細に説明する。
【0043】
本実施形態では、入力関連情報としてユーザ入力開始時刻を利用する。直前のユーザ入力が誤って受理されていなければ、その入力に対する応答はユーザが望むものであるので、ユーザは対話進行部103が提示する応答を受け付ける。一方、直前のユーザ入力が誤って受理された場合は、その入力に対する応答はユーザが望まないものであるので、ユーザは誤りに気づいた時点で訂正入力を行うものと考えられる。この場合、ユーザは応答を提示している現在の対話状態への遷移を認めておらず、それより前の対話状態への入力を意図した入力がなされる。或いは、対話進行部103の応答の開始と同時にユーザが入力した場合、ユーザは今回の応答を認知しておらず、現在の対話状態より前の対話状態に作用させることを意図した入力をしていると考えられる。従って、対話装置が応答を出力開始した時点からユーザ入力開始までの時間が短ければ、ユーザは現在の対話状態よりも過去の対話状態への入力を意図していると判断することができる。対話装置が応答を出力開始した時点からユーザ入力開始までの時間を「応答出力時間」と呼ぶ。
【0044】
入力関連情報抽出部105は、ユーザ入力時に入力開始時刻を取得する。取得した入力開始時刻は状態適合度算出部106に通知する。
【0045】
状態適合度算出部106は、対話状態管理部104に記憶されている各対話状態に対し状態適合度(SD)を算出する。本実施形態では現在の対話状態(SD(0))とその1つ前の対話状態に対し状態適合度(SD(1))を算出する。”SD(n)”は、現在の対話状態よりもn個前の対話状態に対する状態適合度を表す表現である。上述のように応答出力時間が短くなると、現在の対話状態への遷移をユーザが許容していないと考えることが出来る。従って、応答出力時間が短ければ現在の対話状態に対する状態適合度SD(0)は小さくなり、その1つ前の対話状態に対する状態適合度SD(1)は大きくなると推定できる。本実施形態では状態適合度を、今回の応答を全て出力するために必要な応答予定時間と、実際の応答出力時間との比率に基づいて算出する。
【0046】
ここで、応答出力時間及び応答予定時間を次のようにして算出する。
【0047】
応答出力時間=ユーザ入力開始時刻−応答開始時刻
応答予定時間=応答終了予定時刻−応答開始時刻
そして、現在の対話状態に対する状態適合度SD(0)は、次式(1)より算出する。
【0048】
SD(0)
=[応答出力時間≦応答予定時間の場合](応答出力時間/応答予定時間)×100
=[応答出力時間>応答予定時間の場合]100
…(1)
現在の対話状態より1つ前の対話状態に対する状態適合度SD(1)は次式(2)より算出する。
【0049】
SD(1)=100−現在の対話状態に対する状態適合度SD(0)
…(2)
状態適合度算出部106は、図2のステップS206において、上述したように、現在の対話状態に対するユーザ入力の適合度SD(0)と、ユーザ入力の現在の対話状態の1つ前の対話状態に対するユーザ入力の適合度SD(1)とを算出して、これらを入力解釈部102へ通知する。
【0050】
次に、図2のステップS207における、入力解釈部102の入力解釈処理について詳細に説明する。
【0051】
入力解釈部102では、音声認識部101から通知されるユーザ音声の音声認識結果の候補(文字列)と、状態適合度算出部106から通知された対話状態とを1組とする複数の組合せ(入力候補)を生成する。そして、この複数の組合せの中から最適な組合せを選択する。本実施形態では、各組合せについて、該組合せ中の音声認識結果の候補文字列に対するスコアと、該組合せ中の対話状態に対し求めた状態適合度とを加算して、当該組合せのトータルスコアを算出する。入力解釈部102はトータルスコアが最も高い組合せを入力解釈結果として選択する。
【0052】
入力解釈結果として選択された組合せは、ユーザ入力の内容と、該ユーザ入力を作用させる対話状態との最適な組合せである。
【0053】
入力解釈結果として選択された組合せに含まれる対話状態が、現在の対話状態の1つ前の対話状態であった場合は、対話進行部103は当該1つ前の対話状態に、当該入力解釈結果の組合せに含まれる音声認識結果のユーザ入力の内容を作用させて対話を開始する。すなわち、対話進行部103は、当該1つ前の対話状態に関連付けられているシナリオノードに対して通知された入力内容のリンクを辿って次の対話進行を決定する。
【0054】
次に、図3が、レストラン検索サービスの対話シナリオである場合を例にとり、図1の対話装置の処理動作について説明する。
【0055】
[対話例1]
図6の対話例を利用して、対話履歴記憶部104に対話状態を記憶する手順(図2のステップS202、S205)について説明する。ユーザ入力に対し状態適合度を算出して該ユーザ入力を解釈する図2のステップS206、ステップS207の処理動作の詳細は省略する。
【0056】
図6は、対話装置とユーザとが対話を開始し、何回かのユーザ入力及び応答出力を経て、レストラン検索結果を提示する対話状態に達したときの対話例である。図2のステップS201において、図3の対話シナリオにおけるシナリオノード301(変数n=2、変数name=△△)に現在のシナリオノードが移り、時刻2分40秒に対話進行部103が応答「SYS601」を出力すると決定する。この時、ステップS202で対話状態の更新を決定し、対話進行部103は、その時の対話状態503を対話履歴記憶部104に記憶する。対話状態を記憶する際に対話進行部103は応答終了予定時刻を算出し、該応答終了予定時刻を応答開始時刻を含む対話状態503を記憶する。その後、ステップS201へ戻り、応答を出力し、ユーザ入力の待ち状態となる。
【0057】
次に、時刻2分45秒に、ユーザ入力「USER602」を受けた。ユーザ入力を検知したのでステップS204からステップS206、ステップS207を経て、入力解釈処理を行う。応答終了予定時刻を過ぎてからユーザ入力があったので、前述のステップS206及びステップS207の処理により、現在の対話状態に対する入力が優先される解釈が行われる。その結果、入力解釈結果は「対話状態503に入力内容「次」を作用させる」となったとする。
【0058】
対話進行部103はこの入力解釈結果を受けて対話状態503に関連付けられているシナリオノード301から流出するリンク303の遷移を行い、シナリオノード301(変数n=3、変数name=××)に遷移すると決定する。シナリオノードが遷移するに伴い、時刻2分48秒に対話進行部103は応答「SYS603」を出力すると決定する(図2のステップS201)。この時、ステップS202で対話状態の更新を決定し、ステップS205において、対話進行部103は対話状態502を503より新しい対話状態として対話履歴記憶部104に記憶する。対話状態を記憶する際に、対話進行部103は応答終了予定時刻を算出し、該応答終了予定時刻と応答開始時刻とを含む対話状態502を対話履歴記憶部104に記憶する。その後、ステップS201へ戻り、応答を出力し、ユーザ入力の待ち状態となる。
【0059】
次に、時刻2分53秒に、ユーザ入力「USER604」を受けた。この入力についても上述の「USER602」の処理と同様にして、入力解釈結果「入力内容「そこ」を対話状態502に作用させる」を得る。
【0060】
対話進行部103はこの入力解釈結果を受けて、対話状態502に関連付けられているシナリオノード301から流出するリンク304の遷移を行い、シナリオノード302(変数name=××)に遷移すると決定する。シナリオノードが遷移するに伴い、時刻2分55秒に対話進行部103は応答「SYS605」を出力すると決定する。(図2のステップS201)。この時、ステップS202で対話状態の更新を決定し、ステップS205において、対話進行部103は対話状態501を最新の対話状態として対話履歴記憶部104に記憶する。対話状態を記憶する際に、対話進行部103は応答終了予定時刻を算出し、該応答終了予定時刻と応答開始時刻(2分55秒)とを含む対話状態501を対話履歴記憶部104に記憶する。以上の処理を行った結果、対話履歴記憶部104には、図5に示したような対話状態の履歴が記憶される。
【0061】
[対話例2]
次に、図7の対話例を用いて、入力解釈部102、状態適合度算出部106の動作について説明する。図7の対話例は、図6の「SYS601」から「SYS605」までの対話に、さらに、「SYS606」が追加されて、場所「××」に目的地を定める対話例である。
【0062】
「SYS601」から「SYS605」までの処理動作は図6の対話例と同じである。従って、「SYS605」の出力時点での対話履歴記憶部104は図5のような対話状態の履歴が記憶されている。以下、ユーザ入力「USER606」に対する処理動作について説明する。なお、「SYS605」における“…”は応答出力中に(応答出力が終了する前に)ユーザ入力があり、応答が中断されたことを示す。
【0063】
図2のステップS201において応答出力中に、時刻2分58秒50にユーザ入力「USER606」があり、これを、図2のステップS204において検出すると、ステップS206へ進む。
【0064】
「USER606」に対して、音声認識部101が音声認識処理を行う。ここでは「USER706」の音声認識結果として、曖昧性を含む[「次」(1000点)、「はい」(970点)]が得られたものとする。尚、音声認識結果の各候補(文字列)及びのスコアは「入力内容」(音声認識スコア)と表記し、複数の候補があれば、それらを[ ]内に羅列して表記する。音声認識部101は、このような音声認識結果を入力解釈部102に通知する。
【0065】
ステップS206では、状態適合度算出部106が状態適合度を算出する。入力関連情報抽出部105がユーザ入力開始時刻「2分58秒50」を抽出し、状態適合度算出部106に通知する。状態適合度算出部106は式(1)及び式(2)を用いて、現在の対話状態501に対するユーザ入力の状態適合度SD(0)と、その1つ前の対話状態502に対するユーザ入力の状態適合度SD(1)を算出する。現在の対話状態501の応答予定時間は、対話状態501の応答終了予定時刻「3分00秒」と応答開始時刻「2分55秒」との差であり、「5秒」となる。ユーザ入力までの応答出力時刻はユーザ入力開始時刻「2分58秒50」と応答開始時刻「2分55秒」との差で「3.5秒」となる。従って、SD(0)=3.5/5×100=70となり、SD(1)=100−70=30となる。状態適合度算出部106はこれら2つの対話状態に対するユーザ入力の状態適合度を入力解釈部102に通知する。
【0066】
続いて、ステップS207で入力解釈部102が入力解釈処理を行う。入力解釈部102は、通知された音声認識結果の1つの候補と状態適合度算出結果として通知された1つの対話状態とを1組とする複数の組合せ(入力候補)を生成し、各組み合わせに対してトータルスコアを算出する。
【0067】
すなわち、音声認識結果として得られた入力内容の候補が「次」、「はい」の2種類であり、当該入力内容を作用させる対話状態の候補が対話状態501、502の2種類であるのとすると、入力解釈部102は、それらを組み合わせて、「対話状態501に「次」を作用させる」、「対話状態501に「はい」を作用させる」、「対話状態502に「次」を作用させる」、「対話状態502に「はい」を作用させる」の4種類の入力候補を生成する。
【0068】
続いて、入力解釈部102は各入力候補についてトータルスコアを算出する。トータルスコア算出処理の詳細を図8を参照して説明する。図8において、“「次」[501]”は「対話状態501に入力内容「次」を作用させる」という候補を意味する。入力解釈部102が算出するトータルスコアは、各入力候補の音声認識スコアと状態適合度を加えたものである。但し、シナリオノード302に対応する対話状態501は、入力内容「次」を受理できないので、対話状態501と入力内容「次」との組合せ(入力候補)は棄却する。図8では棄却した入力候補にはトータルスコアの欄に「×」と記載している。対話状態502と入力内容「はい」との組合せ(入力候補)についても同様に棄却される。
【0069】
入力解釈部102はトータルスコアが最も高い入力候補を入力解釈結果として選択する。今回の例では、「対話状態501に入力内容「はい」を作用させる」が入力解釈結果として選択された。入力解釈部102は対話進行部103にこの入力解釈結果を通知し、ステップS201で対話進行部103は場所「××」を目的地に設定する旨の応答を出力する。
【0070】
以上のように、ユーザ入力に対する音声認識による認識スコアが低い方の入力内容であっても、該入力内容と状態適合度が高い対話状態との組合せにより、トータルスコアが最大となる。すなわち、入力解釈部102で入力解釈する際に、ユーザ入力と、現在及びそれ以前の対話状態との間の状態適合度を考慮することにより、ユーザ入力に対する音声認識誤りの候補「次」を棄却することが可能となる。
【0071】
[対話例3]
次に、図9の対話例を用いて、入力解釈部102、状態適合度算出部106の動作について説明する。図9の対話例は、「SYS601」から「SYS603」までの対話は図6の対話例と同様である。図9では、その次の「USER904」のユーザ入力「次」が「そこ」に誤解釈されてしまい、ユーザへの応答「SYS905」(応答内容は「××を目的地に設定しますか?」)を出力した場合を示している。従って、応答「SYS905」を出力するまでの動作は図6の対話例と同様であり、この時点の対話履歴記憶部104には図5のような履歴が記憶されている。
【0072】
ユーザは、ユーザ入力「入力USER904」の応答として「4件目は…」といった内容の応答を期待していたが、応答「SYS905」は「××を…」という内容であった。図9の対話例では「××を」の段階でユーザが誤りに気づき、その時の時刻2分56秒で再度「次」というユーザ入力「USER906」を行った。前述同様に、対話進行部103が、時刻2分56秒に、ユーザ入力「USER906」を検出すると(図2のS204)、ステップS206へ進む。
【0073】
「USER906」に対して、音声認識部101が音声認識処理を行う。ここでは「USER906」の音声認識結果として図7の「USER606」と同様に、曖昧性を含む[「次」(1000点)、「はい」(970点)]が得られたものとする。音声認識部101はこの音声認識結果を入力解釈部102に通知する。
【0074】
ステップS206では、状態適合度算出部106が状態適合度を算出する。入力関連情報抽出部105がユーザ入力開始時刻「2分56秒」を抽出し、状態適合度算出部106に通知する。状態適合度算出部106は、式(1)及び式(2)を用いて、現在の対話状態501に対する状態適合度SD(0)と、その1つ前の対話状態502に対する状態適合度SD(1)を算出する。現在の対話状態501の応答予定時間は、対話状態501の応答終了予定時刻「3分00秒」と応答開始時刻「2分55秒」との差であり、「5秒」となる。ユーザ入力までの応答出力時刻は、ユーザ入力開始時刻「2分56秒」と応答開始時刻「2分55秒」)との差で「1秒」となる。従って、SD(0)=1/5×100=20となり、SD(1)=100−20=80となる。状態適合度算出部106はこれら2つの対話状態に対するユーザ入力の状態適合度を入力解釈部102に通知する。
【0075】
続いて、ステップS207で入力解釈部102が入力解釈処理を行う。入力解釈部102は、通知された音声認識結果の1つの候補と状態適合度算出結果として通知された1つの対話状態とを1組とする複数の組合せ(入力候補)を生成し、各組み合わせに対してトータルスコアを算出する。
【0076】
すなわち、音声認識結果として得られた入力内容の候補が「次」、「はい」の2種類であり、当該入力内容を作用させる対話状態の候補が対話状態501、502の2種類であるとすると、入力解釈部102は、それらを組み合わせで、「対話状態501に「次」を作用させる」、「対話状態501に「はい」を作用させる」、「対話状態502に「次」を作用させる」、「対話状態502に「はい」を作用させる」の4種類の入力候補を生成する。
【0077】
続いて、入力解釈部102は各入力候補についてトータルスコアを算出する。トータルスコア算出処理を図10を参照して説明する。入力解釈部102はトータルスコアが最も高い入力候補を入力解釈結果として選択する。対話状態501と入力内容「次」との組合せ(入力候補)、対話状態502と入力内容「はい」との組合せ(入力候補)は、前述同様棄却され、トータルスコアの最も高い「対話状態502に「次」を作用させる」の候補が選択される。入力解釈部102は対話進行部103にこの入力解釈結果を通知し、ステップS201で対話進行部103は対話状態502に対応するシナリオノード301において、「次」が入力された場合の動作を行う。すなわち、リンク303に従って変数n=4、変数name=○○と更新し、この更新内容に応じた応答をユーザに出力する。
【0078】
以上のように、ユーザ入力「USER904」の解釈で誤りが生じたものの、ユーザが誤りを検知する早いタイミングの訂正入力「USER906」を検知すると、過去の対話状態における状態適合度が高まるため、過去の対話状態に対するユーザ入力のトータルスコアが高くなる。状態適合度を考慮することにより、今回のユーザ入力が過去の誤りを訂正する入力であることを検出することができる。
【0079】
上記第1の実施形態は、現在の対話状態に対する状態適合度がある値を超えたからといって、過去の対話状態に作用させる音声認識結果の候補を棄却するものではない。例えばユーザが応答を聞いて、ゆっくり訂正のためのユーザ音声を入力する場合、過去の対話状態に対する状態適合度が「0」になる。しかし、過去の対話状態でのみ受理できる入力内容が音声認識結果の候補として通知された場合は、過去の対話状態と、該対話状態に作用させる該音声認識結果の候補とを選択することができるのである。
【0080】
上記第1の実施形態では、ユーザが現在の対話状態への遷移を承認している度合いを示す状態適合度と、音声認識スコアとの組み合わせから、入力解釈部102において、ユーザ入力を総合的に解釈することが可能である。
【0081】
以上のように第1の実施形態では、ユーザとの対話中に変遷する対話状態の履歴を記憶し、ユーザ発話の入力タイミング、すなわち、対話装置で応答の出力を開始した時刻からユーザ入力の入力時刻までの時間を基に、現在の対話状態及びその1つ前の対話状態のそれぞれに対する該ユーザ入力の状態適合度を算出し、該ユーザ入力に対する音声認識スコアと状態適合度とから算出されるトータルスコアが最大の(例えば、該ユーザ入力に対する音声認識スコアと状態適合度との和が最大の)音声認識結果の候補文字列と対話状態との組合せを選択することにより、該ユーザ入力を解釈する。そして、選択された対話状態に、選択された音声認識結果を作用させた場合に得られる応答を出力することにより、前回のユーザ入力に対する誤った解釈をその後のユーザ入力により容易にしかも正確に訂正するができる。
【0082】
状態適合度は、入力されたユーザ音声が現在の対話状態に作用させるべきユーザ入力であるのか、過去の対話状態に作用させるべきユーザ入力であるのかを決定するための指標となる。上記第1の実施形態では、ユーザが、対話装置からの応答を聞いてからユーザ音声を入力するまでの時間を基に状態適合度を算出していた。より具体的には、状態適合度は、対話装置が応答の出力を開始してから終了するまでの予測時間(応答予定時間)と、対話装置が応答の出力を開始してから実際にユーザ入力が検出されるまでの時間(応答出力時間)との比率であった。しかし、状態適合度の算出方法は、この場合に限定されない。以下、他の状態適合度の算出方法について説明する。
【0083】
音声出力の場合は応答開始時刻と応答終了予定時刻には幅が現れるが、画面に応答文を一括提示する場合には応答終了予定時刻は応答開始時刻とほぼ一致させる。段階的に文章を提示する場合は全ての文章を提示し終わる時刻を応答終了予定時刻として推定する。
【0084】
現在の対話状態の状態適合度を算出する際の応答予定時間を算出する際、上述の例では単純に応答予定時間=応答終了予定時刻−応答開始時刻としていたが(応答予定時間の第1の算出方法)、この場合に限らない。以下、応答予定時間の算出方法の他の例について説明する。なお、異なる複数の算出方法のうちの1つにより算出された応答予定時間のみを用いる場合に限らず、異なる複数の算出方法により算出された複数種類の応答予定時間を組み合わせて利用することができる。例えば、複数種類の応答予定時間のそれぞれを用いて、上述のように状態適合度を算出し、算出された全ての状態適合度を加算したり、現在の対話状態について最大の状態適合度を選択したりすることが考えられる。
【0085】
(応答予定時間の第2の算出方法)応答予定時間=応答終了予定時刻+α−応答開始時刻 (αは正数): ユーザは応答出力終了直後に全てを把握できない場合がある。状態適合度はユーザがその状態に遷移したことを認める度合いである。そこで、全応答を提示した瞬間に状態適合度が「100」になるように算出するものではなく、ユーザが応答を受けて把握するためのマージンαを与える。αは一定数でも良いが、提示する情報量に応じて増減させることも考えられる。
【0086】
(応答予定時間の第3の算出方法)応答予定時間=与える情報量×β(βは正数):対話装置が長い応答を出力する場合に、応答の出力を開始してからある程度の時間経過するまでにユーザ入力が検出されない場合には、ユーザは状態が遷移したことを認めていると考えられる。しかしながら、応答で与える情報量(属性数など)に対して応答予定時間が必要以上に長くなると、現在の状態に対する状態適合度が減少する可能性があるため、与える情報量に比例した値を応答予定時間として採用する。
【0087】
(応答予定時間の第4の算出方法)応答予定時間=応答の特定部分の時刻+α(αは上記第2の算出方法と同様の正数):ユーザ入力の解釈を誤った時に、対話装置は誤った応答を返す。ユーザは自分の入力が正しく受理されていることを確認できれば、現在の対話状態への遷移を認めるとも考えられる。即ち、応答の特定部分としてユーザの入力内容を確認する部分を採用する。
【0088】
上記の他、状態適合度の算出方法として単純に応答出力時間と応答予定時間との線形的な比率を採用しているが、線形関数ではなく高次関数やその他の関数を用いても良い。但し、時間経過に応じて現在の対話状態の状態適合度が高まるように単調増加関数を採用する必要がある。
【0089】
なお、上述の例では、対話進行部103では対話シナリオを状態遷移図で記述する対話進行方法を利用していたが、フレーム(フォーム)形式(”A Form-Based Dialogue Manager For Spoken Language Applications”, D.Goddeau, et al., ICSLP’96)のものを利用してもよく、或いは”RavenClaw: Dialog Management Using Hierarchical Task Decomposition and an Expectation Agenda” (D. Bohus, et al., Eurospeech2003) にあるようなスタックといった特殊な形式を利用しても良い。この場合の対話履歴記憶部104は、図11に示すように、各場面での情報受け付け状態を対話状態として記憶したり、図12に示すように、スタックの状況を対話状態として記憶したりする。その他の対話進行方法でも、各場面の対話進行状況を個別の対話状態として対話状態管理部104に蓄積すれば良い。
【0090】
上述の例では、図2のステップS202において、対話進行部103が応答を出力する時に対話履歴記憶部104に対話状態を記憶するが、対話進行部103が対話状態を更新したことを検出した時に、対話履歴記憶部104に対話状態を記憶させても良い。
【0091】
上述の例では、入力解釈部102では、トータルスコアを音声認識スコアと状態適合度とを加算して算出していたが、音声認識スコア及び状態適合度にそれぞれ定数をかけてから重み付けをしてから加算したり、或いは状態適合度の最大値が「1」になるように正規化した値を音声認識スコアに掛けたりしても良い。後者の場合、状態適合度の影響が大きく現れるので状態適合度を重視したトータルスコアが得られる。
【0092】
上述の例では、音声認識部101は、音声認識結果の各候補にスコアを与えた結果を出力しているが、スコアを付与しなくとも良い。その場合は全候補が同点であるとみなせる。
【0093】
上述の例では、対話進行部103が応答を出力する際に、該応答に対応する対話状態を対話履歴記憶部104に記憶しているが、入力解釈結果が1つ前の対話状態への入力を示唆するものである場合には、現在の対話状態を削除してから対話進行を行っても良い。その際、現在の対話状態に対する状態適合度の高さに応じて、現在の対話状態を消去するか否かを判定することも可能である。棄却された現在の対話状態を消去することで、その次の入力の際に棄却された対話状態に作用させる入力解釈を抑制することが可能となる。
【0094】
(第2の実施形態)
第1の実施形態では、ユーザ音声の入力タイミングに関する情報を利用し、状態適合度を算出しているが、第2の実施形態では、上記ユーザ音声の入力タイミング以外の情報を利用して状態適合度を算出する場合について説明する。
【0095】
第2の実施形態に係る対話装置の構成は、図1と同様であり、入力関連情報抽出部105及び状態適合度算出部106の処理動作(図2のステップS206の処理)が、第1の実施形態と異なる。また、対話履歴記憶部104に各対話状態を記憶する際、応答開始時刻及び応答終了予定時刻(図4の404)を付加する必要はない。
【0096】
以下、第2の実施形態に係る入力関連情報抽出部105及び状態適合度算出部106について説明する。
【0097】
入力関連情報抽出部105は、ユーザ入力のユーザ音声のパワー(例えば、ユーザ音声の振幅の大きさ)を抽出する。ユーザ音声のパワーとユーザの感情とは関連があり、パワーが大きければユーザは何らかの不快な感情があり、直前の入力の解釈が誤っていたことが想定される。
【0098】
図2のステップS206では、状態適合度算出部106は、入力関連情報抽出部105から通知されるパワーに基づいて状態適合度を算出する。上述のようにパワーが大きければ、今回のユーザ入力は、その直前のユーザ入力に対し対話装置が解釈した結果を訂正するために入力された訂正入力である可能性が高いと云える。そこで、通知されたパワーPがある閾値THpより大きければ、現在の対話状態に対する状態適合度SD(0)は小さくなるように、状態適合度を算出する。現在の対話状態に対する状態適合度SD(0)は、次式(3)より算出する。
【0099】
SD(0)
=[パワーPが閾値THp以下の場合]100
=[パワーPが閾値THpより大きい場合](THp×2−P)/THp×100
=[SD(0)が「0」以下になる場合]0
…(3)
現在の対話状態より1つ前の対話状態に対する状態適合度SD(1)は次式(4)より算出する。
【0100】
SD(1)=100−SD(0) …(4)
以上のように、第2の実施形態ではユーザ入力に含まれるパワーといった、ユーザ発話入力時のユーザの感情を表す情報、あるいは、ユーザの感情を推定することのできる情報を用いて状態適合度を算出することにより、第1の実施形態と同様、ユーザが対話状態の遷移を許容したか否かを、入力解釈部102において状態適合度と音声認識スコアの組み合わせから、総合的に判断をすることが可能である。
【0101】
第2の実施形態は、現在の対話状態に対する状態適合度がある値を超えたからといって、過去の対話状態に作用させる音声認識結果の候補を棄却するものではない。過去の対話状態でのみ受理できる入力内容が音声認識結果の候補として通知された場合は、過去の対話状態と、該対話状態に作用させる該音声認識結果の候補とを選択することができる。
【0102】
第2の実施形態では、ユーザが現在の対話状態への遷移を(怒らずに)承認している度合いを示す状態適合度と、音声認識スコアとの組合せから、入力解釈部102において、ユーザ入力を総合的に解釈することが可能である。
【0103】
なお、上述の状態適合度の算出方法は、パワーを用いているが、状態適合度の算出方法はこれだけに限定されない。パワーと閾値とを比較する際、該パワーの対数をとった後に閾値と比較してもよい。その他、ユーザ音声の入力時のユーザの感情を推定する際に利用することができる情報として、韻律や話速が考えられる。韻律では抑揚が大きいユーザ音声、話速では話速が速いユーザ音声であれば感情が高ぶっていると考えられ、このような場合には、現在の対話状態に対する状態適合度が減少するように、状態適合度を定義する。
【0104】
(第3の実施形態)
第1及び第2の実施形態では、ユーザ入力に含まれる情報から状態適合度を算出していたが、第3の実施形態ではユーザ入力時の状況を利用して状態適合度を算出する対話装置について説明する。
【0105】
第3の実施形態に係る対話装置の構成例を図13に示す。図13において、図1と同一部分には同一符号を付し、異なる部分について説明する。すなわち、図13の対話装置は、図1の入力関連情報抽出部105に代えて、入力状況抽出部111を含む。
【0106】
入力状況抽出部111について説明する。入力状況抽出部111はユーザ音声が入力した時の状況がユーザ入力に適している状況かを示す状況適合度を算出する。この状況適合度が低い状況でのユーザ入力は誤りが発生しやすいと考えられる。従って、状況適合度は「次のユーザ入力が訂正入力である可能性」を示す情報であるといえる。入力状況抽出部111は、算出した状況適合度を対話進行部103に出力する。
【0107】
次に、図14に示すフローチャートを参照して、図13の対話装置の処理動作について説明する。なお、図14において、図2と同一部分には同一符号を付し、異なる部分について説明する。すなわち、図14では、ステップS210が追加され、ステップS204で、ユーザ音声の入力を検知した場合、まず、ステップS210へ進み、入力状況抽出部111が状況適合度を算出する。その後、ステップS206へ進み、状態適合度を算出する。なお、ステップS206の状態適合度の算出方法と、対話履歴記憶部104に対話状態を記憶する際に付加する情報も第1実施形態とは異なる。
【0108】
ステップS210で、入力状況抽出部111により算出された状況適合度は、対話進行部103に通知され、対話進行部103は通知された状況適合度を一時記憶する。対話進行部103は、入力解釈処理(ステップS207)後の対話進行処理(ステップS201)により、対話状態の更新を決定した場合には(ステップS202)、更新後の新たな対話状態を現在の対話状態として対話履歴記憶部104に記憶する(ステップS205)。この時、対話進行部103は、一時記憶していた状況適合度を当該現在の対話状態に対応付けて対話履歴記憶部104に記憶する。
【0109】
図15は、第3の実施形態に係る対話履歴記憶部104で記憶する対話状態の情報の一例を示したものである。対話履歴記憶部104には、当該対話状態対話進行状況を表す状態ID401、各対話状態の待ち受け情報402、変数の内容403の他、さらに、入力状況抽出部111が算出した状況適合度405を含む対話状態が記憶される。従って、対話履歴記憶部104には、図16に示すように、状況適合後が付加された対話状態の履歴が記憶される。なお、図16では、対話履歴記憶部104に記憶されている、ユーザとの対話中に通過した対話状態を、左端から時系列順に示し、右端の対話状態513が現在の対話状態である。
【0110】
次に、入力状況抽出部111の処理動作について説明する。ここでは、入力状況として、ユーザ音声が入力された時のノイズのパワーを使用する。ユーザ音声が入力された時のノイズのパワーが高ければ、その時のユーザ入力の音声認識結果に対する信頼性は低下する。従って、ユーザ音声が入力された時のパワーが高いほど、状況適合度が低くなるように、状況適合度を定義する。例えば、式(3)を用いて、状況適合度を算出することができる。この場合、式(3)のパワーPを、ユーザ音声が入力された時に検知されたノイズのパワーに置き換えて、状況適合度SD(0)を算出する。
【0111】
次に、状態適合度算出部106の処理動作について説明する。対話履歴記憶部104には、図16に示したような、状況適合度の付加された対話状態の履歴が記憶されている。状態適合度算出部106は、対話履歴記憶部104に記憶されている各対話状態の状況適合度をそのまま状態適合度として決定する。従って、現在の対話状態の状態適合度SD(0)は、現在の対話状態に付加されている状況適合度とする。例えば、対話履歴記憶部104に、図16に示したような対話状態の履歴が記憶されている場合、SD(0)=10(対話状態513に付与されている状況適合度)、SD(1)=100(対話状態512に付与されている状況適合度)となる。
【0112】
以上説明したように、上記第3の実施形態によれば、ユーザ音声の音声認識結果に影響を与えるユーザ音声入力時点における状況を示す情報(例えば雑音の大きさを示すノイズのパワー)を基に、状況適合度を算出し、これを状態適合度として用いることにより、第1の実施形態と同様、ユーザ入力の内容及び該ユーザ入力を作用させる対話状態を、入力解釈部102において状態適合度と音声認識スコアの組み合わせから、容易に判定することが可能である。
【0113】
第3の実施形態は、現在の対話状態に対する状態適合度がある値を超えたからといって、過去の対話状態に作用させる音声認識結果の候補を棄却するものではない。過去の対話状態でのみ受理できる入力内容が音声認識結果の候補として通知された場合は、過去の対話状態と、該対話状態に作用させる該音声認識結果の候補とを選択することができる。
【0114】
なお、上述の状況適合度の算出方法は、ノイズパワーに基づくものとしたが、状況適合度の算出方法はこれだけに限定されない。パワーと閾値とを比較する際、該パワーの対数をとった後に閾と比較してもよい。また、ユーザ入力の正しさを表す尺度として音声認識スコアを状況適合度として利用することも考えられる。音声認識スコアを用いて、状況適合度を算出する場合には、音声認識スコアが低いほど、状況適合度が小さくなるように、状況適合度を定義する。
【0115】
(第4の実施形態)
第1乃至第3の実施形態では、現在の対話状態と、その1つ前の対話状態について、状態適合度を算出して、ユーザ入力を解釈していた。第4の実施形態では、現在の対話状態よりも2以上前の対話状態についても状態適合度を算出して、ユーザ入力を解釈する対話装置について説明する。
【0116】
第4の実施形態に係る対話装置の構成例は、図1と同様である。但し、状態適合度算出部106の処理動作(図2のステップS206の処理)と、対話履歴記憶部104が記憶する各対話状態に含まれる情報が第1の実施形態と異なる。
【0117】
図17は、第4の実施形態に係る対話履歴記憶部104で記憶する対話状態の一例を示したものである。図17の対話状態400は、当該対話状態対話進行状況を表す状態ID401、各対話状態の待ち受け情報402、変数の内容403、及びに第1の実施形態と同様に状態適合度を算出するための情報404を含み、さらに、状態適合度算出部106で算出された、ユーザ入力と該対話状態400との間の状態適合度406を含む。
【0118】
状態適合度406は、対話状態400が、対話状態400が現在の対話状態である時に算出された状態適合度SD(0)である。対話開始からj番目の対話状態であるとすると、ここでは、この状態適合度406を現状態適合度CSD(j)と表す。なお、CSD(j)を計算することなく対話履歴記憶部104にj+1番目の対話状態を記憶させる場合は、CSD(j)に状態適合度の最大値(第1の実施形態の場合は「100」)を記憶させる。このような状況はj番目の対話状態400の応答が完了し、j+1番目の応答も続けて出力するような場合に生じる。
【0119】
図18は、第4の実施形態に係る状態適合度算出部106の処理動作(図2のステップS206)について説明するためのフローチャートである。状態適合度算出部106は現状態適合度CSD(j)の履歴を用いて、各現状態適合度を補正した状態適合度群を算出する。
【0120】
状態適合度算出部106は、図2のステップS204において、ユーザ入力が検出された時に起動する。図2のステップS206において、状態適合度算出部106が、図10に示すような状態適合度算出処理を実行し、その後、該処理が終了すると、図2のステップS207へ進み、入力解釈部102が入力解釈処理を実行する。対話履歴記憶部104には、対話開始時からj=current)番目の対話状態が現在の対話状態として記憶されているものとする。
【0121】
状態適合度算出部106は、状態適合度算出前に初期化を行う(ステップS501)。初期化処理は、現在の対話状態について、第1の実施形態と同様に状態適合度SD(0)を算出する処理(すなわち、現状態適合度CSD(current)を算出する処理)と、状態適合度算出用の変数を初期化する処理がある。状態適合度算出用の変数には、対話履歴記憶部104に記憶されている対話状態が、現在の対話状態からいくつ前の対話状態であるかを示すインデックス変数iと、状態適合度を配分する残差Rがある。初期化処理では、i=0、R=状態適合度の予め定められた最大値(例えば、ここでは、「100」)とする。なお、i=0に対応する対話状態は、現在の対話状態である。
【0122】
続いて、状態適合度算出部106は、j=current−i番目の対話状態について、状態適合度SD(i)を算出する(ステップS502)。SD(i)は、次式(5)に示すように、j=current−i番目の対話状態の現状態適合度CSD(current−i)に基づき、現在のRの値を配分することにより算出する。配分後は、次式(6)に示すように、現在のRから、j=current−i番目の対話状態に配分されたSD(i)の値を減算して、Rの値を更新する。
【0123】
SD(i)=R×CSD(current−i)/状態適合度の予め定められた最大値 …(5)
R=R−SD(i) …(6)
次に、ステップS503へ進み、状態適合度算出部106は、状態適合度を算出した対話状態の数が、予め定められた上限値に等しいか否かをチェックする。状態適合度を算出する対話状態の数を該上限値に制限するのは、入力解釈部102で考慮する対話状態と、音声認識結果の候補との組合せの数を抑制するためである。ステップS503において、状態適合度を算出する対話状態の数が該上限値に等しい場合には、状態適合度算出部106は処理を終了し、該対話状態の数が該上限値未満の場合には、ステップS504へ進む。
【0124】
ステップS504では、状態適合度算出部106は更新後のRの値が十分小さい値となったか否か、例えば、充分小さいと判定するための閾値δを定め、Rの値が閾値δよりも小さい場合には、Rの値は充分小さいと決定する。ステップS504で、Rの値が充分小さいと判定された場合には、以後のSD(i)は無視できるほどの小さな値となってしまうため、状態適合度の算出を打ち切る(状態適合度算出部106は処理を終了する)。ステップS504において、Rの値が閾値δ以上の場合には、ステップS505へ進む。
【0125】
ステップS505では、次の対話状態について状態適合度を算出するために、iを1つインクリメントし、ステップS502へ進む。以降は、次に対話状態について、前述同様に処理を行う。
【0126】
以上説明したように、第4の実施形態に係る状態適合度算出部106では、現在の対話状態と、それ以前の複数の対話状態とのそれぞれの現状態適合度に基づいて、状態適合度の予め定められた最大値を配分することにより、各対話状態の状態適合度を算出する。このような計算方法によって、過去の対話状態とユーザ入力との対応付けを抑制するが、現状態適合度が低い(ユーザが遷移を許可していない)対話状態が続いている場合には、それより前の対話状態に対する状態適合度が高まるような状態適合度を得ることができる。
【0127】
ステップS501において、CSD(current)を算出する方法の一例として、第1の実施形態と同様に、式(1)を用いてSD(0)を計算すればよい。
【0128】
次に、図3のレストラン検索サービスの対話シナリオを例にとり、第4の実施形態に係る対話装置の処理動作について説明する。
【0129】
[対話例4]
図19の対話例を用いて、対話装置の処理動作について説明する。この対話例では、ユーザが1件目のレストランを選択したものの、ユーザ入力「そこ」が「次」と2回連続して誤って解釈された場合の対話例である。
【0130】
まず、「SYS1801」から「SYS1805」までの対話により、対話状態の履歴を対話履歴記憶部104に記憶する処理動作(図2のステップS202、S205)について説明する。ここでは、ユーザ入力時の処理(図2のステップS206、S207)については省略する。
【0131】
対話装置とユーザとの対話が開始されてから、何回かのユーザ入力及び応答出力を経て、レストラン検索結果を提示する対話状態に達し、図2のステップS201で、対話進行部103が対話進行処理を行っているとする。
【0132】
すなわち、図3の対話シナリオにおけるシナリオノード301(変数n=1、変数name=○○)に現在のシナリオノードが移り、時刻2分40秒に対話進行部103が応答「SYS1801」を出力すると決定する。この時、ステップS202で対話状態の更新を決定し、対話進行部103は、図20に示すように、その時の対話状態601を対話履歴記憶部104に記憶する。対話状態を記憶する際に対話進行部103は応答終了予定時刻を算出し、該応答終了予定時刻を応答開始時刻とともに対話状態503に付加して記憶する。なお、この段階では現状態適合度はまだ算出されていないため、対話状態601には含まれていない。その後、ステップS201へ戻り、応答を出力し、ユーザ入力の待ち状態となる。
【0133】
次に、時刻2分45秒に、ユーザ入力「USER1802」を受けた。ユーザ入力を検知したのでステップS204からステップS206へ進み、状態適合度算出部106は、対話状態601について現状態適合度を算出する。この場合は応答終了予定時刻を過ぎてからユーザ入力が検知されたので、式(1)を用いて状態適合度SD(0)を計算すると、値は「100」となる。これが現状態適合度として、対話履歴記憶部104に、対話状態601内に記憶される。さらに、各対話状態に対し状態適合度を算出する。次に、ステップS207へ進み該ユーザ入力を解釈する。
【0134】
「USER1802」を解釈した結果、ユーザ音声の誤認識の影響をうけて、入力解釈結果は「対話状態601に入力内容「次」を作用させる」となったとする。対話進行部103はこの入力解釈結果を受けて、第1の実施形態と同様にして、応答「SYS1803」を出力すると決定する。この時、対話履歴記憶部104には、対話状態602を現在の対話状態として記憶する(図2のステップS202、ステップS205)。なお、新たに記憶された対話状態602の現状態適合度はまだ算出されていないため、対話状態602には含まれていない。その後、ステップS201へ戻り、応答「SYS1803」を出力する。
【0135】
次に、時刻2分47秒にユーザ入力「USER1804」を受けた。この時も上述と同様にして、ステップS206で、対話状態602の現状態適合度を算出して、対話履歴記憶部104に、対話状態602に対応付けて記憶するとともに、各対話状態に対し状態適合度を算出する。その後、ステップS207において、該ユーザ入力を解釈する。この場合、ユーザ入力「USER1804」は、全4秒の応答出力のち、応答を出力してから1秒経過した時点で検知されたので(このとき応答出力は中断された)、式(1)を用いてSD(0)を計算すると、値は、「25」となる。これが現状態適合度として、対話履歴記憶部104に、対話状態602内に記憶される。
【0136】
「USER1804」を解釈した結果、ユーザ音声の誤認識の影響をうけて、「対話状態602に「次」を作用させる」であったとする。対話進行部103はこの入力解釈結果を受けて、第1の実施形態と同様にして、応答「SYS1805」を出力すると決定する。この時、対話履歴記憶部104には、対話状態603を現在の対話状態として記憶する(図2のステップS202、ステップS205)。なお、新たに記憶された対話状態603の現状態適合度はまだ算出されていないため、対話状態603には含まれていない。その後、ステップS201へ戻り、応答「SYS1805」を出力する。
【0137】
次に、時刻2分49秒にユーザ入力「USER1806」を受けた。「USER1806」は「USER1802」に対する解釈結果の誤りを訂正し、一件目の「○○」を選択することを目的とした訂正入力である。上述の処理により、「USER1806」が入力された時点での対話履歴記憶部104は図19のようになっている。但し、対話状態603の現状態適合度はまだ記憶されていない。
【0138】
ここで、状態適合度算出部106での図18に示した処理で用いるパラメータとして、状態適合度を算出する対話状態の数の上限値を「5」、残差Rに対する閾値δを「5」、状態適合度の予め定められた最大値を「100」とする。
【0139】
時刻2分49秒にユーザ入力「USER1806」を検出すると、ステップS206で、対話状態603の現状態適合度を算出して、対話履歴記憶部104に、対話状態603内に記憶するとともに、各対話状態に対し状態適合度を算出する。その後、ステップS207において、該ユーザ入力を解釈する。
【0140】
ユーザ入力があると、該ユーザ入力「USER1806」に対して音声認識部101が音声認識処理を行う。ここでは「USER1806」の音声認識結果として、曖昧性を含む[「そこ」(1000点)、「次」(990点)]が得られたものとする。音声認識部101はこの音声認識結果を入力解釈部102に通知する。
【0141】
ステップS206では、状態適合度算出部106が状態適合度を算出する。入力関連情報抽出部105が、ユーザ入力時刻「2分49秒」を抽出し、状態適合度算出部106に通知する。図18を参照して、この時の状態適合度算出部106の処理動作について具体的に説明する。
【0142】
まず、状態適合度算出部106は初期化処理(ステップS501)を実行する。ステップS501では、現在の対話状態603の現状態適合度を算出するとともに、インデックス変数iを「0」に設定し、状態適合度の予め定められた最大値「100」をRに設定する。
【0143】
現状態適合度は、式(1)を用いて算出する。応答予定時間は4秒、応答出力時間は、2分49秒−2分48秒=1秒であるから、式(1)より、SD(0)=1/4×100=25となる。この値が、対話状態603の現状態適合度として対話状態603内に記憶される。図20は、このときの対話履歴記憶部104の状態を示したものである。ここで、説明の簡単のため、対話状態603の現状態適合度をCSD(603)と表す。
【0144】
次に、ステップS502へ進み、状態適合度算出部106は、式(5)(6)を用いて、対話状態603に対する状態適合度SD(0)を算出するとともに、Rを更新する。すなわち、
SD(0)=R×CSD(603)/100=100×25/100=25
R=R−SD(0)=75
を得る。状態適合度を算出した対話状態の数は全部で1個なので上限値「5」には達していない(ステップS503)。また、残差Rも「80」であり、「5」より大きい(ステップS504)ので、ステップS505へ進み、iを1つインクリメントした後(i=1)、ステップS502へ進み、対話状態603の1つ前の対話状態602に対する状態適合度SD(1)の算出処理を行う。なお、対話状態602の現状態適合度をCSD(602)と表す。
【0145】
SD(1)=R×CSD(602)/100=75×25/100=19(小数点以下四捨五入)
R=R−SD(1)=75−19=56
を得る。状態適合度を算出した対話状態の数は全部で2個なので上限値「5」には達していない(ステップS503)。また、残差Rも「64」であり、「5」より大きい(ステップS504)ので、ステップS505へ進み、iを1つインクリメントした後(i=2)、ステップS502へ進み、対話状態602の1つ前の対話状態601に対する状態適合度SD(2)の算出処理を行う。なお、対話状態601の現状態適合度をCSD(601)と表す。
【0146】
SD(2)=R×CSD(601)/100=56×100/100=56
R=R−SD(2)=0
を得る。状態適合度を算出した対話状態の数は全部で3個なので上限値「5」には達していない(ステップS503)。しかし、残差Rは「0」であり、「5」より小さい(ステップS504)ので、ここで処理を終了する。状態適合度算出部106は、これら3つの対話状態に対する状態適合度(SD(0)〜SD(2))を入力解釈部102に通知する。
【0147】
続いて、ステップS207において、入力解釈部102が入力解釈処理を行う。入力解釈部102は、通知された音声認識結果の1つの候補と状態適合度算出結果として通知された1つの対話状態とを1組とする複数の組合せ(入力候補)を生成し、各組み合わせに対してトータルスコアを算出する。
【0148】
すなわち、音声認識結果として得られた入力内容の候補が「そこ」、「次」の2種類であり、当該入力内容を作用させる対話状態の候補が対話状態601、602、603の3種類であるとすると、入力解釈部102は、それらを組み合わせて、「対話状態603に「そこ」を作用させる」、「対話状態603に「次」を作用させる」、「対話状態602に「そこ」を作用させる」、「対話状態602に「次」を作用させる」、「話状態601に「そこ」を作用させる」、「対話状態601に「次」を作用させる」の6種類の入力候補を生成する。
【0149】
続いて、入力解釈部102は各入力候補についてトータルスコアを算出する。トータルスコア算出処理について図21を参照して説明する。入力解釈部102はトータルスコアが最も高い入力候補を入力解釈結果として選択する。今回の例では、「対話状態601に「そこ」を作用させる」という入力候補が選択される。
【0150】
なお、入力解釈部102は、トータルスコアを算出する前に、上記6種類の入力候補のうち、例えば、「対話状態601に「次」を作用させる」や、「対話状態602に「次」を作用させる」のように、過去の対話履歴に存在する入力候補を削除してもよい。過去の対話履歴に存在する入力候補は、同じことを繰り返すことになるからである。
【0151】
入力解釈部102は対話進行部103にこの選択された入力解釈結果を通知する。すると、ステップS201へ進み、対話進行部103は場所「○○」を目的地に設定する旨の応答を返す。
【0152】
この対話例では、誤認識が連発し、ユーザが所望する対話状態は、現在の対話状態よりも2つ前の対話状態にある。しかしながら、ユーザは誤りを検出したタイミングで訂正入力を2回入力しているため、誤認識によって遷移した対話状態602、603の現状態適合度が減少している。状態適合度算出部106は、各対話状態の現状態適合度に応じて、各対話状態の状態適合度を算出するため、誤認識によって遷移した対話状態の状態適合度が減少し、結果的にはユーザが所望する対話進行に修正することが可能となっている。
【0153】
以上説明したように、上記第4の実施形態では、ユーザとの対話中に変遷する対話状態と併せて現状態適合度を記憶し、ユーザ音声の入力時に、各対話状態に対し、該対話状態の現状態適合度の履歴に応じた状態適合度を算出し、音声認識スコアと状態適合度とを基に、該ユーザ音声の内容及び該ユーザ音声の内容を採用させる対話状態を選択することにより、過去まで遡って、ユーザ入力を作用させる対話状態の選択が行えるので、過去のユーザ入力に対する誤った解釈を、その後のユーザ入力により容易にしかも正確に訂正することができる。
【0154】
なお、上述の例では、現状態適合度の算出方法はユーザ入力のタイミングに基づくものとしたが、現状態適合度の算出方法はこれだけに限定されない。第2、第3の実施形態で説明したような、ユーザ音声のパワーやノイズのパワーといった尺度を現状態適合度として利用することも考えられる。なお、第3の実施形態のようにユーザ入力前に適合度を算出する場合は、この適合度を現状態適合度として記憶させることが可能である。
【0155】
また、上述の例では、各対話状態の現状態適合度に基づき、状態適合度の予め定められた最大値を配分することにより、各対話状態の状態適合度を算出していたが、この場合に限らず、各対話状態の現状態適合度をそのまま該対話状態の状態適合度としても良い。
【0156】
(第5の実施形態)
第1乃至第4の実施形態では、状態適合度と音声認識スコアとを用いてユーザ入力を解釈していたが、第5の実施形態では、対話状態に対するユーザ入力の内容の意味的な適合度(意味適合度)をさらに用いてユーザ入力を解釈する対話装置について説明する。
【0157】
第5の実施形態に係る対話装置の構成例は、図1と同様である。但し、入力解釈部102の処理動作(図2のステップS207)が第1の実施形態と異なる。また、対話進行部103が参照する対話シナリオ、及び対話履歴記憶部104に記憶される各対話状態に含まれている情報も第1の実施形態と異なる。
【0158】
図22は、第5の実施形態における対話進行部103が参照する対話シナリオの一例を示したものである。図22の対話シナリオの各リンクには、ユーザ入力の内容の意味に対する意味適合度711が付与されている点が、図3の対話シナリオと異なる。
【0159】
ユーザ入力の内容の意味は、言語表現と意味タグの組み合わせで表されているものとする。例えば、音声認識部101は、入力されたユーザ音声に対し音声認識した結果得られる各候補(文字列)について、該候補がもつ意味を示す意味タグを付加して、該候補の認識スコアとともに、入力解釈部102へ出力する。1つの候補が複数の意味をもつ場合には、該候補と該複数の意味のうちの1つを示す意味タグとを1組とする複数の候補のそれぞれを、該候補の認識スコアとともに、入力解釈部102へ出力する。
【0160】
なお、図22において“@ジャンル”は、「ユーザ入力の内容に与えられている意味タグが“ジャンル”」を意味し、“φ”は「ユーザ入力がなくとも推移する」ことを意味する。
【0161】
意味適合度711は、ある対話進行状況において必要とされる入力内容の度合いを示している。例えば、図22の対話シナリオは検索結果を提示するシナリオノード701からでも検索条件(ここでは、「ジャンル」)の変更を指示することができるリンク702が流出している。しかしながら、シナリオノード701の本来の目的は、ユーザ入力「次」「前」を受けて、シナリオノードを順に辿ることであるので、検索条件の変更を必要とする度合いは高くはない。従って、ユーザ入力「次」「前」のリンクの意味適合度が「100」であることに対して、リンク702の意味適合度は「60」となっている。
【0162】
第5の実施形態の対話進行部103における対話進行処理は第1の実施形態と同様であるが、対話履歴記憶部104に記憶される対話状態の内容が異なる。
【0163】
図23は、対話履歴記憶部104に記憶される対話状態の一例を示したものである。図23の対話状態750は、当該対話状態を識別するための状態ID751、各対話状態の待ち受け情報752、変数の内容753、及び状態適合度を算出するための情報754を含む。図4と異なる点は、待ち受け情報752は、各ユーザ入力の内容(文字列)の意味に対応する意味適合度を含む点である。
【0164】
図2のステップS205で、対話状態を対話履歴記憶部104に記憶する際には、現在のシナリオノードから流出するリンクからユーザ入力の内容と意味適合度の組を取得し、それを待ち受け情報として対話状態に記憶させる。
【0165】
次に、入力解釈部102について説明する。入力解釈部102は、複数の入力候補を作成して、各入力候補についてトータルスコアを算出し、トータルスコアに基づいて該複数の入力候補のうちの1つを選択する動作は第1の実施形態と同様である。但し、第5の実施形態における入力解釈部102では、トータルスコアを算出する際に、音声認識スコア、状態適合度と共に、さらに意味適合度も利用する。第5の実施形態のトータルスコアは、これら3つの尺度を加算したものとする。
【0166】
次に、施設検索サービスの対話シナリオを例にとり、対話装置の処理動作について説明する。なお、ここでは、施設検索サービスの対話における一部分である検索ジャンル指定に関する対話シナリオ(図22)に基づき対話を行う場合を例にとり説明する。
【0167】
[対話例5]
図24は、図22の対話シナリオに基づく対話例であり、施設検索サービスにユーザが検索ジャンルとして「レストラン」を指定する場合の対話例である。「SYS2301」から「SYS2304」までの説明は省略し、ユーザ入力「USER2305」の入力解釈処理(図2のステップS206、ステップS207)について説明する。
【0168】
第1の実施形態と同様、対話履歴記憶部104には、図25に示すように、対話進行部103で応答「SYS2301」を出力する際には対話状態803が、応答「SYS2303」を出力する際には対話状態802が、応答「SYS2304」を出力する際には対話状態801が順に記憶される。従って、ユーザ入力「USER2305」が入力される時点では、対話履歴記憶部104は図25に示したような状態となっている。
【0169】
次に、ユーザ入力「USER2305」に対する入力解釈部102、状態適合度算出部106の処理動作について説明する。「USER2305」は、レストラン「○○」に駐車場があるかどうかを問い合わせる旨のユーザ入力である。
【0170】
時刻2分53秒50に、ユーザ入力「USER2305」が入力された。このユーザ入力を検出すると、ステップS204からステップS206へ進む。
【0171】
ユーザ入力があると、該ユーザ入力「USER2305」に対して音声認識部101が音声認識処理を行う。ここでは「USER2305」の音声認識結果として、[「駐車場」(1000点)]が得られたものとする。ここで「駐車場」は、「ジャンル」と、「駐車場有無の問い合わせ」の2種類の意味をもつとすると、ユーザ入力の内容の候補は、音声認識スコアが同点の2つの候補[「駐車場@ジャンル」(1000点)、「駐車場@問い合わせ」(1000点)]となる。
【0172】
ステップS206では、状態適合度算出部106が状態適合度を算出する。入力関連情報抽出部105が、ユーザ入力時刻「2分53秒50」を抽出し、状態適合度算出部106に通知する。状態適合度算出部106は式(1)を用いて現在の対話状態801に対する状態適合度SD(0)を算出するとともに、式(2)を用いて、その1つ前の対話状態802に対する状態適合度SD(1)を算出する。応答予定時間は5秒、応答出力時間は2分53秒50−2分49秒=4.5秒であるから、SD(0)=4.5/5×100=90となり、SD(1)=100−90=10となる。状態適合度算出部106は、これら2対話状態に対する状態適合度を入力解釈部102に通知する。
【0173】
続いて、図2のステップS207において、入力解釈部102が入力解釈処理を行う。入力解釈部102は、通知された音声認識結果の1つの候補と状態適合度算出結果として通知された1つの対話状態とを1組とする複数の組合せ(入力候補)を生成し、各組み合わせに対してトータルスコアを算出する。
【0174】
すなわち、音声認識結果として得られた入力内容の候補が「駐車場@ジャンル」、「駐車場@問い合わせ」の2種類であり、当該入力内容を作用させる対話状態の候補が対話状態801、802の2種類であるので、入力解釈部102は、それらを組み合わせて、「対話状態801に「駐車場@ジャンル」を作用させる」、「対話状態801に「駐車場@問い合わせ」を作用させる」、「対話状態802に「駐車場@ジャンル」を作用させる」、「対話状態802に「駐車場@問い合わせ」を作用させる」の4種類の入力候補を生成する。
【0175】
続いて、入力解釈部102は、各入力候補についてトータルスコアを算出する。トータルスコア算出処理を図26を参照して説明する。入力解釈部102は、対話履歴記憶部104に記憶されている各対話状態の待ち受け情報に、意味タグと該意味タグに対応する意味適合度が含まれているので、入力候補中の対話状態から、該対話状態中の入力内容の候補の意味タグに対応付けられている意味適合度を取り出す。そして、各入力候補について、状態適合度と認識スコアと、さらに意味適合度とを加算して、トータルスコアを算出する。
【0176】
入力解釈部102は、トータルスコアが最も高い入力候補を入力解釈結果として選択する。今回の例では、入力候補「対話状態801に「駐車場@問い合わせ」を作用させる」が入力解釈結果として選択される。入力解釈部102は対話進行部103にこの入力解釈結果を通知する。図2のステップS201において、対話進行部103は、場所「○○」の駐車場有無の確認結果をユーザに返答する。
【0177】
以上説明したように、同じ認識結果「駐車場」から複数の入力候補が導出されたが、検索結果の一件目の情報を提示する対話状態801では、駐車場の有無を問い合わせる意味をもつ入力内容に対する意味適合度が高くなり、「駐車場@問い合わせ」が選択された。一つ前の対話状態802では「駐車場@ジャンル」の意味適合度が高いが、ユーザ音声「USER2305」は、検索結果を提示する応答を全て出力し終わってから入力されている。従って、1件目の情報を提示する対話状態801の状態適合度が高まり、その結果、状態適合度と意味適合度の和から「駐車場@問い合わせ」を選択することが可能となっている。
【0178】
[対話例6]
次に、図27の対話例を参照して、入力解釈部102、状態適合度算出部106の処理動作について説明する。図27の対話例では、「USER2602」のユーザ入力「駐車場」が「レストラン」と誤認識されてしまい、ユーザに応答「SYS2603」、及び応答「SYS2604」(応答分全体は「レストラン1件目は○○です」)を出力した場合を示している。従って、「SYS2604」を出力するまでの動作は図24の対話例の場合と同様であり、この時点の対話履歴記憶部104は、図25に示すような状態となっている。
【0179】
ユーザは、ユーザ入力「USER2602」の応答として「駐車場1件目は…」といった内容の応答を期待していたが、実際に出力された応答「SYS2604」は「レストラン1件目は…」という内容であった。図27の対話例では、「レストラ」まで応答出力されたときに、ユーザが誤りに気づき、その時の時刻2分50秒で再度「駐車場」というユーザ音声「USER2605」を入力した場合を示している。
【0180】
時刻2分50秒に、ユーザ入力「USER2605」を検出すると、図2におけるステップS204からステップS206へ進む。
【0181】
ユーザ入力があると、該ユーザ入力「USER2605」に対して音声認識部101が音声認識処理を行う。ここでは「USER2605」の音声認識結果として図24の「USER2305」と同様に、音声認識結果として[「駐車場」(1000点)]が得られ、入力内容の候補として[「駐車場@ジャンル」(1000点)、「駐車場@問い合わせ」(1000点)]が入力解釈部102に通知されたとする。
【0182】
ステップS206では、状態適合度算出部106が状態適合度を算出する。入力関連情報抽出部105がユーザ入力時刻「2分50秒」を抽出し、状態適合度算出部106に通知する。状態適合度算出部106は式(1)を用いて、現在の対話状態801に対する状態適合度SD(0)を算出するとともに、式(2)を用いて、その1つ前の対話状態802に対する状態適合度SD(1)を算出する。応答予定時間は5秒、応答出力時間は2分50秒−2分49秒=1秒であるから、SD(0)=1/5×100=20となり、SD(1)=100−20=80となる。状態適合度算出部106は、これら2対話状態に対する状態適合度を入力解釈部102に通知する。
【0183】
続いて、図2のステップS207において、入力解釈部102が入力解釈処理を行う。入力解釈部102は、通知された音声認識結果の1つの候補と状態適合度算出結果として通知された1つの対話状態とを1組とする複数の組合せ(入力候補)を生成し、各組み合わせに対してトータルスコアを算出する。
【0184】
すなわち、音声認識結果として得られた入力内容の候補が「駐車場@ジャンル」、「駐車場@問い合わせ」の2種類であり、該入力内容を作用させる対話状態の候補が対話状態801、802の2種類であるので、入力解釈部102は、それらを組み合わせて、「対話状態801に「駐車場@ジャンル」を作用させる」、「対話状態801に「駐車場@問い合わせ」を作用させる」、「対話状態802に「駐車場@ジャンル」を作用させる」、「対話状態802に「駐車場@問い合わせ」を作用させる」の4種類の入力候補を生成する。
【0185】
続いて、入力解釈部102は、各入力候補についてトータルスコアを算出する。トータルスコア算出処理を図28を参照して説明する。入力解釈部102は、対話履歴記憶部104に記憶されている各対話状態の待ち受け情報に、意味タグと該意味タグに対応する意味適合度が含まれているので、入力候補中の対話状態から、該対話状態中の入力内容の候補の意味タグに対応付けられている意味適合度を取り出す。そして、各入力候補について、状態適合度と認識スコアと、さらに意味適合度とを加算して、トータルスコアを算出する。
【0186】
入力解釈部102は、トータルスコアが最も高い入力候補を入力解釈結果として選択する。今回の例では、入力候補「対話状態802に「駐車場@ジャンル」を作用させる」が入力解釈結果として選択される。入力解釈部102は対話進行部103にこの入力解釈結果を通知する。図2のステップS201において、対話進行部103は、現在のシナリオノードを図22のノード701から、対話状態802に対応するノード703に戻し、該対話状態802において、入力解釈結果中の入力内容「駐車場@ジャンル」を受けた場合の動作を行い(ここでは、駐車場の検索)、駐車場の検索結果を出力する応答をユーザに返答する。
【0187】
以上説明したように、同じ認識結果「駐車場」から複数の入力候補が導出されたが、検索結果を提示する対話状態801で出力される応答に対して、ユーザが誤りに気づいた時点で訂正入力を行ったため、1つ前の対話状態802の状態適合度が高まり、しかも、対話状態802において、入力内容「駐車場@ジャンル」は、意味適合度の高い意味タグをもつから、検索条件を変更するような上記入力候補が選択され、検索条件の変更をスムーズに行うことが可能となっている。
【0188】
上記第5の実施形態では、ユーザとの対話中に変遷する対話状態の履歴を記憶し、ユーザ音声の入力時に、ユーザ入力と記憶された各対話状態との間の状態適合度を算出するとともに、各対話状態におけるユーザ入力の内容の意味に対する意味適合度を取得し、音声認識スコア、状態適合度及び意味適合度を基に、該ユーザ入力の内容及び該ユーザ入力を作用させる対話状態を選択することにより、過去のユーザ入力に対する誤った解釈を、その後のユーザ入力により容易にしかも正確に訂正することができる。
【0189】
なお、上述の例では、状態適合度の算出方法はユーザ入力のタイミングに基づくものとしたが、状態適合度の算出方法はこれだけに限定されない。第2、第3の実施形態のような、入力音声のパワーやノイズのパワーといった尺度を状態適合度として利用することも考えられる。
【0190】
上述の例では、対話進行部103の対話進行方法は状態遷移図形式で記述した対話シナリオを参照するものであったが、対話進行部103の対話進行方法はこれだけに限定されない。意味適合度を指定できる対話進行方法であれば任意のものが適用可能である。例えば、”RavenClaw: Dialog Management Using Hierarchical Task Decomposition and an Expectation Agenda” (D. Bohus, et al., Eurospeech2003)では対話状態をユーザ入力の内容を受理できるスタック要素のスタックで表し、ユーザ入力を受理できるスタック要素はスタックのトップから優先的に探索している。このような方式ではスタックのトップにあるスタック要素から順に意味適合度が高いとみなすことが可能であり、図22のように予め意味適合度を指定しなくとも動的に意味適合度を算出することが可能である。
【0191】
なお、第1〜第5の実施形態において、入力解釈部102が、音声認識結果の候補文字列と対話状態とを1組とする複数の組合せ(入力候補)を生成した際、該複数の入力候補のなかに、過去の対話履歴と同じ対話状態と音声認識結果の候補を含む場合がある。このような場合には、まず、該複数の入力候補のうち、過去の対話履歴と同じ対話状態と音声認識結果の候補を含む入力候補を削除し、残りの入力候補のなかから入力解釈結果を求める。例えば、図19に示した対話例、及び図20に示した対話履歴の場合、図21に示した6種類入力候補のうち、「対話状態601に「次」を作用させる」や、「対話状態602に「次」を作用させる」は、過去の対話履歴に存在する入力候補である。これら2つの入力候補は、過去の対話履歴と同じことを繰り返すことになるから、これら2つの入力候補を削除した後に、残りの入力候補についてトータルスコアの算出を行い、入力解釈結果を求める。
【0192】
また、入力解釈部102は、状態適合度算出部106から通知された各対話状態の状態適合度と、予め定められた閾値とを比較し、状態適合度が該閾値以下の対話状態は候補から削除してもよい。その後、入力解釈部102は、残りの対話状態と音声認識結果の文字列とから入力候補を生成し、上述同様にして入力解釈結果を求める。この場合、生成された複数の入力候補のうち、上記のように、過去の対話履歴に存在する入力候補があれば、それを削除した後に、上記同様にして入力解釈結果を求めてもよい。
【0193】
このように、入力解釈部102において、対話状態や入力候補を絞り込むことにより、処理の高速化が図れる。
【0194】
さらに、上記第1〜第5の実施形態では、レストラン検索や施設検索の対話シナリオに基づき、対話装置がユーザと対話する場合を例にとり説明したが、上記各実施形態に係る対話装置は、このような検索に適用する場合に限らず、例えば、カーナビゲーションシステムやテレビやビデオなどの家電の設定や操作など、各種アプリケーションにも適用可能であることはいうまでもない。
【0195】
本発明の実施の形態に記載した本発明の手法、特に、音声認識部101、入力回略部102、対話進行部103、対話履歴記憶部104、入力関連情報抽出部105、状態適合度算出部106、入力状況抽出部111等の各機能は、プログラムをコンピュータに実行させることにより実現可能である。このプログラムは、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、半導体メモリなどの記録媒体に格納して頒布することもできる。
【0196】
また、本発明では、簡単のために入力内容を音声認識の候補文字列としていたが、音声認識結果に対して構文解析・意味解析等の処理を加えた結果としてもよい。
【0197】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0198】
【図1】第1の実施形態に係る対話装置の構成例を示した図。
【図2】図1の対話装置の処理動作を説明するためのフローチャート。
【図3】対話シナリオの一例を示した図。
【図4】対話履歴記憶部に記憶される対話状態の情報の一例を示した図。
【図5】対話履歴記憶部に記憶される対話履歴の一例を示した図。
【図6】対話装置とユーザとの第1の対話例を示した図。
【図7】対話装置とユーザとの第2の対話例を示した図。
【図8】入力解釈部の処理動作を説明する図。
【図9】対話装置とユーザとの第3の対話例を示した図。
【図10】入力解釈部の処理動作を説明する図。
【図11】対話履歴記憶部に記憶される対話履歴の他の例を示した図。
【図12】対話履歴記憶部に記憶される対話履歴のさらに他の例を示した図。
【図13】第3の実施形態に係る対話装置の構成例を示した図。
【図14】図13の対話装置の処理動作を説明するためのフローチャート。
【図15】第3の実施形態に係る対話履歴記憶部に記憶される対話状態の情報の一例を示した図。
【図16】第3の実施形態に係る対話履歴記憶部に記憶される対話履歴の一例を示した図。
【図17】第4の実施形態に係る対話履歴記憶部に記憶される対話状態の情報の一例を示した図。
【図18】第4の実施形態に係る状態適合度算出部の処理動作を説明するためのフローチャート。
【図19】対話装置とユーザとの第4の対話例を示した図。
【図20】第4の実施形態に係る対話履歴記憶部に記憶される対話履歴の一例を示した図。
【図21】第4の実施形態に係る入力解釈部の処理動作を説明する図。
【図22】対話シナリオの他の例を示した図。
【図23】第5の実施形態に係る対話履歴記憶部に記憶される対話状態の情報の一例を示した図。
【図24】対話装置とユーザとの第5の対話例を示した図。
【図25】第5の実施形態に係る対話履歴記憶部に記憶される対話履歴の一例を示した図。
【図26】第5の実施形態に係る入力解釈部の処理動作を説明する図。
【図27】対話装置とユーザとの第6の対話例を示した図。
【図28】第5の実施形態に係る入力解釈部の処理動作を説明する図。
【符号の説明】
【0199】
100…音声入力部、101…音声認識部、102…入力解釈部、103…対話進行部、104…対話履歴記憶部、105…入力関連情報抽出部、106…状態適合度算出部、111…入力状況抽出部

【特許請求の範囲】
【請求項1】
対話状態の履歴を記憶する記憶手段と、
現在の対話状態におけるシステム応答を出力する応答出力手段と、
入力されたユーザ発話を音声認識して、該ユーザ発話に対する1または複数の認識候補とその尤度を求める音声認識手段と、
前記記憶手段に記憶されている現在の対話状態及びその1つ前の対話状態を含む複数の対話状態のそれぞれについて、前記ユーザ発話との適合度を算出する算出手段と、
各対話状態の前記適合度と各認識候補の前記尤度との組合せを基に、前記複数の対話状態のうちの1つと、前記1または複数の認識候補のうちの1つとを選択する選択手段と、
選択された対話状態及び認識候補基に現在の対話状態から新たな対話状態へ遷移する遷移手段と、
を備えた対話装置。
【請求項2】
前記入力されたユーザ発話に付随する情報を取得する情報取得手段をさらに備え、
前記算出手段は、前記情報取得手段で取得した情報を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項1記載の対話装置。
【請求項3】
前記情報取得手段は、前記ユーザ発話の入力時刻を取得し、
前記算出手段は、前記応答出力手段で前記システム応答の出力を開始した時点から前記ユーザ発話の入力された時点までの時間を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項2記載の対話装置。
【請求項4】
前記情報取得手段は、前記ユーザ発話の入力時におけるユーザの感情を示す情報を取得し、
前記算出手段は、前記感情を示す情報を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項2記載の対話装置。
【請求項5】
前記ユーザ発話の音声認識結果に影響を与える該ユーザ発話の入力時点における状況情報を取得する状況情報取得手段をさらに備え、
前記算出手段は、前記状況情報を基に各対話状態に対し前記適合度を算出することを特徴とする請求項1記載の対話装置。
【請求項6】
前記状況取得手段は、前記ユーザ発話の入力時点の雑音の大きさを前記状況情報として取得することを特徴とする請求項5記載の対話装置。
【請求項7】
前記記憶手段は、前記履歴中の各対話状態に、前記応答出力手段で該対話状態におけるシステム応答が出力されたときに入力されたユーザ発話との前記適合度を示す現状態適合度を対応付けて記憶し、
前記算出手段は、前記記憶手段に記憶されている前記複数の対話状態のそれぞれの前記現状態適合度を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項1記載の対話装置。
【請求項8】
前記選択手段は、各対話状態の前記適合度、各認識候補前記尤度、及び各認識候補のもつ意味が各対話状態に適合する度合いを示す意味適合度の組合せを基に、前記複数の対話状態のうちの1つと、前記1または複数の認識候補のうちの1つとを選択することを特徴とする請求項1記載の対話装置。
【請求項9】
ユーザ発話を受けて応答を返す対話装置における対話方法であって、
対話状態の履歴を記憶手段に記憶するステップと、
現在の対話状態におけるシステム応答を出力する応答出力ステップと、
入力されたユーザ発話を音声認識して、該ユーザ発話に対する1または複数の認識候補とその尤度を求める音声認識ステップと、
前記記憶手段に記憶されている現在の対話状態及びその1つ前の対話状態を含む複数の対話状態のそれぞれについて、前記ユーザ発話との適合度を算出する算出ステップと、
各対話状態の前記適合度と各認識候補の前記尤度との組合せを基に、前記複数の対話状態のうちの1つと、前記1または複数の認識候補のうちの1つとを選択する選択ステップと、
選択された対話状態及び認識候補を基に現在の対話状態から新たな対話状態へ遷移する遷移ステップと、
を含む対話方法。
【請求項10】
前記入力されたユーザ発話に付随する情報を取得する情報取得ステップをさらに含み、
前記算出ステップは、前記情報取得ステップで取得した情報を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項9記載の対話方法。
【請求項11】
前記情報取得ステップは、前記ユーザ発話の入力時刻を取得し、
前記算出ステップは、前記応答出力ステップで前記システム応答の出力を開始した時点から前記ユーザ発話の入力された時点までの時間を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項10記載の対話方法。
【請求項12】
前記情報取得ステップは、前記ユーザ発話の入力時におけるユーザの感情を示す情報を取得し、
前記算出ステップは、前記感情を示す情報を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項10記載の対話方法。
【請求項13】
前記ユーザ発話の音声認識結果に影響を与える該ユーザ発話の入力時点における状況情報を取得する状況情報取得ステップをさらに含み、
前記算出ステップは、前記状況情報を基に各対話状態に対し前記適合度を算出することを特徴とする請求項9記載の対話方法。
【請求項14】
前記状況取得ステップは、前記ユーザ発話の入力時点の雑音の大きさを前記状況情報として取得することを特徴とする請求項13記載の対話方法。
【請求項15】
前記記憶手段に記憶されている各対話状態に、前記応答出力ステップで該対話状態におけるシステム応答が出力されたときに入力されたユーザ発話との前記適合度を示す現状態適合度を対応付けて記憶し、
前記算出ステップは、前記記憶手段に記憶されている前記複数の対話状態のそれぞれの前記現状態適合度を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項9記載の対話方法。
【請求項16】
前記選択ステップは、各対話状態の前記適合度、各認識候補の前記尤度、及び各認識候補のもつ意味が各対話状態に適合する度合いを示す意味適合度の組合せを基に、前記複数の対話状態のうちの1つと、前記1または複数の認識候補のうちの1つとを選択することを特徴とする請求項9記載の対話方法。
【請求項17】
コンピュータを、
対話状態の履歴を記憶する記憶手段、
現在の対話状態におけるシステム応答を出力する応答出力手段、
入力されたユーザ発話を音声認識して、該ユーザ発話に対する1または複数の認識候補とその尤度を求める音声認識手段、
前記記憶手段に記憶されている現在の対話状態及びその1つ前の対話状態を含む複数の対話状態のそれぞれについて、前記ユーザ発話との適合度を算出する算出手段、
各対話状態の前記適合度と各認識候補の前記尤度との組合せを基に、前記複数の対話状態のうちの1つと、前記1または複数の認識候補のうちの1つとを選択する選択手段、
選択された対話状態及び認識候補を基に現在の対話状態から新たな対話状態へ遷移する遷移手段、
として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate


【公開番号】特開2008−203559(P2008−203559A)
【公開日】平成20年9月4日(2008.9.4)
【国際特許分類】
【出願番号】特願2007−39958(P2007−39958)
【出願日】平成19年2月20日(2007.2.20)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】