(57)【要約】【課題】過去のユーザ入力に対する誤った解釈を、その後のユーザ入力により容易にしかも正確に訂正することができる対話装置及び方法を提供する。【解決手段】対話状態の履歴を記憶する記憶手段と、現在の対話状態におけるシステム応答を出力する応答出力手段と、入力されたユーザ発話を音声認識して、該ユーザ発話に対する１または複数の認識候補とその尤度を求める音声認識手段と、前記記憶手段に記憶されている現在の対話状態及びその１つ前の対話状態を含む複数の対話状態のそれぞれについて、前記ユーザ発話との適合度を算出する算出手段と、各対話状態の前記適合度と各認識候補の前記尤度との組合せを基に、前記複数の対話状態のうちの１つと、前記１または複数の認識候補のうちの１つとを選択する選択手段と、選択された対話状態及び認識候補を基に新たな対話状態へ遷移する遷移手段とを備える。【選択図】      図１
2008203559.tif 000002
【特許請求の範囲】
【請求項１】
対話状態の履歴を記憶する記憶手段と、
現在の対話状態におけるシステム応答を出力する応答出力手段と、
入力されたユーザ発話を音声認識して、該ユーザ発話に対する１または複数の認識候補とその尤度を求める音声認識手段と、
前記記憶手段に記憶されている現在の対話状態及びその１つ前の対話状態を含む複数の対話状態のそれぞれについて、前記ユーザ発話との適合度を算出する算出手段と、
各対話状態の前記適合度と各認識候補の前記尤度との組合せを基に、前記複数の対話状態のうちの１つと、前記１または複数の認識候補のうちの１つとを選択する選択手段と、
選択された対話状態及び認識候補基に現在の対話状態から新たな対話状態へ遷移する遷移手段と、
を備えた対話装置。
【請求項２】
前記入力されたユーザ発話に付随する情報を取得する情報取得手段をさらに備え、
前記算出手段は、前記情報取得手段で取得した情報を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項１記載の対話装置。
【請求項３】
前記情報取得手段は、前記ユーザ発話の入力時刻を取得し、
前記算出手段は、前記応答出力手段で前記システム応答の出力を開始した時点から前記ユーザ発話の入力された時点までの時間を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項２記載の対話装置。
【請求項４】
前記情報取得手段は、前記ユーザ発話の入力時におけるユーザの感情を示す情報を取得し、
前記算出手段は、前記感情を示す情報を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項２記載の対話装置。
【請求項５】
前記ユーザ発話の音声認識結果に影響を与える該ユーザ発話の入力時点における状況情報を取得する状況情報取得手段をさらに備え、
前記算出手段は、前記状況情報を基に各対話状態に対し前記適合度を算出することを特徴とする請求項１記載の対話装置。
【請求項６】
前記状況取得手段は、前記ユーザ発話の入力時点の雑音の大きさを前記状況情報として取得することを特徴とする請求項５記載の対話装置。
【請求項７】
前記記憶手段は、前記履歴中の各対話状態に、前記応答出力手段で該対話状態におけるシステム応答が出力されたときに入力されたユーザ発話との前記適合度を示す現状態適合度を対応付けて記憶し、
前記算出手段は、前記記憶手段に記憶されている前記複数の対話状態のそれぞれの前記現状態適合度を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項１記載の対話装置。
【請求項８】
前記選択手段は、各対話状態の前記適合度、各認識候補前記尤度、及び各認識候補のもつ意味が各対話状態に適合する度合いを示す意味適合度の組合せを基に、前記複数の対話状態のうちの１つと、前記１または複数の認識候補のうちの１つとを選択することを特徴とする請求項１記載の対話装置。
【請求項９】
ユーザ発話を受けて応答を返す対話装置における対話方法であって、
対話状態の履歴を記憶手段に記憶するステップと、
現在の対話状態におけるシステム応答を出力する応答出力ステップと、
入力されたユーザ発話を音声認識して、該ユーザ発話に対する１または複数の認識候補とその尤度を求める音声認識ステップと、
前記記憶手段に記憶されている現在の対話状態及びその１つ前の対話状態を含む複数の対話状態のそれぞれについて、前記ユーザ発話との適合度を算出する算出ステップと、
各対話状態の前記適合度と各認識候補の前記尤度との組合せを基に、前記複数の対話状態のうちの１つと、前記１または複数の認識候補のうちの１つとを選択する選択ステップと、
選択された対話状態及び認識候補を基に現在の対話状態から新たな対話状態へ遷移する遷移ステップと、
を含む対話方法。
【請求項１０】
前記入力されたユーザ発話に付随する情報を取得する情報取得ステップをさらに含み、
前記算出ステップは、前記情報取得ステップで取得した情報を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項９記載の対話方法。
【請求項１１】
前記情報取得ステップは、前記ユーザ発話の入力時刻を取得し、
前記算出ステップは、前記応答出力ステップで前記システム応答の出力を開始した時点から前記ユーザ発話の入力された時点までの時間を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項１０記載の対話方法。
【請求項１２】
前記情報取得ステップは、前記ユーザ発話の入力時におけるユーザの感情を示す情報を取得し、
前記算出ステップは、前記感情を示す情報を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項１０記載の対話方法。
【請求項１３】
前記ユーザ発話の音声認識結果に影響を与える該ユーザ発話の入力時点における状況情報を取得する状況情報取得ステップをさらに含み、
前記算出ステップは、前記状況情報を基に各対話状態に対し前記適合度を算出することを特徴とする請求項９記載の対話方法。
【請求項１４】
前記状況取得ステップは、前記ユーザ発話の入力時点の雑音の大きさを前記状況情報として取得することを特徴とする請求項１３記載の対話方法。
【請求項１５】
前記記憶手段に記憶されている各対話状態に、前記応答出力ステップで該対話状態におけるシステム応答が出力されたときに入力されたユーザ発話との前記適合度を示す現状態適合度を対応付けて記憶し、
前記算出ステップは、前記記憶手段に記憶されている前記複数の対話状態のそれぞれの前記現状態適合度を基に、各対話状態に対し前記適合度を算出することを特徴とする請求項９記載の対話方法。
【請求項１６】
前記選択ステップは、各対話状態の前記適合度、各認識候補の前記尤度、及び各認識候補のもつ意味が各対話状態に適合する度合いを示す意味適合度の組合せを基に、前記複数の対話状態のうちの１つと、前記１または複数の認識候補のうちの１つとを選択することを特徴とする請求項９記載の対話方法。
【請求項１７】
コンピュータを、
対話状態の履歴を記憶する記憶手段、
現在の対話状態におけるシステム応答を出力する応答出力手段、
入力されたユーザ発話を音声認識して、該ユーザ発話に対する１または複数の認識候補とその尤度を求める音声認識手段、
前記記憶手段に記憶されている現在の対話状態及びその１つ前の対話状態を含む複数の対話状態のそれぞれについて、前記ユーザ発話との適合度を算出する算出手段、
各対話状態の前記適合度と各認識候補の前記尤度との組合せを基に、前記複数の対話状態のうちの１つと、前記１または複数の認識候補のうちの１つとを選択する選択手段、
選択された対話状態及び認識候補を基に現在の対話状態から新たな対話状態へ遷移する遷移手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ発話を受けて応答を返す対話装置に関する。
【背景技術】
【０００２】
近年、音声や自然言語入力を可能とするインタフェースに関する研究が盛んである。また、そのようなインタフェースを用いるエキスパートシステムなどが多数開発され、入力された音声やテキストなどを受理する装置が一般向けにも利用可能となっている。
【０００３】
自然言語による入力を行う場合には、ユーザはシステムが必要とする全ての条件を一度に入力することは少なく、ユーザとシステムとの間でのやりとりが必要となる。例えばユーザの入力内容に不備がある場合には、システムは、その足りない条件をユーザに問い合わせ、その問い合わせに対するユーザの回答を統合するなどの処理が必要となる。このような処理を行うためにユーザとシステムとの対話処理技術が不可欠である。
【０００４】
対話システムは、対話状態を示す情報（対話状態情報）を参照してユーザとのやりとりの内容を決定する。対話状態は、ユーザとの対話の進行状況であり、対話状態情報は、ユーザとの対話の進行状況を示す情報であり、例えば対話中においてユーザから入力された内容を統合した情報や、システムからユーザに提示した情報を含んでいる。この対話状態情報を参照し、動作決定ルールを適用することで対話システムは応答内容を決定する。対話システムは、ユーザ入力を受けて対話状態情報を更新し、更新した対話状態情報を参照してユーザへの応答内容を決定し、ユーザに対して応答を提示すると共にその応答内容に応じて対話状態情報を更新していく。
【０００５】
入力方法に音声を利用する対話システムでは、入力された音声に対する認識誤りが生じる場合がある。或いは音声認識が正しく動作してもその後の解釈（例えば照応・補完処理）に誤りが生じる場合もある。対話システムに誤った入力が通知されると、誤った応答をユーザに提示すると共に、誤った内容で対話状態情報を更新してしまい、その後の対話システムの動作においても誤りの影響が現れる場合がある。したがって対話システムはユーザによる訂正のための入力（訂正入力）を受理しなければならない。
【０００６】
ユーザは、誤ったシステム応答を受けて誤りに気づき、その時にユーザは訂正のための入力を行う。この訂正入力は、誤りの影響が出ていない過去の対話状態情報に対する再入力であるとみなすことができる。従って、訂正入力を扱うためには、ユーザ入力から尤もらしい入力内容を推定すると共に、その入力内容で対話状態情報を更新したり、応答内容を決定する対話状態情報（入力を作用させる対話状態情報）をこれまでの対話中に更新されてきた対話状態情報から推定したりする必要もある。
【０００７】
従来の対話装置には、入力時刻のしきい値処理に基づいて、１つ前の状態に対する入力か否かを判断する方法（例えば、特許文献１参照）や、訂正入力用の音声認識文法を作成し、ユーザ入力が訂正用の文法に合致した場合に訂正入力であると判断する方法（例えば、特許文献２参照）が開示されている。
【０００８】
しかしながら、特許文献１ではユーザが熟考してから訂正するような場合は、入力時刻がしきい値を超えてしまい、訂正入力を受け付けられなくなるという問題がある。また、特許文献２では今回入力を受ける文法と訂正用の文法とで共通するものがある場合に訂正であるかどうかを判断することが出来ないという問題がある。或いは、共通のものがなくとも、音声認識結果には曖昧性を含むものがあり、１つの認識結果に訂正用文法のものと今回のものの両方が含まれる場合もある。このような場合には訂正か否かを判断することができないという問題がある。
【０００９】
これらの問題は、特許文献１では入力時刻のみで対話状態の推定をしており、特許文献２では入力内容のみで対話状態の推定をしていることに起因する。ユーザの訂正入力を受理するためには、入力内容の推定と、入力を作用させる対話状態の推定の両方を総合的に扱う入力解釈が必要である。
【特許文献１】特開２００４−３２５８４８号公報
【特許文献２】特開２００５−３１６２４７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
以上説明したように、従来は、過去のユーザ入力に対する誤った解釈を、その後のユーザ入力により容易にしかも正確に訂正することができないという問題点があった。
【００１１】
そこで、本発明は、上記問題点に鑑み、過去のユーザ入力に対する誤った解釈を、その後のユーザ入力により容易にしかも正確に訂正することができる対話装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の対話装置は、対話状態の履歴を記憶する記憶手段と、現在の対話状態におけるシステム応答を出力する応答出力手段と、入力されたユーザ発話を音声認識して、該ユーザ発話に対する１または複数の認識候補とその尤度を求める音声認識手段と、前記記憶手段に記憶されている現在の対話状態及びその１つ前の対話状態を含む複数の対話状態のそれぞれについて、前記ユーザ発話との適合度を算出する算出手段と、各対話状態の前記適合度と各認識候補の前記尤度との組合せを基に、前記複数の対話状態のうちの１つと、前記１または複数の認識候補のうちの１つとを選択する選択手段と、選択された対話状態に該選択された認識候補を作用させて新たな対話状態へ遷移する遷移手段とを備える。
【発明の効果】
【００１３】
本発明によれば、過去のユーザ入力に対する誤った解釈を、その後のユーザ入力により容易にしかも正確に訂正することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施形態について図面を参照して説明する。
【００１５】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る対話装置を示すブロック図である。図１の対話装置は、音声入力部１００、音声認識部１０１、入力解釈部１０２、対話進行部１０３、対話履歴記憶部１０４、入力関連情報抽出部１０５、状態適合度算出部１０６を含む。
【００１６】
音声認識部１０１は、マイク等からなる音声入力部１００から入力されたユーザの音声を音声認識する。音声認識部１０１は、入力音声に対し音声認識した結果、１または複数の候補（候補文字列）が得られた場合には当該１または複数の候補と、各候補の該入力音声に対する尤もらしさを表すスコア（尤度）とを含む音声認識結果を入力解釈部１０２へ通知する。入力音声に対し音声得認識した結果、スコアが予め定められた閾値以上の有効な候補が得られなかった場合には（有効な入力音声でない場合には）、音声認識部１０１は、その旨を含む音声認識結果を入力解釈部１０２へ通知する。
【００１７】
入力解釈部１０２は、ユーザ入力の解釈を行う。入力解釈部１０２は、まず、通知された音声認識結果に含まれる候補文字列と、対話履歴記憶部１０４に記憶される対話状態とを1組とする複数の入力候補を生成する。そして、各入力候補中の候補文字列に対する音声認識のスコアと、状態適合度算出部１０６から通知される、各入力候補中の対話状態の状態適合度とを基に、上記複数の入力候補のうちの１つを入力解釈結果として選択する。
【００１８】
対話進行部１０３は、対話進行方法を記述した対話シナリオと対話履歴記憶部１０４に記憶されている対話状態とを参照して、入力解釈部１０２から通知された入力解釈結果を基に、ユーザ入力の内容に応じたシステム応答（以下、簡単に応答と呼ぶことがある）を決定し、出力することにより、ユーザとの対話を進行する。応答は音声信号やテキスト表示・画像出力等によってユーザに提示される。
【００１９】
入力解釈部１０２から通知される入力解釈結果には、ユーザ入力を示す候補文字列と、該ユーザ入力を作用させる対話状態とが含まれている。対話進行部１０３は、入力解釈結果を受け取ると、該入力解釈結果にて指定されている対話状態に遷移し、該対話状態に対して入力解釈結果で指定されたユーザ入力を適用した場合の動作を行う。
【００２０】
対話進行の方法には、対話の進行状況を状態遷移図で記述した対話シナリオを参照し、ユーザ入力に伴い状態を遷移させていく方式や、対話状態をユーザから取得した情報群として、この情報群と予め定められたユーザから取得すべき情報群と比較し、不足している情報をユーザに問い合わせるといった方法など、種々の方法が考えられる。本発明には任意の方法を適用することができる。
【００２１】
対話履歴記憶部１０４は、ユーザとの対話の進行状況を示す対話状態の履歴を記憶する。対話履歴記憶部１０４では、現在の（最新の）対話状態と、現在の対話状態よりも１つ前の対話状態、さらにそれよりも前の対話状態を記憶する。それ以外の対話状態は消去してもよい。対話履歴記憶部１０４の詳細は後述する。
【００２２】
入力関連情報抽出部１０５は、ユーザ入力から音声認識結果以外の入力関連情報を抽出し、状態適合度算出部１０６に通知する。入力関連情報には、入力のタイミング情報や、ユーザ発話の音声の振幅（パワー）の情報といった音声入力に含まれる非言語情報が考えられる。入力関連情報抽出部１０５の詳細は後述する。
【００２３】
状態適合度算出部１０６は、入力関連情報抽出部１０５から通知される入力関連情報を基に対話状態管理部１０４に記憶されている各対話状態について状態適合度を算出する。ある対話状態の状態適合度とは、ユーザ入力の該対話状態に対する適合度を示す値である。ユーザ入力に訂正意図が強く含まれている場合には、状態適合度算出部１０６で算出される最新の対話状態に対する状態適合度は低く、過去の対話状態に対する状態適合度が高くなる。逆にユーザ入力に訂正意図が含まれていない場合には、状態適合度算出部１０６で算出される最新の対話状態に対する状態適合度は高くなり、過去の対話状態に対する状態適合度が低くなる。状態適合度算出部１０６の動作の詳細は後述する。
【００２４】
次に、図２に示すフローチャートを参照して本発明の対話装置の動作を説明する。
【００２５】
図１の対話装置はユーザと対話を行うものであり、ユーザとの対話を開始した時がＳｔａｒｔに相当し、ユーザとの対話が終了した時がＥｎｄに相当する。
【００２６】
ユーザとの対話が開始されると、対話進行部１０３は、対話シナリオを参照してユーザとの対話を進行する（ステップＳ２０１）。対話進行中にはシステム応答を出力してユーザ入力を待ち受ける状態は、ステップＳ２０１でユーザ入力まで一時停止している状態であると云える。この場合はユーザ入力やタイマイベント等を受理することでステップＳ２０１の処理が継続される。対話進行部１０３は、ユーザとの対話中の各段階で、対話状態が更新されたか否か（ステップＳ２０２）、ユーザとの対話が終了したか否か（ステップＳ２０３）、ユーザ入力の有無（ステップＳ２０４）を逐一確認する。
【００２７】
ステップS２０１において、例えば、対話進行部１０３が、ある対話状態において生成される応答を出力すると決定したとき、ステップＳ２０２において、対話状態の更新を決定し、ステップＳ２０５へ進む。ステップＳ２０５では、対話進行部１０３は、当該対話状態を現在の対話状態として対話履歴記憶部１０４に記憶する。応答を出力することにより、ユーザに現在の対話状態を表明すると、表明した対話状態に対してユーザが何らかの反応をし、ユーザ音声が入力される。応答を出力した時の対話状態はユーザ入力が作用する可能性があるため、対話履歴記憶部１０４にその対話状態を記憶させることが望ましい。
【００２８】
ステップＳ２０３において、対話の終了を検知した場合、処理を終了する。
【００２９】
ステップＳ２０４において、ユーザ入力（ユーザ発話）を検知した場合、該ユーザ発話の内容を解釈する。まず、状態適合度算出部１０６が、対話履歴記憶部１０４に記憶されている現在の対話状態と、それ以前の対話状態とについて、該ユーザ入力との適合度を算出する（ステップＳ２０６）。次に、入力解釈部１０２が、算出された適合度、音声認識部１０１から通知される音声認識結果を参照し、該ユーザ入力を解釈する（ステップＳ２０７）。入力解釈部１０２の入力解釈結果を受けて、対話進行部１０３がユーザとの対話を継続する（ステップＳ２０１）。ステップＳ２０６、ステップＳ２０７の処理動作の詳細は後述する。
【００３０】
ここで対話進行部１０３について説明する。対話進行部１０３における対話進行方法は任意のものを適用できるが、ここでは、対話進行方法として対話シナリオを状態遷移図で記述する方法を例として説明する。
【００３１】
図３は、本実施形態に係る対話シナリオの一例を示したものである。図３は場所を検索して目的地を設定する対話シナリオの一部である。図３の対話シナリオは状態遷移図形式で対話シナリオが記述されており、対話の進行状況をノードに、遷移先をリンクで表している。以後このノードのことを「シナリオノード」と表記する。シナリオノードは、対話状態に対応する。
【００３２】
図３の対話シナリオでは、検索結果の場所をユーザに順に提示するシナリオノード３０１と、ユーザ入力（ユーザ発話）「それ」により指示された場所を目的地とするかを確認するシナリオノード３０２を示している。シナリオノード間を結ぶリンクにはユーザ入力が関連付けられている。対話進行部１０３はユーザとの対話中の各時点で、現在どのシナリオノードの対話を行っているかを管理し、現在のシナリオノードから流出するリンクに関連付けられたユーザ入力を受けると、そのリンク先にあるシナリオノードに遷移し、遷移後のシナリオノードを現在のシナリオノードとする。
【００３３】
対話進行部１０３は遷移の際に”｛  ｝”で括られた内容の動作を実行し、遷移後のシナリオノードに記述されている応答をユーザに提示する。最終的に状態遷移図の最後のシナリオノードまで遷移すると、ユーザとの対話を終了する。なお、図３において“＄ｘ”は変数ｘを表している。また、リンク３０４のように、リンクに対して動作指定が対応付けられていない場合は”｛  ｝”の動作指定表記を省略している。
【００３４】
入力解釈部１０２では、ユーザ入力の言語表現に対して品詞情報や意味・意図などの意味的な情報(以後「意味タグ」と表記)を付与する場合がある。意味タグは同じ表現で複数の動作がある場合にそれを区別する情報として有効であり、対話シナリオにおいて意味タグを考慮した動作を指定することも可能である。図３において意味タグを「＠ＸＸ」と表記する。リンク３０３における「次＠Index操作」は、「Index操作」を指示する「次」というユーザ入力、という意味を持つ。以後、表記を簡単にするために言語表現（例えば「次」）で、シナリオノードからのリンクが一意に決定できる場合は、意味タグは省略する。
【００３５】
例えば、現在のシナリオノードがノード３０１の時に、ユーザ入力「次」が入力されると、対話進行部１０３はリンク３０３の先にあるノード３０１を次に遷移するシナリオノードとする。遷移前は、変数「ｎ」が「２」番目であったとすると、遷移の際に変数「ｎ」を「２」から「３」に更新し、変数「ｎａｍｅ」を３番目の場所名(例えば「ｘｘ」)に更新する。リンク３０３は、シナリオノード３０１に流入するため、更新した変数の内容で「３番目は「ｘｘ」です」という旨の応答を出力する。また、現在のシナリオノードがノード３０１の時にユーザ入力「それ」が入力されると、対話進行部１０３はリンク３０４の先にあるシナリオノード３０２を次のシナリオノードとし、「「ｘｘ」を目的地に設定しますか？」という旨の応答を出力する。応答は、音声やテキスト表示、画像を用いて提示される。
【００３６】
続いて対話履歴記憶部１０４について詳細に説明する。対話履歴記憶部１０４はユーザとの対話進行状況に伴い更新される対話状態を時系列に記憶する。対話履歴記憶部１０４は対話開始から現在までの全ての対話状態を記憶する必要はなく、現在の（最新の）対話状態と、現在の対話状態よりも１つまたは複数前の対話状態を記憶する。
【００３７】
対話状態は、少なくとも該対話状態において受理できるユーザ入力の内容（待ち受け情報）と、対話の進行状況を表現する情報と、状態適合度を算出するための情報とを含むデータである。対話状態の構造は対話進行部１０３で採用する対話進行方法に依存するため、ここでは対話進行部１０３が上述のように対話シナリオに沿って対話を進行する場合を例にとり説明する。
【００３８】
図４は、対話履歴記憶部１０４で記憶する対話状態の情報の例を示したものである。図４の対話状態４００は、当該対話状態を識別するための状態ＩＤ４０１、各対話状態の待ち受け情報４０２、変数の内容４０３、及び状態適合度を算出するための情報４０４を含む。
【００３９】
図３の対話シナリオを参照して対話を行う場合、対話進行状況はシナリオノード３０１、３０２に相当する。ここで、説明の簡単のために、シナリオノードの符号３０１、３０２をそれぞれ状態ＩＤとして用いる。図４の対話状態は、図３のシナリオノード３０１に対応し、状態ＩＤは「３０１」である。各対話状態の待ち受け情報は、当該対話状態に対応するシナリオノードから流出するリンクに相当する。また、状態適合度を算出するための情報４０４として、本実施形態では応答開始時刻と応答終了予定時刻を用いる。これは状態適合度をユーザ入力のタイミングから算出することを目的としたものである。応答開始時刻は、対話進行部１０３が応答を出力する際の開始時刻である。対話進行部１０３が応答を全て出力するために必要な時間を計算し、この時間を応答開始時刻に加算した結果得られる時刻が応答終了予定時刻である。
【００４０】
図５は、対話装置がユーザとの間で図６に示したような対話を経た場合に、対話履歴記憶部１０４に記憶されている対話状態の履歴を示したものである。図５では、対話履歴記憶部１０４に記憶されている、ユーザとの対話中に通過した対話状態を、左端から時系列に示し、右端の対話状態５０１が現在の対話状態である。
【００４１】
図６の対話例は、図３の対話シナリオにおけるシナリオノード３０１（変数n＝２、変数name＝△△）から始まっている。図２のステップＳ２０１において、対話進行部１０３が応答「ＳＹＳ６０１」を出力すると決定した時、ステップＳ２０２において対話状態の更新を決定し、ステップＳ２０５において、対話進行部１０３は、その時の対話状態５０３を対話履歴記憶部１０４に記憶する。以後順に応答「ＳＹＳ６０３」、「ＳＹＳ６０５」を出力すると決定したときに、対話進行部１０３は対話状態５０２、５０１の順に対話履歴記憶部１０４に記憶する。
【００４２】
続いて、図２のステップＳ２０６における、入力関連情報抽出部１０５と状態適合度算出部１０６の動作について詳細に説明する。
【００４３】
本実施形態では、入力関連情報としてユーザ入力開始時刻を利用する。直前のユーザ入力が誤って受理されていなければ、その入力に対する応答はユーザが望むものであるので、ユーザは対話進行部１０３が提示する応答を受け付ける。一方、直前のユーザ入力が誤って受理された場合は、その入力に対する応答はユーザが望まないものであるので、ユーザは誤りに気づいた時点で訂正入力を行うものと考えられる。この場合、ユーザは応答を提示している現在の対話状態への遷移を認めておらず、それより前の対話状態への入力を意図した入力がなされる。或いは、対話進行部１０３の応答の開始と同時にユーザが入力した場合、ユーザは今回の応答を認知しておらず、現在の対話状態より前の対話状態に作用させることを意図した入力をしていると考えられる。従って、対話装置が応答を出力開始した時点からユーザ入力開始までの時間が短ければ、ユーザは現在の対話状態よりも過去の対話状態への入力を意図していると判断することができる。対話装置が応答を出力開始した時点からユーザ入力開始までの時間を「応答出力時間」と呼ぶ。
【００４４】
入力関連情報抽出部１０５は、ユーザ入力時に入力開始時刻を取得する。取得した入力開始時刻は状態適合度算出部１０６に通知する。
【００４５】
状態適合度算出部１０６は、対話状態管理部１０４に記憶されている各対話状態に対し状態適合度（ＳＤ）を算出する。本実施形態では現在の対話状態（ＳＤ（０））とその１つ前の対話状態に対し状態適合度（ＳＤ（１））を算出する。”ＳＤ（ｎ）”は、現在の対話状態よりもｎ個前の対話状態に対する状態適合度を表す表現である。上述のように応答出力時間が短くなると、現在の対話状態への遷移をユーザが許容していないと考えることが出来る。従って、応答出力時間が短ければ現在の対話状態に対する状態適合度ＳＤ（０）は小さくなり、その１つ前の対話状態に対する状態適合度ＳＤ（１）は大きくなると推定できる。本実施形態では状態適合度を、今回の応答を全て出力するために必要な応答予定時間と、実際の応答出力時間との比率に基づいて算出する。
【００４６】
ここで、応答出力時間及び応答予定時間を次のようにして算出する。
【００４７】
応答出力時間＝ユーザ入力開始時刻−応答開始時刻
応答予定時間＝応答終了予定時刻−応答開始時刻
そして、現在の対話状態に対する状態適合度ＳＤ（０）は、次式（１）より算出する。
【００４８】
ＳＤ（０）
＝［応答出力時間≦応答予定時間の場合］（応答出力時間／応答予定時間）×１００
＝［応答出力時間＞応答予定時間の場合］１００
…（１）
現在の対話状態より１つ前の対話状態に対する状態適合度ＳＤ（１）は次式（２）より算出する。
【００４９】
ＳＤ（１）＝１００−現在の対話状態に対する状態適合度ＳＤ（０）
…（２）
状態適合度算出部１０６は、図２のステップＳ２０６において、上述したように、現在の対話状態に対するユーザ入力の適合度ＳＤ（０）と、ユーザ入力の現在の対話状態の1つ前の対話状態に対するユーザ入力の適合度ＳＤ（１）とを算出して、これらを入力解釈部１０２へ通知する。
【００５０】
次に、図２のステップＳ２０７における、入力解釈部１０２の入力解釈処理について詳細に説明する。
【００５１】
入力解釈部１０２では、音声認識部１０１から通知されるユーザ音声の音声認識結果の候補（文字列）と、状態適合度算出部１０６から通知された対話状態とを1組とする複数の組合せ（入力候補）を生成する。そして、この複数の組合せの中から最適な組合せを選択する。本実施形態では、各組合せについて、該組合せ中の音声認識結果の候補文字列に対するスコアと、該組合せ中の対話状態に対し求めた状態適合度とを加算して、当該組合せのトータルスコアを算出する。入力解釈部１０２はトータルスコアが最も高い組合せを入力解釈結果として選択する。
【００５２】
入力解釈結果として選択された組合せは、ユーザ入力の内容と、該ユーザ入力を作用させる対話状態との最適な組合せである。
【００５３】
入力解釈結果として選択された組合せに含まれる対話状態が、現在の対話状態の１つ前の対話状態であった場合は、対話進行部１０３は当該１つ前の対話状態に、当該入力解釈結果の組合せに含まれる音声認識結果のユーザ入力の内容を作用させて対話を開始する。すなわち、対話進行部１０３は、当該１つ前の対話状態に関連付けられているシナリオノードに対して通知された入力内容のリンクを辿って次の対話進行を決定する。
【００５４】
次に、図３が、レストラン検索サービスの対話シナリオである場合を例にとり、図１の対話装置の処理動作について説明する。
【００５５】
［対話例１］
図６の対話例を利用して、対話履歴記憶部１０４に対話状態を記憶する手順（図２のステップＳ２０２、Ｓ２０５）について説明する。ユーザ入力に対し状態適合度を算出して該ユーザ入力を解釈する図２のステップＳ２０６、ステップＳ２０７の処理動作の詳細は省略する。
【００５６】
図６は、対話装置とユーザとが対話を開始し、何回かのユーザ入力及び応答出力を経て、レストラン検索結果を提示する対話状態に達したときの対話例である。図２のステップＳ２０１において、図３の対話シナリオにおけるシナリオノード３０１（変数n＝２、変数name＝△△）に現在のシナリオノードが移り、時刻２分４０秒に対話進行部１０３が応答「ＳＹＳ６０１」を出力すると決定する。この時、ステップＳ２０２で対話状態の更新を決定し、対話進行部１０３は、その時の対話状態５０３を対話履歴記憶部１０４に記憶する。対話状態を記憶する際に対話進行部１０３は応答終了予定時刻を算出し、該応答終了予定時刻を応答開始時刻を含む対話状態５０３を記憶する。その後、ステップＳ２０１へ戻り、応答を出力し、ユーザ入力の待ち状態となる。
【００５７】
次に、時刻２分４５秒に、ユーザ入力「ＵＳＥＲ６０２」を受けた。ユーザ入力を検知したのでステップＳ２０４からステップＳ２０６、ステップＳ２０７を経て、入力解釈処理を行う。応答終了予定時刻を過ぎてからユーザ入力があったので、前述のステップＳ２０６及びステップＳ２０７の処理により、現在の対話状態に対する入力が優先される解釈が行われる。その結果、入力解釈結果は「対話状態５０３に入力内容「次」を作用させる」となったとする。
【００５８】
対話進行部１０３はこの入力解釈結果を受けて対話状態５０３に関連付けられているシナリオノード３０１から流出するリンク３０３の遷移を行い、シナリオノード３０１（変数n＝３、変数name＝××）に遷移すると決定する。シナリオノードが遷移するに伴い、時刻２分４８秒に対話進行部１０３は応答「ＳＹＳ６０３」を出力すると決定する（図２のステップＳ２０１）。この時、ステップＳ２０２で対話状態の更新を決定し、ステップＳ２０５において、対話進行部１０３は対話状態５０２を５０３より新しい対話状態として対話履歴記憶部１０４に記憶する。対話状態を記憶する際に、対話進行部１０３は応答終了予定時刻を算出し、該応答終了予定時刻と応答開始時刻とを含む対話状態５０２を対話履歴記憶部１０４に記憶する。その後、ステップＳ２０１へ戻り、応答を出力し、ユーザ入力の待ち状態となる。
【００５９】
次に、時刻２分５３秒に、ユーザ入力「ＵＳＥＲ６０４」を受けた。この入力についても上述の「ＵＳＥＲ６０２」の処理と同様にして、入力解釈結果「入力内容「そこ」を対話状態５０２に作用させる」を得る。
【００６０】
対話進行部１０３はこの入力解釈結果を受けて、対話状態５０２に関連付けられているシナリオノード３０１から流出するリンク３０４の遷移を行い、シナリオノード３０２（変数name＝××）に遷移すると決定する。シナリオノードが遷移するに伴い、時刻２分５５秒に対話進行部１０３は応答「ＳＹＳ６０５」を出力すると決定する。（図２のステップＳ２０１）。この時、ステップＳ２０２で対話状態の更新を決定し、ステップＳ２０５において、対話進行部１０３は対話状態５０１を最新の対話状態として対話履歴記憶部１０４に記憶する。対話状態を記憶する際に、対話進行部１０３は応答終了予定時刻を算出し、該応答終了予定時刻と応答開始時刻（２分５５秒）とを含む対話状態５０１を対話履歴記憶部１０４に記憶する。以上の処理を行った結果、対話履歴記憶部１０４には、図５に示したような対話状態の履歴が記憶される。
【００６１】
［対話例２］
次に、図７の対話例を用いて、入力解釈部１０２、状態適合度算出部１０６の動作について説明する。図７の対話例は、図６の「ＳＹＳ６０１」から「ＳＹＳ６０５」までの対話に、さらに、「ＳＹＳ６０６」が追加されて、場所「××」に目的地を定める対話例である。
【００６２】
「ＳＹＳ６０１」から「ＳＹＳ６０５」までの処理動作は図６の対話例と同じである。従って、「ＳＹＳ６０５」の出力時点での対話履歴記憶部１０４は図５のような対話状態の履歴が記憶されている。以下、ユーザ入力「ＵＳＥＲ６０６」に対する処理動作について説明する。なお、「ＳＹＳ６０５」における“…”は応答出力中に（応答出力が終了する前に）ユーザ入力があり、応答が中断されたことを示す。
【００６３】
図２のステップＳ２０１において応答出力中に、時刻２分５８秒５０にユーザ入力「ＵＳＥＲ６０６」があり、これを、図２のステップＳ２０４において検出すると、ステップＳ２０６へ進む。
【００６４】
「ＵＳＥＲ６０６」に対して、音声認識部１０１が音声認識処理を行う。ここでは「ＵＳＥＲ７０６」の音声認識結果として、曖昧性を含む［「次」（１０００点）、「はい」（９７０点）］が得られたものとする。尚、音声認識結果の各候補（文字列）及びのスコアは「入力内容」（音声認識スコア）と表記し、複数の候補があれば、それらを［  ］内に羅列して表記する。音声認識部１０１は、このような音声認識結果を入力解釈部１０２に通知する。
【００６５】
ステップＳ２０６では、状態適合度算出部１０６が状態適合度を算出する。入力関連情報抽出部１０５がユーザ入力開始時刻「２分５８秒５０」を抽出し、状態適合度算出部１０６に通知する。状態適合度算出部１０６は式（１）及び式（２）を用いて、現在の対話状態５０１に対するユーザ入力の状態適合度ＳＤ（０）と、その１つ前の対話状態５０２に対するユーザ入力の状態適合度ＳＤ（１）を算出する。現在の対話状態５０１の応答予定時間は、対話状態５０１の応答終了予定時刻「３分００秒」と応答開始時刻「２分５５秒」との差であり、「５秒」となる。ユーザ入力までの応答出力時刻はユーザ入力開始時刻「２分５８秒５０」と応答開始時刻「２分５５秒」との差で「３．５秒」となる。従って、ＳＤ（０）＝３．５／５×１００＝７０となり、ＳＤ（１）＝１００−７０＝３０となる。状態適合度算出部１０６はこれら２つの対話状態に対するユーザ入力の状態適合度を入力解釈部１０２に通知する。
【００６６】
続いて、ステップＳ２０７で入力解釈部１０２が入力解釈処理を行う。入力解釈部１０２は、通知された音声認識結果の１つの候補と状態適合度算出結果として通知された１つの対話状態とを1組とする複数の組合せ（入力候補）を生成し、各組み合わせに対してトータルスコアを算出する。
【００６７】
すなわち、音声認識結果として得られた入力内容の候補が「次」、「はい」の２種類であり、当該入力内容を作用させる対話状態の候補が対話状態５０１、５０２の２種類であるのとすると、入力解釈部１０２は、それらを組み合わせて、「対話状態５０１に「次」を作用させる」、「対話状態５０１に「はい」を作用させる」、「対話状態５０２に「次」を作用させる」、「対話状態５０２に「はい」を作用させる」の４種類の入力候補を生成する。
【００６８】
続いて、入力解釈部１０２は各入力候補についてトータルスコアを算出する。トータルスコア算出処理の詳細を図８を参照して説明する。図８において、“「次」［５０１］”は「対話状態５０１に入力内容「次」を作用させる」という候補を意味する。入力解釈部１０２が算出するトータルスコアは、各入力候補の音声認識スコアと状態適合度を加えたものである。但し、シナリオノード３０２に対応する対話状態５０１は、入力内容「次」を受理できないので、対話状態５０１と入力内容「次」との組合せ（入力候補）は棄却する。図８では棄却した入力候補にはトータルスコアの欄に「×」と記載している。対話状態５０２と入力内容「はい」との組合せ（入力候補）についても同様に棄却される。
【００６９】
入力解釈部１０２はトータルスコアが最も高い入力候補を入力解釈結果として選択する。今回の例では、「対話状態５０１に入力内容「はい」を作用させる」が入力解釈結果として選択された。入力解釈部１０２は対話進行部１０３にこの入力解釈結果を通知し、ステップＳ２０１で対話進行部１０３は場所「××」を目的地に設定する旨の応答を出力する。
【００７０】
以上のように、ユーザ入力に対する音声認識による認識スコアが低い方の入力内容であっても、該入力内容と状態適合度が高い対話状態との組合せにより、トータルスコアが最大となる。すなわち、入力解釈部１０２で入力解釈する際に、ユーザ入力と、現在及びそれ以前の対話状態との間の状態適合度を考慮することにより、ユーザ入力に対する音声認識誤りの候補「次」を棄却することが可能となる。
【００７１】
［対話例３］
次に、図９の対話例を用いて、入力解釈部１０２、状態適合度算出部１０６の動作について説明する。図９の対話例は、「ＳＹＳ６０１」から「ＳＹＳ６０３」までの対話は図６の対話例と同様である。図９では、その次の「ＵＳＥＲ９０４」のユーザ入力「次」が「そこ」に誤解釈されてしまい、ユーザへの応答「ＳＹＳ９０５」（応答内容は「××を目的地に設定しますか？」）を出力した場合を示している。従って、応答「ＳＹＳ９０５」を出力するまでの動作は図６の対話例と同様であり、この時点の対話履歴記憶部１０４には図５のような履歴が記憶されている。
【００７２】
ユーザは、ユーザ入力「入力ＵＳＥＲ９０４」の応答として「４件目は…」といった内容の応答を期待していたが、応答「ＳＹＳ９０５」は「××を…」という内容であった。図９の対話例では「××を」の段階でユーザが誤りに気づき、その時の時刻２分５６秒で再度「次」というユーザ入力「ＵＳＥＲ９０６」を行った。前述同様に、対話進行部１０３が、時刻２分５６秒に、ユーザ入力「ＵＳＥＲ９０６」を検出すると（図２のＳ２０４）、ステップＳ２０６へ進む。
【００７３】
「ＵＳＥＲ９０６」に対して、音声認識部１０１が音声認識処理を行う。ここでは「ＵＳＥＲ９０６」の音声認識結果として図７の「ＵＳＥＲ６０６」と同様に、曖昧性を含む［「次」（１０００点）、「はい」（９７０点）］が得られたものとする。音声認識部１０１はこの音声認識結果を入力解釈部１０２に通知する。
【００７４】
ステップＳ２０６では、状態適合度算出部１０６が状態適合度を算出する。入力関連情報抽出部１０５がユーザ入力開始時刻「２分５６秒」を抽出し、状態適合度算出部１０６に通知する。状態適合度算出部１０６は、式（１）及び式（２）を用いて、現在の対話状態５０１に対する状態適合度ＳＤ（０）と、その１つ前の対話状態５０２に対する状態適合度ＳＤ（１）を算出する。現在の対話状態５０１の応答予定時間は、対話状態５０１の応答終了予定時刻「３分００秒」と応答開始時刻「２分５５秒」との差であり、「５秒」となる。ユーザ入力までの応答出力時刻は、ユーザ入力開始時刻「２分５６秒」と応答開始時刻「２分５５秒」）との差で「１秒」となる。従って、ＳＤ（０）＝１／５×１００＝２０となり、ＳＤ（１）＝１００−２０＝８０となる。状態適合度算出部１０６はこれら２つの対話状態に対するユーザ入力の状態適合度を入力解釈部１０２に通知する。
【００７５】
続いて、ステップＳ２０７で入力解釈部１０２が入力解釈処理を行う。入力解釈部１０２は、通知された音声認識結果の１つの候補と状態適合度算出結果として通知された１つの対話状態とを1組とする複数の組合せ（入力候補）を生成し、各組み合わせに対してトータルスコアを算出する。
【００７６】
すなわち、音声認識結果として得られた入力内容の候補が「次」、「はい」の２種類であり、当該入力内容を作用させる対話状態の候補が対話状態５０１、５０２の２種類であるとすると、入力解釈部１０２は、それらを組み合わせで、「対話状態５０１に「次」を作用させる」、「対話状態５０１に「はい」を作用させる」、「対話状態５０２に「次」を作用させる」、「対話状態５０２に「はい」を作用させる」の４種類の入力候補を生成する。
【００７７】
続いて、入力解釈部１０２は各入力候補についてトータルスコアを算出する。トータルスコア算出処理を図１０を参照して説明する。入力解釈部１０２はトータルスコアが最も高い入力候補を入力解釈結果として選択する。対話状態５０１と入力内容「次」との組合せ（入力候補）、対話状態５０２と入力内容「はい」との組合せ（入力候補）は、前述同様棄却され、トータルスコアの最も高い「対話状態５０２に「次」を作用させる」の候補が選択される。入力解釈部１０２は対話進行部１０３にこの入力解釈結果を通知し、ステップＳ２０１で対話進行部１０３は対話状態５０２に対応するシナリオノード３０１において、「次」が入力された場合の動作を行う。すなわち、リンク３０３に従って変数ｎ＝４、変数ｎａｍｅ＝○○と更新し、この更新内容に応じた応答をユーザに出力する。
【００７８】
以上のように、ユーザ入力「ＵＳＥＲ９０４」の解釈で誤りが生じたものの、ユーザが誤りを検知する早いタイミングの訂正入力「ＵＳＥＲ９０６」を検知すると、過去の対話状態における状態適合度が高まるため、過去の対話状態に対するユーザ入力のトータルスコアが高くなる。状態適合度を考慮することにより、今回のユーザ入力が過去の誤りを訂正する入力であることを検出することができる。
【００７９】
上記第１の実施形態は、現在の対話状態に対する状態適合度がある値を超えたからといって、過去の対話状態に作用させる音声認識結果の候補を棄却するものではない。例えばユーザが応答を聞いて、ゆっくり訂正のためのユーザ音声を入力する場合、過去の対話状態に対する状態適合度が「０」になる。しかし、過去の対話状態でのみ受理できる入力内容が音声認識結果の候補として通知された場合は、過去の対話状態と、該対話状態に作用させる該音声認識結果の候補とを選択することができるのである。
【００８０】
上記第１の実施形態では、ユーザが現在の対話状態への遷移を承認している度合いを示す状態適合度と、音声認識スコアとの組み合わせから、入力解釈部１０２において、ユーザ入力を総合的に解釈することが可能である。
【００８１】
以上のように第１の実施形態では、ユーザとの対話中に変遷する対話状態の履歴を記憶し、ユーザ発話の入力タイミング、すなわち、対話装置で応答の出力を開始した時刻からユーザ入力の入力時刻までの時間を基に、現在の対話状態及びその1つ前の対話状態のそれぞれに対する該ユーザ入力の状態適合度を算出し、該ユーザ入力に対する音声認識スコアと状態適合度とから算出されるトータルスコアが最大の（例えば、該ユーザ入力に対する音声認識スコアと状態適合度との和が最大の）音声認識結果の候補文字列と対話状態との組合せを選択することにより、該ユーザ入力を解釈する。そして、選択された対話状態に、選択された音声認識結果を作用させた場合に得られる応答を出力することにより、前回のユーザ入力に対する誤った解釈をその後のユーザ入力により容易にしかも正確に訂正するができる。
【００８２】
状態適合度は、入力されたユーザ音声が現在の対話状態に作用させるべきユーザ入力であるのか、過去の対話状態に作用させるべきユーザ入力であるのかを決定するための指標となる。上記第１の実施形態では、ユーザが、対話装置からの応答を聞いてからユーザ音声を入力するまでの時間を基に状態適合度を算出していた。より具体的には、状態適合度は、対話装置が応答の出力を開始してから終了するまでの予測時間（応答予定時間）と、対話装置が応答の出力を開始してから実際にユーザ入力が検出されるまでの時間（応答出力時間）との比率であった。しかし、状態適合度の算出方法は、この場合に限定されない。以下、他の状態適合度の算出方法について説明する。
【００８３】
音声出力の場合は応答開始時刻と応答終了予定時刻には幅が現れるが、画面に応答文を一括提示する場合には応答終了予定時刻は応答開始時刻とほぼ一致させる。段階的に文章を提示する場合は全ての文章を提示し終わる時刻を応答終了予定時刻として推定する。
【００８４】
現在の対話状態の状態適合度を算出する際の応答予定時間を算出する際、上述の例では単純に応答予定時間＝応答終了予定時刻−応答開始時刻としていたが（応答予定時間の第１の算出方法）、この場合に限らない。以下、応答予定時間の算出方法の他の例について説明する。なお、異なる複数の算出方法のうちの１つにより算出された応答予定時間のみを用いる場合に限らず、異なる複数の算出方法により算出された複数種類の応答予定時間を組み合わせて利用することができる。例えば、複数種類の応答予定時間のそれぞれを用いて、上述のように状態適合度を算出し、算出された全ての状態適合度を加算したり、現在の対話状態について最大の状態適合度を選択したりすることが考えられる。
【００８５】
（応答予定時間の第２の算出方法）応答予定時間＝応答終了予定時刻＋α−応答開始時刻 （αは正数）： ユーザは応答出力終了直後に全てを把握できない場合がある。状態適合度はユーザがその状態に遷移したことを認める度合いである。そこで、全応答を提示した瞬間に状態適合度が「１００」になるように算出するものではなく、ユーザが応答を受けて把握するためのマージンαを与える。αは一定数でも良いが、提示する情報量に応じて増減させることも考えられる。
【００８６】
（応答予定時間の第３の算出方法）応答予定時間＝与える情報量×β（βは正数）：対話装置が長い応答を出力する場合に、応答の出力を開始してからある程度の時間経過するまでにユーザ入力が検出されない場合には、ユーザは状態が遷移したことを認めていると考えられる。しかしながら、応答で与える情報量（属性数など）に対して応答予定時間が必要以上に長くなると、現在の状態に対する状態適合度が減少する可能性があるため、与える情報量に比例した値を応答予定時間として採用する。
【００８７】
（応答予定時間の第４の算出方法）応答予定時間＝応答の特定部分の時刻＋α（αは上記第２の算出方法と同様の正数）：ユーザ入力の解釈を誤った時に、対話装置は誤った応答を返す。ユーザは自分の入力が正しく受理されていることを確認できれば、現在の対話状態への遷移を認めるとも考えられる。即ち、応答の特定部分としてユーザの入力内容を確認する部分を採用する。
【００８８】
上記の他、状態適合度の算出方法として単純に応答出力時間と応答予定時間との線形的な比率を採用しているが、線形関数ではなく高次関数やその他の関数を用いても良い。但し、時間経過に応じて現在の対話状態の状態適合度が高まるように単調増加関数を採用する必要がある。
【００８９】
なお、上述の例では、対話進行部１０３では対話シナリオを状態遷移図で記述する対話進行方法を利用していたが、フレーム（フォーム）形式（”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) にあるようなスタックといった特殊な形式を利用しても良い。この場合の対話履歴記憶部１０４は、図１１に示すように、各場面での情報受け付け状態を対話状態として記憶したり、図１２に示すように、スタックの状況を対話状態として記憶したりする。その他の対話進行方法でも、各場面の対話進行状況を個別の対話状態として対話状態管理部１０４に蓄積すれば良い。
【００９０】
上述の例では、図２のステップＳ２０２において、対話進行部１０３が応答を出力する時に対話履歴記憶部１０４に対話状態を記憶するが、対話進行部１０３が対話状態を更新したことを検出した時に、対話履歴記憶部１０４に対話状態を記憶させても良い。
【００９１】
上述の例では、入力解釈部１０２では、トータルスコアを音声認識スコアと状態適合度とを加算して算出していたが、音声認識スコア及び状態適合度にそれぞれ定数をかけてから重み付けをしてから加算したり、或いは状態適合度の最大値が「１」になるように正規化した値を音声認識スコアに掛けたりしても良い。後者の場合、状態適合度の影響が大きく現れるので状態適合度を重視したトータルスコアが得られる。
【００９２】
上述の例では、音声認識部１０１は、音声認識結果の各候補にスコアを与えた結果を出力しているが、スコアを付与しなくとも良い。その場合は全候補が同点であるとみなせる。
【００９３】
上述の例では、対話進行部１０３が応答を出力する際に、該応答に対応する対話状態を対話履歴記憶部１０４に記憶しているが、入力解釈結果が１つ前の対話状態への入力を示唆するものである場合には、現在の対話状態を削除してから対話進行を行っても良い。その際、現在の対話状態に対する状態適合度の高さに応じて、現在の対話状態を消去するか否かを判定することも可能である。棄却された現在の対話状態を消去することで、その次の入力の際に棄却された対話状態に作用させる入力解釈を抑制することが可能となる。
【００９４】
（第２の実施形態）
第１の実施形態では、ユーザ音声の入力タイミングに関する情報を利用し、状態適合度を算出しているが、第２の実施形態では、上記ユーザ音声の入力タイミング以外の情報を利用して状態適合度を算出する場合について説明する。
【００９５】
第２の実施形態に係る対話装置の構成は、図１と同様であり、入力関連情報抽出部１０５及び状態適合度算出部１０６の処理動作（図２のステップＳ２０６の処理）が、第１の実施形態と異なる。また、対話履歴記憶部１０４に各対話状態を記憶する際、応答開始時刻及び応答終了予定時刻（図４の４０４）を付加する必要はない。
【００９６】
以下、第２の実施形態に係る入力関連情報抽出部１０５及び状態適合度算出部１０６について説明する。
【００９７】
入力関連情報抽出部１０５は、ユーザ入力のユーザ音声のパワー（例えば、ユーザ音声の振幅の大きさ）を抽出する。ユーザ音声のパワーとユーザの感情とは関連があり、パワーが大きければユーザは何らかの不快な感情があり、直前の入力の解釈が誤っていたことが想定される。
【００９８】
図２のステップＳ２０６では、状態適合度算出部１０６は、入力関連情報抽出部１０５から通知されるパワーに基づいて状態適合度を算出する。上述のようにパワーが大きければ、今回のユーザ入力は、その直前のユーザ入力に対し対話装置が解釈した結果を訂正するために入力された訂正入力である可能性が高いと云える。そこで、通知されたパワーＰがある閾値ＴＨｐより大きければ、現在の対話状態に対する状態適合度ＳＤ（０）は小さくなるように、状態適合度を算出する。現在の対話状態に対する状態適合度ＳＤ（０）は、次式（３）より算出する。
【００９９】
ＳＤ（０）
＝［パワーＰが閾値ＴＨｐ以下の場合］１００
＝［パワーＰが閾値ＴＨｐより大きい場合］（ＴＨｐ×２−Ｐ）／ＴＨｐ×１００
＝［ＳＤ（０）が「０」以下になる場合］０
…（３）
現在の対話状態より１つ前の対話状態に対する状態適合度ＳＤ（１）は次式（４）より算出する。
【０１００】
ＳＤ（１）＝１００−ＳＤ（０）                                    …（４）
以上のように、第２の実施形態ではユーザ入力に含まれるパワーといった、ユーザ発話入力時のユーザの感情を表す情報、あるいは、ユーザの感情を推定することのできる情報を用いて状態適合度を算出することにより、第１の実施形態と同様、ユーザが対話状態の遷移を許容したか否かを、入力解釈部１０２において状態適合度と音声認識スコアの組み合わせから、総合的に判断をすることが可能である。
【０１０１】
第２の実施形態は、現在の対話状態に対する状態適合度がある値を超えたからといって、過去の対話状態に作用させる音声認識結果の候補を棄却するものではない。過去の対話状態でのみ受理できる入力内容が音声認識結果の候補として通知された場合は、過去の対話状態と、該対話状態に作用させる該音声認識結果の候補とを選択することができる。
【０１０２】
第２の実施形態では、ユーザが現在の対話状態への遷移を（怒らずに）承認している度合いを示す状態適合度と、音声認識スコアとの組合せから、入力解釈部１０２において、ユーザ入力を総合的に解釈することが可能である。
【０１０３】
なお、上述の状態適合度の算出方法は、パワーを用いているが、状態適合度の算出方法はこれだけに限定されない。パワーと閾値とを比較する際、該パワーの対数をとった後に閾値と比較してもよい。その他、ユーザ音声の入力時のユーザの感情を推定する際に利用することができる情報として、韻律や話速が考えられる。韻律では抑揚が大きいユーザ音声、話速では話速が速いユーザ音声であれば感情が高ぶっていると考えられ、このような場合には、現在の対話状態に対する状態適合度が減少するように、状態適合度を定義する。
【０１０４】
（第３の実施形態）
第１及び第２の実施形態では、ユーザ入力に含まれる情報から状態適合度を算出していたが、第３の実施形態ではユーザ入力時の状況を利用して状態適合度を算出する対話装置について説明する。
【０１０５】
第３の実施形態に係る対話装置の構成例を図１３に示す。図１３において、図１と同一部分には同一符号を付し、異なる部分について説明する。すなわち、図１３の対話装置は、図１の入力関連情報抽出部１０５に代えて、入力状況抽出部１１１を含む。
【０１０６】
入力状況抽出部１１１について説明する。入力状況抽出部１１１はユーザ音声が入力した時の状況がユーザ入力に適している状況かを示す状況適合度を算出する。この状況適合度が低い状況でのユーザ入力は誤りが発生しやすいと考えられる。従って、状況適合度は「次のユーザ入力が訂正入力である可能性」を示す情報であるといえる。入力状況抽出部１１１は、算出した状況適合度を対話進行部１０３に出力する。
【０１０７】
次に、図１４に示すフローチャートを参照して、図１３の対話装置の処理動作について説明する。なお、図１４において、図２と同一部分には同一符号を付し、異なる部分について説明する。すなわち、図１４では、ステップＳ２１０が追加され、ステップＳ２０４で、ユーザ音声の入力を検知した場合、まず、ステップＳ２１０へ進み、入力状況抽出部１１１が状況適合度を算出する。その後、ステップＳ２０６へ進み、状態適合度を算出する。なお、ステップＳ２０６の状態適合度の算出方法と、対話履歴記憶部１０４に対話状態を記憶する際に付加する情報も第１実施形態とは異なる。
【０１０８】
ステップＳ２１０で、入力状況抽出部１１１により算出された状況適合度は、対話進行部１０３に通知され、対話進行部１０３は通知された状況適合度を一時記憶する。対話進行部１０３は、入力解釈処理（ステップＳ２０７）後の対話進行処理（ステップＳ２０１）により、対話状態の更新を決定した場合には（ステップＳ２０２）、更新後の新たな対話状態を現在の対話状態として対話履歴記憶部１０４に記憶する（ステップＳ２０５）。この時、対話進行部１０３は、一時記憶していた状況適合度を当該現在の対話状態に対応付けて対話履歴記憶部１０４に記憶する。
【０１０９】
図１５は、第３の実施形態に係る対話履歴記憶部１０４で記憶する対話状態の情報の一例を示したものである。対話履歴記憶部１０４には、当該対話状態対話進行状況を表す状態ＩＤ４０１、各対話状態の待ち受け情報４０２、変数の内容４０３の他、さらに、入力状況抽出部１１１が算出した状況適合度４０５を含む対話状態が記憶される。従って、対話履歴記憶部１０４には、図１６に示すように、状況適合後が付加された対話状態の履歴が記憶される。なお、図１６では、対話履歴記憶部１０４に記憶されている、ユーザとの対話中に通過した対話状態を、左端から時系列順に示し、右端の対話状態５１３が現在の対話状態である。
【０１１０】
次に、入力状況抽出部１１１の処理動作について説明する。ここでは、入力状況として、ユーザ音声が入力された時のノイズのパワーを使用する。ユーザ音声が入力された時のノイズのパワーが高ければ、その時のユーザ入力の音声認識結果に対する信頼性は低下する。従って、ユーザ音声が入力された時のパワーが高いほど、状況適合度が低くなるように、状況適合度を定義する。例えば、式（３）を用いて、状況適合度を算出することができる。この場合、式（３）のパワーＰを、ユーザ音声が入力された時に検知されたノイズのパワーに置き換えて、状況適合度ＳＤ（０）を算出する。
【０１１１】
次に、状態適合度算出部１０６の処理動作について説明する。対話履歴記憶部１０４には、図１６に示したような、状況適合度の付加された対話状態の履歴が記憶されている。状態適合度算出部１０６は、対話履歴記憶部１０４に記憶されている各対話状態の状況適合度をそのまま状態適合度として決定する。従って、現在の対話状態の状態適合度ＳＤ（０）は、現在の対話状態に付加されている状況適合度とする。例えば、対話履歴記憶部１０４に、図１６に示したような対話状態の履歴が記憶されている場合、ＳＤ（０）＝１０（対話状態５１３に付与されている状況適合度）、ＳＤ（１）＝１００（対話状態５１２に付与されている状況適合度）となる。
【０１１２】
以上説明したように、上記第３の実施形態によれば、ユーザ音声の音声認識結果に影響を与えるユーザ音声入力時点における状況を示す情報（例えば雑音の大きさを示すノイズのパワー）を基に、状況適合度を算出し、これを状態適合度として用いることにより、第１の実施形態と同様、ユーザ入力の内容及び該ユーザ入力を作用させる対話状態を、入力解釈部１０２において状態適合度と音声認識スコアの組み合わせから、容易に判定することが可能である。
【０１１３】
第３の実施形態は、現在の対話状態に対する状態適合度がある値を超えたからといって、過去の対話状態に作用させる音声認識結果の候補を棄却するものではない。過去の対話状態でのみ受理できる入力内容が音声認識結果の候補として通知された場合は、過去の対話状態と、該対話状態に作用させる該音声認識結果の候補とを選択することができる。
【０１１４】
なお、上述の状況適合度の算出方法は、ノイズパワーに基づくものとしたが、状況適合度の算出方法はこれだけに限定されない。パワーと閾値とを比較する際、該パワーの対数をとった後に閾と比較してもよい。また、ユーザ入力の正しさを表す尺度として音声認識スコアを状況適合度として利用することも考えられる。音声認識スコアを用いて、状況適合度を算出する場合には、音声認識スコアが低いほど、状況適合度が小さくなるように、状況適合度を定義する。
【０１１５】
（第４の実施形態）
第1乃至第３の実施形態では、現在の対話状態と、その1つ前の対話状態について、状態適合度を算出して、ユーザ入力を解釈していた。第４の実施形態では、現在の対話状態よりも２以上前の対話状態についても状態適合度を算出して、ユーザ入力を解釈する対話装置について説明する。
【０１１６】
第４の実施形態に係る対話装置の構成例は、図１と同様である。但し、状態適合度算出部１０６の処理動作（図２のステップＳ２０６の処理）と、対話履歴記憶部１０４が記憶する各対話状態に含まれる情報が第１の実施形態と異なる。
【０１１７】
図１７は、第４の実施形態に係る対話履歴記憶部１０４で記憶する対話状態の一例を示したものである。図１７の対話状態４００は、当該対話状態対話進行状況を表す状態ＩＤ４０１、各対話状態の待ち受け情報４０２、変数の内容４０３、及びに第１の実施形態と同様に状態適合度を算出するための情報４０４を含み、さらに、状態適合度算出部１０６で算出された、ユーザ入力と該対話状態４００との間の状態適合度４０６を含む。
【０１１８】
状態適合度４０６は、対話状態４００が、対話状態４００が現在の対話状態である時に算出された状態適合度ＳＤ（０）である。対話開始からｊ番目の対話状態であるとすると、ここでは、この状態適合度４０６を現状態適合度ＣＳＤ（ｊ）と表す。なお、ＣＳＤ（ｊ）を計算することなく対話履歴記憶部１０４にｊ＋１番目の対話状態を記憶させる場合は、ＣＳＤ（ｊ）に状態適合度の最大値（第１の実施形態の場合は「１００」）を記憶させる。このような状況はｊ番目の対話状態４００の応答が完了し、ｊ＋１番目の応答も続けて出力するような場合に生じる。
【０１１９】
図１８は、第４の実施形態に係る状態適合度算出部１０６の処理動作（図２のステップＳ２０６）について説明するためのフローチャートである。状態適合度算出部１０６は現状態適合度ＣＳＤ（ｊ）の履歴を用いて、各現状態適合度を補正した状態適合度群を算出する。
【０１２０】
状態適合度算出部１０６は、図２のステップＳ２０４において、ユーザ入力が検出された時に起動する。図２のステップＳ２０６において、状態適合度算出部１０６が、図１０に示すような状態適合度算出処理を実行し、その後、該処理が終了すると、図２のステップＳ２０７へ進み、入力解釈部１０２が入力解釈処理を実行する。対話履歴記憶部１０４には、対話開始時からｊ＝current）番目の対話状態が現在の対話状態として記憶されているものとする。
【０１２１】
状態適合度算出部１０６は、状態適合度算出前に初期化を行う（ステップＳ５０１）。初期化処理は、現在の対話状態について、第１の実施形態と同様に状態適合度ＳＤ（０）を算出する処理（すなわち、現状態適合度ＣＳＤ（current）を算出する処理）と、状態適合度算出用の変数を初期化する処理がある。状態適合度算出用の変数には、対話履歴記憶部１０４に記憶されている対話状態が、現在の対話状態からいくつ前の対話状態であるかを示すインデックス変数ｉと、状態適合度を配分する残差Ｒがある。初期化処理では、ｉ＝０、Ｒ＝状態適合度の予め定められた最大値（例えば、ここでは、「１００」）とする。なお、ｉ＝０に対応する対話状態は、現在の対話状態である。
【０１２２】
続いて、状態適合度算出部１０６は、ｊ＝current−ｉ番目の対話状態について、状態適合度ＳＤ（ｉ）を算出する（ステップＳ５０２）。ＳＤ（ｉ）は、次式（５）に示すように、ｊ＝current−ｉ番目の対話状態の現状態適合度ＣＳＤ（current−ｉ）に基づき、現在のＲの値を配分することにより算出する。配分後は、次式（６）に示すように、現在のＲから、ｊ＝current−ｉ番目の対話状態に配分されたＳＤ（ｉ）の値を減算して、Ｒの値を更新する。
【０１２３】
ＳＤ（ｉ）＝Ｒ×ＣＳＤ（current−ｉ）／状態適合度の予め定められた最大値  …（５）
Ｒ＝Ｒ−ＳＤ（ｉ）                                                …（６）
次に、ステップＳ５０３へ進み、状態適合度算出部１０６は、状態適合度を算出した対話状態の数が、予め定められた上限値に等しいか否かをチェックする。状態適合度を算出する対話状態の数を該上限値に制限するのは、入力解釈部１０２で考慮する対話状態と、音声認識結果の候補との組合せの数を抑制するためである。ステップＳ５０３において、状態適合度を算出する対話状態の数が該上限値に等しい場合には、状態適合度算出部１０６は処理を終了し、該対話状態の数が該上限値未満の場合には、ステップＳ５０４へ進む。
【０１２４】
ステップＳ５０４では、状態適合度算出部１０６は更新後のＲの値が十分小さい値となったか否か、例えば、充分小さいと判定するための閾値δを定め、Ｒの値が閾値δよりも小さい場合には、Ｒの値は充分小さいと決定する。ステップＳ５０４で、Ｒの値が充分小さいと判定された場合には、以後のＳＤ（ｉ）は無視できるほどの小さな値となってしまうため、状態適合度の算出を打ち切る（状態適合度算出部１０６は処理を終了する）。ステップＳ５０４において、Ｒの値が閾値δ以上の場合には、ステップＳ５０５へ進む。
【０１２５】
ステップＳ５０５では、次の対話状態について状態適合度を算出するために、ｉを１つインクリメントし、ステップＳ５０２へ進む。以降は、次に対話状態について、前述同様に処理を行う。
【０１２６】
以上説明したように、第４の実施形態に係る状態適合度算出部１０６では、現在の対話状態と、それ以前の複数の対話状態とのそれぞれの現状態適合度に基づいて、状態適合度の予め定められた最大値を配分することにより、各対話状態の状態適合度を算出する。このような計算方法によって、過去の対話状態とユーザ入力との対応付けを抑制するが、現状態適合度が低い（ユーザが遷移を許可していない）対話状態が続いている場合には、それより前の対話状態に対する状態適合度が高まるような状態適合度を得ることができる。
【０１２７】
ステップＳ５０１において、ＣＳＤ（current）を算出する方法の一例として、第１の実施形態と同様に、式（１）を用いてＳＤ（０）を計算すればよい。
【０１２８】
次に、図３のレストラン検索サービスの対話シナリオを例にとり、第４の実施形態に係る対話装置の処理動作について説明する。
【０１２９】
［対話例４］
図１９の対話例を用いて、対話装置の処理動作について説明する。この対話例では、ユーザが１件目のレストランを選択したものの、ユーザ入力「そこ」が「次」と２回連続して誤って解釈された場合の対話例である。
【０１３０】
まず、「ＳＹＳ１８０１」から「ＳＹＳ１８０５」までの対話により、対話状態の履歴を対話履歴記憶部１０４に記憶する処理動作（図２のステップＳ２０２、Ｓ２０５）について説明する。ここでは、ユーザ入力時の処理（図２のステップＳ２０６、Ｓ２０７）については省略する。
【０１３１】
対話装置とユーザとの対話が開始されてから、何回かのユーザ入力及び応答出力を経て、レストラン検索結果を提示する対話状態に達し、図２のステップＳ２０１で、対話進行部１０３が対話進行処理を行っているとする。
【０１３２】
すなわち、図３の対話シナリオにおけるシナリオノード３０１（変数n＝1、変数name＝○○）に現在のシナリオノードが移り、時刻２分４０秒に対話進行部１０３が応答「ＳＹＳ１８０１」を出力すると決定する。この時、ステップＳ２０２で対話状態の更新を決定し、対話進行部１０３は、図２０に示すように、その時の対話状態６０１を対話履歴記憶部１０４に記憶する。対話状態を記憶する際に対話進行部１０３は応答終了予定時刻を算出し、該応答終了予定時刻を応答開始時刻とともに対話状態５０３に付加して記憶する。なお、この段階では現状態適合度はまだ算出されていないため、対話状態６０１には含まれていない。その後、ステップＳ２０１へ戻り、応答を出力し、ユーザ入力の待ち状態となる。
【０１３３】
次に、時刻２分４５秒に、ユーザ入力「ＵＳＥＲ１８０２」を受けた。ユーザ入力を検知したのでステップＳ２０４からステップＳ２０６へ進み、状態適合度算出部１０６は、対話状態６０１について現状態適合度を算出する。この場合は応答終了予定時刻を過ぎてからユーザ入力が検知されたので、式（１）を用いて状態適合度ＳＤ（０）を計算すると、値は「１００」となる。これが現状態適合度として、対話履歴記憶部１０４に、対話状態６０１内に記憶される。さらに、各対話状態に対し状態適合度を算出する。次に、ステップＳ２０７へ進み該ユーザ入力を解釈する。
【０１３４】
「ＵＳＥＲ１８０２」を解釈した結果、ユーザ音声の誤認識の影響をうけて、入力解釈結果は「対話状態６０１に入力内容「次」を作用させる」となったとする。対話進行部１０３はこの入力解釈結果を受けて、第1の実施形態と同様にして、応答「ＳＹＳ１８０３」を出力すると決定する。この時、対話履歴記憶部１０４には、対話状態６０２を現在の対話状態として記憶する（図２のステップＳ２０２、ステップＳ２０５）。なお、新たに記憶された対話状態６０２の現状態適合度はまだ算出されていないため、対話状態６０２には含まれていない。その後、ステップＳ２０１へ戻り、応答「ＳＹＳ１８０３」を出力する。
【０１３５】
次に、時刻２分４７秒にユーザ入力「ＵＳＥＲ１８０４」を受けた。この時も上述と同様にして、ステップＳ２０６で、対話状態６０２の現状態適合度を算出して、対話履歴記憶部１０４に、対話状態６０２に対応付けて記憶するとともに、各対話状態に対し状態適合度を算出する。その後、ステップＳ２０７において、該ユーザ入力を解釈する。この場合、ユーザ入力「ＵＳＥＲ１８０４」は、全４秒の応答出力のち、応答を出力してから１秒経過した時点で検知されたので（このとき応答出力は中断された）、式（１）を用いてＳＤ（０）を計算すると、値は、「２５」となる。これが現状態適合度として、対話履歴記憶部１０４に、対話状態６０２内に記憶される。
【０１３６】
「ＵＳＥＲ１８０４」を解釈した結果、ユーザ音声の誤認識の影響をうけて、「対話状態６０２に「次」を作用させる」であったとする。対話進行部１０３はこの入力解釈結果を受けて、第1の実施形態と同様にして、応答「ＳＹＳ１８０５」を出力すると決定する。この時、対話履歴記憶部１０４には、対話状態６０３を現在の対話状態として記憶する（図２のステップＳ２０２、ステップＳ２０５）。なお、新たに記憶された対話状態６０３の現状態適合度はまだ算出されていないため、対話状態６０３には含まれていない。その後、ステップＳ２０１へ戻り、応答「ＳＹＳ１８０５」を出力する。
【０１３７】
次に、時刻２分４９秒にユーザ入力「ＵＳＥＲ１８０６」を受けた。「ＵＳＥＲ１８０６」は「ＵＳＥＲ１８０２」に対する解釈結果の誤りを訂正し、一件目の「○○」を選択することを目的とした訂正入力である。上述の処理により、「ＵＳＥＲ１８０６」が入力された時点での対話履歴記憶部１０４は図１９のようになっている。但し、対話状態６０３の現状態適合度はまだ記憶されていない。
【０１３８】
ここで、状態適合度算出部１０６での図１８に示した処理で用いるパラメータとして、状態適合度を算出する対話状態の数の上限値を「５」、残差Ｒに対する閾値δを「５」、状態適合度の予め定められた最大値を「１００」とする。
【０１３９】
時刻２分４９秒にユーザ入力「ＵＳＥＲ１８０６」を検出すると、ステップＳ２０６で、対話状態６０３の現状態適合度を算出して、対話履歴記憶部１０４に、対話状態６０３内に記憶するとともに、各対話状態に対し状態適合度を算出する。その後、ステップＳ２０７において、該ユーザ入力を解釈する。
【０１４０】
ユーザ入力があると、該ユーザ入力「ＵＳＥＲ１８０６」に対して音声認識部１０１が音声認識処理を行う。ここでは「ＵＳＥＲ１８０６」の音声認識結果として、曖昧性を含む［「そこ」（１０００点）、「次」（９９０点）］が得られたものとする。音声認識部１０１はこの音声認識結果を入力解釈部１０２に通知する。
【０１４１】
ステップＳ２０６では、状態適合度算出部１０６が状態適合度を算出する。入力関連情報抽出部１０５が、ユーザ入力時刻「２分４９秒」を抽出し、状態適合度算出部１０６に通知する。図１８を参照して、この時の状態適合度算出部１０６の処理動作について具体的に説明する。
【０１４２】
まず、状態適合度算出部１０６は初期化処理（ステップＳ５０１）を実行する。ステップＳ５０１では、現在の対話状態６０３の現状態適合度を算出するとともに、インデックス変数ｉを「０」に設定し、状態適合度の予め定められた最大値「１００」をＲに設定する。
【０１４３】
現状態適合度は、式（１）を用いて算出する。応答予定時間は４秒、応答出力時間は、２分４９秒−２分４８秒＝１秒であるから、式（１）より、ＳＤ（０）＝１／４×１００＝２５となる。この値が、対話状態６０３の現状態適合度として対話状態６０３内に記憶される。図２０は、このときの対話履歴記憶部１０４の状態を示したものである。ここで、説明の簡単のため、対話状態６０３の現状態適合度をＣＳＤ（６０３）と表す。
【０１４４】
次に、ステップＳ５０２へ進み、状態適合度算出部１０６は、式（５）（６）を用いて、対話状態６０３に対する状態適合度ＳＤ（０）を算出するとともに、Ｒを更新する。すなわち、
ＳＤ（０）＝Ｒ×ＣＳＤ（６０３）／１００＝１００×２５／１００＝２５
Ｒ＝Ｒ−ＳＤ（０）＝７５
を得る。状態適合度を算出した対話状態の数は全部で１個なので上限値「５」には達していない（ステップＳ５０３）。また、残差Ｒも「８０」であり、「５」より大きい（ステップＳ５０４）ので、ステップＳ５０５へ進み、ｉを１つインクリメントした後（ｉ＝１）、ステップＳ５０２へ進み、対話状態６０３の１つ前の対話状態６０２に対する状態適合度ＳＤ（１）の算出処理を行う。なお、対話状態６０２の現状態適合度をＣＳＤ（６０２）と表す。
【０１４５】
ＳＤ（１）＝Ｒ×ＣＳＤ（６０２）／１００＝７５×２５／１００＝１９（小数点以下四捨五入）
Ｒ＝Ｒ−ＳＤ（１）＝７５−１９＝５６
を得る。状態適合度を算出した対話状態の数は全部で２個なので上限値「５」には達していない（ステップＳ５０３）。また、残差Ｒも「６４」であり、「５」より大きい（ステップＳ５０４）ので、ステップＳ５０５へ進み、ｉを１つインクリメントした後（ｉ＝２）、ステップＳ５０２へ進み、対話状態６０２の１つ前の対話状態６０１に対する状態適合度ＳＤ（２）の算出処理を行う。なお、対話状態６０１の現状態適合度をＣＳＤ（６０１）と表す。
【０１４６】
ＳＤ（２）＝Ｒ×ＣＳＤ（６０１）／１００＝５６×１００／１００＝５６
Ｒ＝Ｒ−ＳＤ（２）＝０
を得る。状態適合度を算出した対話状態の数は全部で３個なので上限値「５」には達していない（ステップＳ５０３）。しかし、残差Ｒは「０」であり、「５」より小さい（ステップＳ５０４）ので、ここで処理を終了する。状態適合度算出部１０６は、これら３つの対話状態に対する状態適合度（ＳＤ（０）〜ＳＤ（２））を入力解釈部１０２に通知する。
【０１４７】
続いて、ステップＳ２０７において、入力解釈部１０２が入力解釈処理を行う。入力解釈部１０２は、通知された音声認識結果の１つの候補と状態適合度算出結果として通知された１つの対話状態とを1組とする複数の組合せ（入力候補）を生成し、各組み合わせに対してトータルスコアを算出する。
【０１４８】
すなわち、音声認識結果として得られた入力内容の候補が「そこ」、「次」の２種類であり、当該入力内容を作用させる対話状態の候補が対話状態６０１、６０２、６０３の３種類であるとすると、入力解釈部１０２は、それらを組み合わせて、「対話状態６０３に「そこ」を作用させる」、「対話状態６０３に「次」を作用させる」、「対話状態６０２に「そこ」を作用させる」、「対話状態６０２に「次」を作用させる」、「話状態６０１に「そこ」を作用させる」、「対話状態６０１に「次」を作用させる」の６種類の入力候補を生成する。
【０１４９】
続いて、入力解釈部１０２は各入力候補についてトータルスコアを算出する。トータルスコア算出処理について図２１を参照して説明する。入力解釈部１０２はトータルスコアが最も高い入力候補を入力解釈結果として選択する。今回の例では、「対話状態６０１に「そこ」を作用させる」という入力候補が選択される。
【０１５０】
なお、入力解釈部１０２は、トータルスコアを算出する前に、上記６種類の入力候補のうち、例えば、「対話状態６０１に「次」を作用させる」や、「対話状態６０２に「次」を作用させる」のように、過去の対話履歴に存在する入力候補を削除してもよい。過去の対話履歴に存在する入力候補は、同じことを繰り返すことになるからである。
【０１５１】
入力解釈部１０２は対話進行部１０３にこの選択された入力解釈結果を通知する。すると、ステップＳ２０１へ進み、対話進行部１０３は場所「○○」を目的地に設定する旨の応答を返す。
【０１５２】
この対話例では、誤認識が連発し、ユーザが所望する対話状態は、現在の対話状態よりも２つ前の対話状態にある。しかしながら、ユーザは誤りを検出したタイミングで訂正入力を２回入力しているため、誤認識によって遷移した対話状態６０２、６０３の現状態適合度が減少している。状態適合度算出部１０６は、各対話状態の現状態適合度に応じて、各対話状態の状態適合度を算出するため、誤認識によって遷移した対話状態の状態適合度が減少し、結果的にはユーザが所望する対話進行に修正することが可能となっている。
【０１５３】
以上説明したように、上記第４の実施形態では、ユーザとの対話中に変遷する対話状態と併せて現状態適合度を記憶し、ユーザ音声の入力時に、各対話状態に対し、該対話状態の現状態適合度の履歴に応じた状態適合度を算出し、音声認識スコアと状態適合度とを基に、該ユーザ音声の内容及び該ユーザ音声の内容を採用させる対話状態を選択することにより、過去まで遡って、ユーザ入力を作用させる対話状態の選択が行えるので、過去のユーザ入力に対する誤った解釈を、その後のユーザ入力により容易にしかも正確に訂正することができる。
【０１５４】
なお、上述の例では、現状態適合度の算出方法はユーザ入力のタイミングに基づくものとしたが、現状態適合度の算出方法はこれだけに限定されない。第２、第３の実施形態で説明したような、ユーザ音声のパワーやノイズのパワーといった尺度を現状態適合度として利用することも考えられる。なお、第３の実施形態のようにユーザ入力前に適合度を算出する場合は、この適合度を現状態適合度として記憶させることが可能である。
【０１５５】
また、上述の例では、各対話状態の現状態適合度に基づき、状態適合度の予め定められた最大値を配分することにより、各対話状態の状態適合度を算出していたが、この場合に限らず、各対話状態の現状態適合度をそのまま該対話状態の状態適合度としても良い。
【０１５６】
（第５の実施形態）
第１乃至第４の実施形態では、状態適合度と音声認識スコアとを用いてユーザ入力を解釈していたが、第５の実施形態では、対話状態に対するユーザ入力の内容の意味的な適合度（意味適合度）をさらに用いてユーザ入力を解釈する対話装置について説明する。
【０１５７】
第５の実施形態に係る対話装置の構成例は、図１と同様である。但し、入力解釈部１０２の処理動作（図２のステップＳ２０７）が第１の実施形態と異なる。また、対話進行部１０３が参照する対話シナリオ、及び対話履歴記憶部１０４に記憶される各対話状態に含まれている情報も第１の実施形態と異なる。
【０１５８】
図２２は、第５の実施形態における対話進行部１０３が参照する対話シナリオの一例を示したものである。図２２の対話シナリオの各リンクには、ユーザ入力の内容の意味に対する意味適合度７１１が付与されている点が、図３の対話シナリオと異なる。
【０１５９】
ユーザ入力の内容の意味は、言語表現と意味タグの組み合わせで表されているものとする。例えば、音声認識部１０１は、入力されたユーザ音声に対し音声認識した結果得られる各候補（文字列）について、該候補がもつ意味を示す意味タグを付加して、該候補の認識スコアとともに、入力解釈部１０２へ出力する。１つの候補が複数の意味をもつ場合には、該候補と該複数の意味のうちの１つを示す意味タグとを１組とする複数の候補のそれぞれを、該候補の認識スコアとともに、入力解釈部１０２へ出力する。
【０１６０】
なお、図２２において“＠ジャンル”は、「ユーザ入力の内容に与えられている意味タグが“ジャンル”」を意味し、“φ”は「ユーザ入力がなくとも推移する」ことを意味する。
【０１６１】
意味適合度７１１は、ある対話進行状況において必要とされる入力内容の度合いを示している。例えば、図２２の対話シナリオは検索結果を提示するシナリオノード７０１からでも検索条件（ここでは、「ジャンル」）の変更を指示することができるリンク７０２が流出している。しかしながら、シナリオノード７０１の本来の目的は、ユーザ入力「次」「前」を受けて、シナリオノードを順に辿ることであるので、検索条件の変更を必要とする度合いは高くはない。従って、ユーザ入力「次」「前」のリンクの意味適合度が「１００」であることに対して、リンク７０２の意味適合度は「６０」となっている。
【０１６２】
第５の実施形態の対話進行部１０３における対話進行処理は第1の実施形態と同様であるが、対話履歴記憶部１０４に記憶される対話状態の内容が異なる。
【０１６３】
図２３は、対話履歴記憶部１０４に記憶される対話状態の一例を示したものである。図２３の対話状態７５０は、当該対話状態を識別するための状態ＩＤ７５１、各対話状態の待ち受け情報７５２、変数の内容７５３、及び状態適合度を算出するための情報７５４を含む。図４と異なる点は、待ち受け情報７５２は、各ユーザ入力の内容（文字列）の意味に対応する意味適合度を含む点である。
【０１６４】
図２のステップＳ２０５で、対話状態を対話履歴記憶部１０４に記憶する際には、現在のシナリオノードから流出するリンクからユーザ入力の内容と意味適合度の組を取得し、それを待ち受け情報として対話状態に記憶させる。
【０１６５】
次に、入力解釈部１０２について説明する。入力解釈部１０２は、複数の入力候補を作成して、各入力候補についてトータルスコアを算出し、トータルスコアに基づいて該複数の入力候補のうちの１つを選択する動作は第1の実施形態と同様である。但し、第５の実施形態における入力解釈部１０２では、トータルスコアを算出する際に、音声認識スコア、状態適合度と共に、さらに意味適合度も利用する。第５の実施形態のトータルスコアは、これら３つの尺度を加算したものとする。
【０１６６】
次に、施設検索サービスの対話シナリオを例にとり、対話装置の処理動作について説明する。なお、ここでは、施設検索サービスの対話における一部分である検索ジャンル指定に関する対話シナリオ（図２２）に基づき対話を行う場合を例にとり説明する。
【０１６７】
［対話例５］
図２４は、図２２の対話シナリオに基づく対話例であり、施設検索サービスにユーザが検索ジャンルとして「レストラン」を指定する場合の対話例である。「ＳＹＳ２３０１」から「ＳＹＳ２３０４」までの説明は省略し、ユーザ入力「ＵＳＥＲ２３０５」の入力解釈処理(図２のステップＳ２０６、ステップＳ２０７)について説明する。
【０１６８】
第1の実施形態と同様、対話履歴記憶部１０４には、図２５に示すように、対話進行部１０３で応答「ＳＹＳ２３０１」を出力する際には対話状態８０３が、応答「ＳＹＳ２３０３」を出力する際には対話状態８０２が、応答「ＳＹＳ２３０４」を出力する際には対話状態８０１が順に記憶される。従って、ユーザ入力「ＵＳＥＲ２３０５」が入力される時点では、対話履歴記憶部１０４は図２５に示したような状態となっている。
【０１６９】
次に、ユーザ入力「ＵＳＥＲ２３０５」に対する入力解釈部１０２、状態適合度算出部１０６の処理動作について説明する。「ＵＳＥＲ２３０５」は、レストラン「○○」に駐車場があるかどうかを問い合わせる旨のユーザ入力である。
【０１７０】
時刻２分５３秒５０に、ユーザ入力「ＵＳＥＲ２３０５」が入力された。このユーザ入力を検出すると、ステップＳ２０４からステップＳ２０６へ進む。
【０１７１】
ユーザ入力があると、該ユーザ入力「ＵＳＥＲ２３０５」に対して音声認識部１０１が音声認識処理を行う。ここでは「ＵＳＥＲ２３０５」の音声認識結果として、［「駐車場」（１０００点）］が得られたものとする。ここで「駐車場」は、「ジャンル」と、「駐車場有無の問い合わせ」の２種類の意味をもつとすると、ユーザ入力の内容の候補は、音声認識スコアが同点の２つの候補［「駐車場＠ジャンル」（１０００点）、「駐車場＠問い合わせ」（１０００点）］となる。
【０１７２】
ステップＳ２０６では、状態適合度算出部１０６が状態適合度を算出する。入力関連情報抽出部１０５が、ユーザ入力時刻「２分５３秒５０」を抽出し、状態適合度算出部１０６に通知する。状態適合度算出部１０６は式（１）を用いて現在の対話状態８０１に対する状態適合度ＳＤ（０）を算出するとともに、式（２）を用いて、その１つ前の対話状態８０２に対する状態適合度ＳＤ（１）を算出する。応答予定時間は５秒、応答出力時間は２分５３秒５０−２分４９秒＝４．５秒であるから、ＳＤ（０）＝４．５／５×１００＝９０となり、ＳＤ（１）＝１００−９０＝１０となる。状態適合度算出部１０６は、これら２対話状態に対する状態適合度を入力解釈部１０２に通知する。
【０１７３】
続いて、図２のステップＳ２０７において、入力解釈部１０２が入力解釈処理を行う。入力解釈部１０２は、通知された音声認識結果の１つの候補と状態適合度算出結果として通知された１つの対話状態とを1組とする複数の組合せ（入力候補）を生成し、各組み合わせに対してトータルスコアを算出する。
【０１７４】
すなわち、音声認識結果として得られた入力内容の候補が「駐車場＠ジャンル」、「駐車場＠問い合わせ」の２種類であり、当該入力内容を作用させる対話状態の候補が対話状態８０１、８０２の２種類であるので、入力解釈部１０２は、それらを組み合わせて、「対話状態８０１に「駐車場＠ジャンル」を作用させる」、「対話状態８０１に「駐車場＠問い合わせ」を作用させる」、「対話状態８０２に「駐車場＠ジャンル」を作用させる」、「対話状態８０２に「駐車場＠問い合わせ」を作用させる」の４種類の入力候補を生成する。
【０１７５】
続いて、入力解釈部１０２は、各入力候補についてトータルスコアを算出する。トータルスコア算出処理を図２６を参照して説明する。入力解釈部１０２は、対話履歴記憶部１０４に記憶されている各対話状態の待ち受け情報に、意味タグと該意味タグに対応する意味適合度が含まれているので、入力候補中の対話状態から、該対話状態中の入力内容の候補の意味タグに対応付けられている意味適合度を取り出す。そして、各入力候補について、状態適合度と認識スコアと、さらに意味適合度とを加算して、トータルスコアを算出する。
【０１７６】
入力解釈部１０２は、トータルスコアが最も高い入力候補を入力解釈結果として選択する。今回の例では、入力候補「対話状態８０１に「駐車場＠問い合わせ」を作用させる」が入力解釈結果として選択される。入力解釈部１０２は対話進行部１０３にこの入力解釈結果を通知する。図２のステップＳ２０１において、対話進行部１０３は、場所「○○」の駐車場有無の確認結果をユーザに返答する。
【０１７７】
以上説明したように、同じ認識結果「駐車場」から複数の入力候補が導出されたが、検索結果の一件目の情報を提示する対話状態８０１では、駐車場の有無を問い合わせる意味をもつ入力内容に対する意味適合度が高くなり、「駐車場＠問い合わせ」が選択された。一つ前の対話状態８０２では「駐車場＠ジャンル」の意味適合度が高いが、ユーザ音声「ＵＳＥＲ２３０５」は、検索結果を提示する応答を全て出力し終わってから入力されている。従って、１件目の情報を提示する対話状態８０１の状態適合度が高まり、その結果、状態適合度と意味適合度の和から「駐車場＠問い合わせ」を選択することが可能となっている。
【０１７８】
［対話例６］
次に、図２７の対話例を参照して、入力解釈部１０２、状態適合度算出部１０６の処理動作について説明する。図２７の対話例では、「ＵＳＥＲ２６０２」のユーザ入力「駐車場」が「レストラン」と誤認識されてしまい、ユーザに応答「ＳＹＳ２６０３」、及び応答「ＳＹＳ２６０４」（応答分全体は「レストラン1件目は○○です」）を出力した場合を示している。従って、「ＳＹＳ２６０４」を出力するまでの動作は図２４の対話例の場合と同様であり、この時点の対話履歴記憶部１０４は、図２５に示すような状態となっている。
【０１７９】
ユーザは、ユーザ入力「ＵＳＥＲ２６０２」の応答として「駐車場1件目は…」といった内容の応答を期待していたが、実際に出力された応答「ＳＹＳ２６０４」は「レストラン1件目は…」という内容であった。図２７の対話例では、「レストラ」まで応答出力されたときに、ユーザが誤りに気づき、その時の時刻２分５０秒で再度「駐車場」というユーザ音声「ＵＳＥＲ２６０５」を入力した場合を示している。
【０１８０】
時刻２分５０秒に、ユーザ入力「ＵＳＥＲ２６０５」を検出すると、図２におけるステップＳ２０４からステップＳ２０６へ進む。
【０１８１】
ユーザ入力があると、該ユーザ入力「ＵＳＥＲ２６０５」に対して音声認識部１０１が音声認識処理を行う。ここでは「ＵＳＥＲ２６０５」の音声認識結果として図２４の「ＵＳＥＲ２３０５」と同様に、音声認識結果として［「駐車場」（１０００点）］が得られ、入力内容の候補として［「駐車場＠ジャンル」（１０００点）、「駐車場＠問い合わせ」（１０００点）］が入力解釈部１０２に通知されたとする。
【０１８２】
ステップＳ２０６では、状態適合度算出部１０６が状態適合度を算出する。入力関連情報抽出部１０５がユーザ入力時刻「２分５０秒」を抽出し、状態適合度算出部１０６に通知する。状態適合度算出部１０６は式（１）を用いて、現在の対話状態８０１に対する状態適合度ＳＤ（０）を算出するとともに、式（２）を用いて、その１つ前の対話状態８０２に対する状態適合度ＳＤ（１）を算出する。応答予定時間は５秒、応答出力時間は２分５０秒−２分４９秒＝１秒であるから、ＳＤ（０）＝１／５×１００＝２０となり、ＳＤ（１）＝１００−２０＝８０となる。状態適合度算出部１０６は、これら２対話状態に対する状態適合度を入力解釈部１０２に通知する。
【０１８３】
続いて、図２のステップＳ２０７において、入力解釈部１０２が入力解釈処理を行う。入力解釈部１０２は、通知された音声認識結果の１つの候補と状態適合度算出結果として通知された１つの対話状態とを1組とする複数の組合せ（入力候補）を生成し、各組み合わせに対してトータルスコアを算出する。
【０１８４】
すなわち、音声認識結果として得られた入力内容の候補が「駐車場＠ジャンル」、「駐車場＠問い合わせ」の２種類であり、該入力内容を作用させる対話状態の候補が対話状態８０１、８０２の２種類であるので、入力解釈部１０２は、それらを組み合わせて、「対話状態８０１に「駐車場＠ジャンル」を作用させる」、「対話状態８０１に「駐車場＠問い合わせ」を作用させる」、「対話状態８０２に「駐車場＠ジャンル」を作用させる」、「対話状態８０２に「駐車場＠問い合わせ」を作用させる」の４種類の入力候補を生成する。
【０１８５】
続いて、入力解釈部１０２は、各入力候補についてトータルスコアを算出する。トータルスコア算出処理を図２８を参照して説明する。入力解釈部１０２は、対話履歴記憶部１０４に記憶されている各対話状態の待ち受け情報に、意味タグと該意味タグに対応する意味適合度が含まれているので、入力候補中の対話状態から、該対話状態中の入力内容の候補の意味タグに対応付けられている意味適合度を取り出す。そして、各入力候補について、状態適合度と認識スコアと、さらに意味適合度とを加算して、トータルスコアを算出する。
【０１８６】
入力解釈部１０２は、トータルスコアが最も高い入力候補を入力解釈結果として選択する。今回の例では、入力候補「対話状態８０２に「駐車場＠ジャンル」を作用させる」が入力解釈結果として選択される。入力解釈部１０２は対話進行部１０３にこの入力解釈結果を通知する。図２のステップＳ２０１において、対話進行部１０３は、現在のシナリオノードを図２２のノード７０１から、対話状態８０２に対応するノード７０３に戻し、該対話状態８０２において、入力解釈結果中の入力内容「駐車場＠ジャンル」を受けた場合の動作を行い（ここでは、駐車場の検索）、駐車場の検索結果を出力する応答をユーザに返答する。
【０１８７】
以上説明したように、同じ認識結果「駐車場」から複数の入力候補が導出されたが、検索結果を提示する対話状態８０１で出力される応答に対して、ユーザが誤りに気づいた時点で訂正入力を行ったため、１つ前の対話状態８０２の状態適合度が高まり、しかも、対話状態８０２において、入力内容「駐車場＠ジャンル」は、意味適合度の高い意味タグをもつから、検索条件を変更するような上記入力候補が選択され、検索条件の変更をスムーズに行うことが可能となっている。
【０１８８】
上記第５の実施形態では、ユーザとの対話中に変遷する対話状態の履歴を記憶し、ユーザ音声の入力時に、ユーザ入力と記憶された各対話状態との間の状態適合度を算出するとともに、各対話状態におけるユーザ入力の内容の意味に対する意味適合度を取得し、音声認識スコア、状態適合度及び意味適合度を基に、該ユーザ入力の内容及び該ユーザ入力を作用させる対話状態を選択することにより、過去のユーザ入力に対する誤った解釈を、その後のユーザ入力により容易にしかも正確に訂正することができる。
【０１８９】
なお、上述の例では、状態適合度の算出方法はユーザ入力のタイミングに基づくものとしたが、状態適合度の算出方法はこれだけに限定されない。第２、第３の実施形態のような、入力音声のパワーやノイズのパワーといった尺度を状態適合度として利用することも考えられる。
【０１９０】
上述の例では、対話進行部１０３の対話進行方法は状態遷移図形式で記述した対話シナリオを参照するものであったが、対話進行部１０３の対話進行方法はこれだけに限定されない。意味適合度を指定できる対話進行方法であれば任意のものが適用可能である。例えば、”RavenClaw: Dialog Management Using Hierarchical Task Decomposition and an Expectation Agenda” (D. Bohus, et al., Eurospeech2003)では対話状態をユーザ入力の内容を受理できるスタック要素のスタックで表し、ユーザ入力を受理できるスタック要素はスタックのトップから優先的に探索している。このような方式ではスタックのトップにあるスタック要素から順に意味適合度が高いとみなすことが可能であり、図２２のように予め意味適合度を指定しなくとも動的に意味適合度を算出することが可能である。
【０１９１】
なお、第１〜第５の実施形態において、入力解釈部１０２が、音声認識結果の候補文字列と対話状態とを1組とする複数の組合せ（入力候補）を生成した際、該複数の入力候補のなかに、過去の対話履歴と同じ対話状態と音声認識結果の候補を含む場合がある。このような場合には、まず、該複数の入力候補のうち、過去の対話履歴と同じ対話状態と音声認識結果の候補を含む入力候補を削除し、残りの入力候補のなかから入力解釈結果を求める。例えば、図１９に示した対話例、及び図２０に示した対話履歴の場合、図２１に示した６種類入力候補のうち、「対話状態６０１に「次」を作用させる」や、「対話状態６０２に「次」を作用させる」は、過去の対話履歴に存在する入力候補である。これら２つの入力候補は、過去の対話履歴と同じことを繰り返すことになるから、これら２つの入力候補を削除した後に、残りの入力候補についてトータルスコアの算出を行い、入力解釈結果を求める。
【０１９２】
また、入力解釈部１０２は、状態適合度算出部１０６から通知された各対話状態の状態適合度と、予め定められた閾値とを比較し、状態適合度が該閾値以下の対話状態は候補から削除してもよい。その後、入力解釈部１０２は、残りの対話状態と音声認識結果の文字列とから入力候補を生成し、上述同様にして入力解釈結果を求める。この場合、生成された複数の入力候補のうち、上記のように、過去の対話履歴に存在する入力候補があれば、それを削除した後に、上記同様にして入力解釈結果を求めてもよい。
【０１９３】
このように、入力解釈部１０２において、対話状態や入力候補を絞り込むことにより、処理の高速化が図れる。
【０１９４】
さらに、上記第１〜第５の実施形態では、レストラン検索や施設検索の対話シナリオに基づき、対話装置がユーザと対話する場合を例にとり説明したが、上記各実施形態に係る対話装置は、このような検索に適用する場合に限らず、例えば、カーナビゲーションシステムやテレビやビデオなどの家電の設定や操作など、各種アプリケーションにも適用可能であることはいうまでもない。
【０１９５】
本発明の実施の形態に記載した本発明の手法、特に、音声認識部１０１、入力回略部１０２、対話進行部１０３、対話履歴記憶部１０４、入力関連情報抽出部１０５、状態適合度算出部１０６、入力状況抽出部１１１等の各機能は、プログラムをコンピュータに実行させることにより実現可能である。このプログラムは、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、半導体メモリなどの記録媒体に格納して頒布することもできる。
【０１９６】
また、本発明では、簡単のために入力内容を音声認識の候補文字列としていたが、音声認識結果に対して構文解析・意味解析等の処理を加えた結果としてもよい。
【０１９７】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１９８】
【図１】第1の実施形態に係る対話装置の構成例を示した図。
【図２】図１の対話装置の処理動作を説明するためのフローチャート。
【図３】対話シナリオの一例を示した図。
【図４】対話履歴記憶部に記憶される対話状態の情報の一例を示した図。
【図５】対話履歴記憶部に記憶される対話履歴の一例を示した図。
【図６】対話装置とユーザとの第１の対話例を示した図。
【図７】対話装置とユーザとの第２の対話例を示した図。
【図８】入力解釈部の処理動作を説明する図。
【図９】対話装置とユーザとの第３の対話例を示した図。
【図１０】入力解釈部の処理動作を説明する図。
【図１１】対話履歴記憶部に記憶される対話履歴の他の例を示した図。
【図１２】対話履歴記憶部に記憶される対話履歴のさらに他の例を示した図。
【図１３】第３の実施形態に係る対話装置の構成例を示した図。
【図１４】図１３の対話装置の処理動作を説明するためのフローチャート。
【図１５】第３の実施形態に係る対話履歴記憶部に記憶される対話状態の情報の一例を示した図。
【図１６】第３の実施形態に係る対話履歴記憶部に記憶される対話履歴の一例を示した図。
【図１７】第４の実施形態に係る対話履歴記憶部に記憶される対話状態の情報の一例を示した図。
【図１８】第4の実施形態に係る状態適合度算出部の処理動作を説明するためのフローチャート。
【図１９】対話装置とユーザとの第４の対話例を示した図。
【図２０】第４の実施形態に係る対話履歴記憶部に記憶される対話履歴の一例を示した図。
【図２１】第４の実施形態に係る入力解釈部の処理動作を説明する図。
【図２２】対話シナリオの他の例を示した図。
【図２３】第５の実施形態に係る対話履歴記憶部に記憶される対話状態の情報の一例を示した図。
【図２４】対話装置とユーザとの第５の対話例を示した図。
【図２５】第５の実施形態に係る対話履歴記憶部に記憶される対話履歴の一例を示した図。
【図２６】第５の実施形態に係る入力解釈部の処理動作を説明する図。
【図２７】対話装置とユーザとの第６の対話例を示した図。
【図２８】第５の実施形態に係る入力解釈部の処理動作を説明する図。
【符号の説明】
【０１９９】
１００…音声入力部、１０１…音声認識部、１０２…入力解釈部、１０３…対話進行部、１０４…対話履歴記憶部、１０５…入力関連情報抽出部、１０６…状態適合度算出部、１１１…入力状況抽出部
【図１】
2008203559.tif 000003
【図２】
2008203559.tif 000004
【図３】
2008203559.tif 000005
【図４】
2008203559.tif 000006
【図５】
2008203559.tif 000007
【図６】
2008203559.tif 000008
【図７】
2008203559.tif 000009
【図８】
2008203559.tif 000010
【図９】
2008203559.tif 000011
【図１０】
2008203559.tif 000012
【図１１】
2008203559.tif 000013
【図１２】
2008203559.tif 000014
【図１３】
2008203559.tif 000015
【図１４】
2008203559.tif 000016
【図１５】
2008203559.tif 000017
【図１６】
2008203559.tif 000018
【図１７】
2008203559.tif 000019
【図１８】
2008203559.tif 000020
【図１９】
2008203559.tif 000021
【図２０】
2008203559.tif 000022
【図２１】
2008203559.tif 000023
【図２２】
2008203559.tif 000024
【図２３】
2008203559.tif 000025
【図２４】
2008203559.tif 000026
【図２５】
2008203559.tif 000027
【図２６】
2008203559.tif 000028
【図２７】
2008203559.tif 000029
【図２８】
2008203559.tif 000030