(57)【要約】【課題】システムが過去に出力した音声案内に対する応答を適時にやり直すことができるようにすることで自然な対話を継続させることができる対話制御装置を提供すること。【解決手段】音声案内データと音声案内データの出力を開始させるためのユーザ発話を定める音声認識対象語とを有するノードから構成されるシナリオに沿ってユーザとの対話を制御する対話制御装置１００は、ユーザ発話をテキストデータとして認識する音声認識手段１０と、出力した音声案内データを有するノードを記録するノード記録手段１２と、ノード記録手段１２が記録したノードに関する音声認識対象語を取得する音声認識対象語取得手段１３と、音声認識手段１０が認識したテキストデータと音声認識対象語取得手段１３が取得した音声認識対象語とに基づいて次に出力させる音声案内データを決定する次出力決定手段１４と、を備える。【選択図】図１
2008170817.tif 000002
【特許請求の範囲】
【請求項１】
案内データと該案内データの出力を開始させるためのユーザ入力を定める認識対象語とを有するノードから構成されるシナリオに沿ってユーザとの対話を制御する対話制御装置であって、
ユーザ入力をテキストデータとして認識する認識手段と、
出力した案内データを有するノードを記録するノード記録手段と、
前記ノード記録手段が記録したノードに対応する認識対象語を取得する認識対象語取得手段と、
前記認識手段が認識したテキストデータと前記認識対象語取得手段が取得した認識対象語とに基づいて次に出力させる案内データを決定する次出力決定手段と、
を備えることを特徴とする対話制御装置。
【請求項２】
前記次出力決定手段は、前記認識手段が認識したテキストデータに前記認識対象語取得手段が取得した認識対象語が含まれる場合に、該認識対象語に対応するノードが有する案内データを次に出力させる案内データとして決定する、
ことを特徴とする請求項１に記載の対話制御装置。
【請求項３】
前記案内データの出力は、音声又はテキストによる出力であり、
前記ユーザ入力は、音声又はテキストによる入力である、
ことを特徴とする請求項１又は２に記載の対話制御装置。
【請求項４】
案内データと該案内データの出力を開始させるためのユーザ入力を定める認識対象語とを有するノードから構成されるシナリオに沿ってユーザとの対話を制御する対話制御方法であって、
ユーザ入力をテキストデータとして認識する認識ステップと、
出力した案内データを有するノードを記録するノード記録ステップと、
前記ノード記録ステップにおいて記録されたノードに対応する認識対象語を取得する認識対象語取得ステップと、
前記認識ステップにおいて認識されたテキストデータと前記認識対象語取得ステップにおいて取得された認識対象語とに基づいて次に出力させる案内データを決定する次出力決定ステップと、
を備えることを特徴とする対話制御方法。
【請求項５】
前記次出力決定ステップは、前記認識ステップにおいて認識されたテキストデータに前記認識対象語取得ステップにおいて取得された認識対象語が含まれる場合に、該認識対象語に対応するノードが有する案内データを次に出力させる案内データとして決定する、
ことを特徴とする請求項４に記載の対話制御方法。
【請求項６】
前記案内データの出力は、音声又はテキストによる出力であり、
前記ユーザ入力は、音声又はテキストによる入力である、
ことを特徴とする請求項４又は５に記載の対話制御方法。
【請求項７】
請求項４乃至６の何れか一項に記載の対話制御方法をコンピュータに実行させるための対話制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ入力に応じて所定のシナリオに沿った案内データを出力する対話制御装置に関し、特に、対話制御装置が過去に出力した案内データに対する応答を適時にやり直すことができるようにすることで自然な対話を継続させることができる対話制御装置、対話制御方法及び対話制御プログラムに関する。
【背景技術】
【０００２】
従来、ユーザが音声入力した言葉を認識し、認識した言葉に対応する音声案内データを音声出力させることでユーザとの対話を継続させる模擬会話システムが知られている（例えば、特許文献１参照。）。
【０００３】
この模擬会話システムは、模擬会話の会話履歴を記憶しておき、音声出力中の話題（階層構造の質問群で構成される。）の出力継続時間、又は、ユーザによる回答として所与の言葉が音声入力された回数等が所定の条件を満たす場合に、ユーザによる直近の回答（音声入力）の内容にかかわらず、直前に出力した音声案内データの話題とは異なる話題の音声案内データを出力して話題を転換する。
【０００４】
また、模擬会話システムは、話題転換後の新たな話題のうち既に出力した質問を再出力させず、未出力の質問を出力させるようにすることで、同じ質問を避け、かつ、話題転換により会話が単調となるのを防止しながら、より自然に会話を継続させるようにする。
【特許文献１】特開２００２−１６９８０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の模擬会話システムは、所定の条件を満たした場合に話題を転換してしまうため、ユーザが直前の話題で出力された質問に対する別の展開を希望する場合、例えば、質問で提示された選択肢のうち既に選択した選択肢とは別の選択肢を選択したい場合等であっても話題が転換されてしまうため、ユーザは所望とする選択肢を選択することができない。
【０００６】
また、話題転換後の新たな話題のうち既に出力した質問を再出力させないようにするので、過去の質問で提示された選択肢のうち既に選択した選択肢とは別の選択肢を選択したい場合であっても、ユーザは所望とする選択肢を選択することができない。
【０００７】
上述の点に鑑み、本発明は、システムが過去に出力した案内データに対する応答を適時にやり直すことができるようにすることで自然な対話を継続させることができる対話制御装置、対話制御方法及び対話制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述の目的を達成するために、第一の発明に係る対話制御装置は、案内データと該案内データの出力を開始させるためのユーザ入力を定める認識対象語とを有するノードから構成されるシナリオに沿ってユーザとの対話を制御する対話制御装置であって、ユーザ入力をテキストデータとして認識する認識手段と、出力した案内データを有するノードを記録するノード記録手段と、前記ノード記録手段が記録したノードに対応する認識対象語を取得する認識対象語取得手段と、前記認識手段が認識したテキストデータと前記認識対象語取得手段が取得した認識対象語とに基づいて次に出力させる案内データを決定する次出力決定手段と、を備えることを特徴とする。
【０００９】
また、第二の発明は、第一の発明に係る対話制御装置であって、前記次出力決定手段は、前記認識手段が認識したテキストデータに前記認識対象語取得手段が取得した認識対象語が含まれる場合に、該認識対象語に対応するノードが有する案内データを次に出力させる案内データとして決定することを特徴とする。
【００１０】
また、第三の発明は、第一又は第二の発明に係る対話制御装置であって、前記案内データの出力は、音声又はテキストによる出力であり、前記ユーザ入力は、音声又はテキストによる入力である、ことを特徴とする。
【００１１】
また、第四の発明に係る対話制御方法は、案内データと該案内データの出力を開始させるためのユーザ入力を定める認識対象語とを有するノードから構成されるシナリオに沿ってユーザとの対話を制御する対話制御方法であって、ユーザ入力をテキストデータとして認識する認識ステップと、出力した案内データを有するノードを記録するノード記録ステップと、前記ノード記録ステップにおいて記録されたノードに対応する認識対象語を取得する認識対象語取得ステップと、前記認識ステップにおいて認識されたテキストデータと前記認識対象語取得ステップにおいて取得された認識対象語とに基づいて次に出力させる案内データを決定する次出力決定ステップと、を備えることを特徴とする。
【００１２】
また、第五の発明は、第四の発明に係る対話制御方法であって、前記次出力決定ステップは、前記認識ステップにおいて認識されたテキストデータに前記認識対象語取得ステップにおいて取得された認識対象語が含まれる場合に、該認識対象語に対応するノードが有する案内データを次に出力させる案内データとして決定することを特徴とする。
【００１３】
また、第六の発明は、第四又は第五の発明に係る対話制御方法であって、前記案内データの出力は、音声又はテキストによる出力であり、前記ユーザ入力は、音声又はテキストによる入力であることを特徴とする。
【００１４】
また、第七の発明は、第四乃至第六の何れかの発明に係る対話制御方法をコンピュータに実行させるための対話制御プログラムである。
【発明の効果】
【００１５】
上述の手段により、本発明は、システムが過去に出力した案内データに対する応答を適時にやり直すことができるようにすることで自然な対話を継続させることができる対話制御装置、対話制御方法及び対話制御プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照しつつ、本発明を実施するための最良の形態の説明を行う。
【実施例】
【００１７】
（１）実施例の概要
本発明に係る対話制御装置は、シナリオに沿って音声案内を出力しながらユーザが必要とする情報を提供する装置であり、例えば、カーナビゲーションシステムにおけるグルメ紹介、ショッピング紹介、観光地紹介、オーディオ操作、機器操作等の各ドメインを行き来させたり、各ドメイン内における入力操作を制御したりするために利用される。
【００１８】
「シナリオ」とは、音声案内データと次の音声案内データに移行するための移行条件を定める音声認識対象語とから構成される情報の集合（以下、「ノード」という。）をツリー状に連結したデータ構造をいい、このデータ構造により音声案内の順序を定める。
【００１９】
「音声認識対象語」は、ユーザによる発話が期待される語として予め登録される語であり、キーワード又はキーフレーズ等であってもよい。対話制御装置は、所定の音声認識対象語がユーザによって発話されたことを認識すると、所定のノードへの移行条件が満たされたとしてその所定のノードが有する音声案内データを出力させる。
【００２０】
「移行条件」とは、所定のノードに移行するための条件をいい、例えば、所定の音声認識対象語がユーザ発話として認識されることの他、外部情報やユーザプロファイルに基づいて設定されてもよい。なお、対話制御装置が車輌に搭載される場合における「外部情報」には、ウィンドウの開閉状態、エンジンの始動・停止状態、燃料残量、ブレーキ使用状態、車速、アクセル開度、エアコン設定温度、車載ラジオ使用状態等の情報があり、対話制御装置が車輌に搭載される場合における「ユーザプロファイル」には、運転者の性別、家族構成、誕生日、趣味、長時間運転する場合の休憩取得間隔、車輌使用頻度（朝晩毎日、朝晩平日、週末、月一回、夕方毎日等）、好きな食べ物、好きな音楽等がある。
【００２１】
また、各シナリオは、例えば、高速道路走行中に出力されるシナリオ、登録された施設に接近した場合に出力されるシナリオといった特定の内容を有し、ルートノード（ツリー構造の最上位にあるノードをいう。）、ブランチノード（ツリー構造の分岐点にあるノードをいう。）、及び、リーフノード（ツリー構造の末端にあるノードをいう。）から構成される。
【００２２】
なお、移行条件が満たされた場合に（例えば、ユーザ発話の中に音声認識対象語が含まれる場合をいう。）、所定のノードにおける音声案内等の所定の処理を開始させることをノードの「発火」といい、ノードへの移行条件のことを「発火条件」という。
【００２３】
また、ノードの発火条件が満たされたか否かを判定し、発火条件が満たされた場合に音声案内等の所定の処理を開始させ、発火条件が満たされない場合にはその判定処理を周期的に繰り返し実行させる制御のことを「発火制御」という。
【００２４】
図２は、シナリオのツリー構造を示す図であり、シナリオＡがルートノードＮ１、ブランチノードＮ２、Ｎ３、リーフノードＮ４、Ｎ５、Ｎ６、Ｎ７を有することを示す。
【００２５】
図３は、ノードの構成例を示す図であり、各ノードは、音声案内データ部５０及び音声認識対象語部５１を有する。また、図４は、音声認識対象語部５１の構成例を示す図であり、音声認識対象語部５１は、各音声認識対象語と移行先のノードとの間の対応関係を保持する。
【００２６】
例えば、ノードＮ３の音声案内データ部５０に記憶された音声案内データ「観光案内しようか。名物、名産品、見どころの情報があるけどどれがいい？」に対する音声認識対象語には、「名物」、「名産品」、「見どころ」、「聞きたくない」等が登録されており、対話制御装置は、ユーザの発話中に「名物」が含まれることを認識するとノードＮ５への移行条件が満たされたとしてノードＮ５を発火させる。
【００２７】
また、対話制御装置は、過去に発火させたノードに関する情報を対話履歴として記録しておき、ユーザの発話を認識すると、対話履歴に記録しておいたノードのそれぞれが有する音声認識対象語をその記録の新しい順に取得して、過去に発火させたノードが有する音声認識対象語（直近のノードが有する音声認識対象語を「現音声認識対象語」とし、現音声認識対象語以外の過去に発火させたノードが有する音声認識対象語を「既出音声認識対象語」として区別する。）がユーザの発話の中に含まれるか否かを判定する。
【００２８】
ユーザの発話の中に現音声認識対象語が含まれる場合、対話制御装置は、その現音声認識対象語に対応するノードを発火させ音声案内を出力させるが、ユーザの発話の中に現音声認識対象語が含まれない場合、対話制御装置は、既出音声認識対象語がユーザの発話の中に含まれるか否かを判定し、ユーザの発話の中に既出音声認識対象語が含まれる場合、その既出音声認識対象語に対応するノードを発火させる。
【００２９】
なお、対話制御装置は、その既出音声認識対象語に対応するノードを所定時間内に既に発火させていた場合には、そのノードの発火を禁止するようにしてもよい。
【００３０】
これにより、対話制御装置は、「さっきの○○ってどういうの？」、「やっぱり○○にする」といったユーザ発話により、ある時点における対話制御装置による質問において選択されなかった選択肢への移行をユーザが希望する場合にも柔軟に対応することができ、自然な対話を継続させることができる。
【００３１】
（２）実施例の詳細
図１は、本発明に係る対話制御装置の構成例を示す図であり、対話制御装置１００は、制御部１、音声取得部２、記憶部３及び音声出力部４から構成され、所定のシナリオに沿って記憶部３に記憶された音声案内データを読み出して音声出力部４からその音声案内データを出力する。
【００３２】
制御部１は、ＣＰＵ（Central  Processing  Unit）、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）等を備えたコンピュータであり、音声認識手段１０、データ提供手段１１、ノード記録手段１２、音声認識対象語取得手段１３及び次出力決定手段１４に対応するプログラムをＲＯＭに記憶し、それらプログラムをＲＡＭ上に展開して対応する処理をＣＰＵに実行させる。
【００３３】
音声取得部２は、ユーザが発する音声を取得するための装置であり、例えば、対話制御装置１００が車輌に搭載された場合、車輌を運転するドライバの音声を確実に認識できるよう指向性を備えたマイクが用いられる。
【００３４】
また、音声取得部２は、入力音検知機能を備え、定常雑音以外の音をユーザの発話による音声として取得してもよく、音量や音の長さに基づいて取得する音声を取捨選択してもよい。また、音声取得部２は、発話検出機能を備え、入力される音声のうち人の発話部分のみを検出して取得するようにしてもよい。なお、音声取得部２は、取得したユーザの音声を制御部１に出力する。
【００３５】
記憶部３は、対話制御装置１００が必要とする各種情報を記憶するための装置であり、例えば、図２乃至図４で示したデータ構造を有する複数のシナリオを体系的に構成したシナリオデータベース３０や後述の対話履歴データベース３１を格納するハードディスクである。
【００３６】
音声出力部４は、音声案内データを音声出力するための装置であり、例えば、制御部１から出力される音声案内データを音声出力する車載スピーカである。
【００３７】
次に、制御部１が有する各種手段について詳細に説明する。
【００３８】
音声認識手段１０は、ユーザ発話をテキストデータとして認識するための手段であり、例えば、音声取得部２を介して取得したユーザ発話をテキストデータに変換する。
【００３９】
また、音声認識手段１０は、ユーザ発話をテキストデータとして認識するばかりでなく、認識結果の信頼度、ユーザ発話の長さ（語数又は時間）、ユーザ発話の発話速度若しくは発話速度変化、又は、ユーザ発話の発話音量等の特徴を検出し、それら特徴をテキストデータに関連付けて記憶するようにしてもよい。ユーザが発話に込めた意思をより正確に認識するためである。
【００４０】
データ提供手段１１は、シナリオに沿って音声案内データを提供するための手段であり、例えば、発火条件を満たしたノードの音声案内データを音声出力部４から出力させる。
【００４１】
ノード記録手段１２は、出力した音声案内データを有するノードを対話履歴として記録するための手段であり、例えば、図５に示すように、発火の順番を示す発火履歴番号、発火させたノードの番号、及び、そのノードを発火させた時刻等を関連付けて記憶部３にある対話履歴データベース３１に記録する。
【００４２】
なお、ノード記録手段１２は、各ノードが有する音声案内データを表す概念キーワード、又は、その概念に含まれるサブキーワード若しくはサブキーフレーズを対話履歴データベースに記録するようにしてもよい。
【００４３】
音声認識対象語取得手段１３は、発火させたノードが有する音声認識対象語を取得するための手段であり、例えば、直近に発火させたノードの音声認識対象語部５１を参照してそのノードの現音声認識対象語を取得する。
【００４４】
また、音声認識対象語取得手段１３は、対話履歴データベース３１を参照して過去に発火させたノードが有する既出音声認識対象語を取得するようにしてもよい。
【００４５】
次出力決定手段１４は、次に出力させる音声案内を決定するための手段であり、例えば、ドメイン判定手段１４０、類似シナリオ検索手段１４１、話題転換手段１４２及び対話終了手段１４３等を有し、ユーザの発話内容や発話タイミング等に基づいて次に出力させる音声案内を決定する。
【００４６】
ドメイン判定手段１４０は、ユーザの発話内容に関連するドメイン（以下、「関連ドメイン」という。）が存在するか否かを判定するための手段であり、例えば、ユーザの発話に含まれる語句等に基づいて関連ドメインの存在の有無を判定する。
【００４７】
「ドメイン」とは、共通する内容でまとめられた情報の集合をいい、例えば、カーナビゲーションシステムにおけるグルメ紹介ドメイン、ショッピング紹介ドメイン、観光地紹介ドメイン、オーディオ操作ドメイン、機器操作ドメイン等があり、各ドメインは、自身を特徴付ける概念キーワード（例えば、スポーツがある。）を有し、その概念キーワードは、さらに、その概念に含まれるサブキーワード又はサブキーフレーズ等（例えば、野球、サッカー、バレーボール等がある。）を有する。
【００４８】
また、各ドメインは、関連する情報を提供するためのシナリオ（例えば、観光地紹介ドメインにおける観光案内シナリオをいう。）や関連する操作を実行させるためのシナリオ（例えば、オーディオ操作ドメインにおける音量調整シナリオをいう。）を有する。
【００４９】
また、対話制御装置１００は、ユーザの発話内容とドメインとの関連を判定するためにシソーラスを備えるようにしてもよく、ＴＦ−ＩＤＦ(Term  Frequency−Inverse  Document  Frequency)法を用いてユーザの発話内容とドメインとの関連を判定するようにしてもよい。
【００５０】
類似シナリオ検索手段１４１は、ユーザの発話内容と内容が類似するシナリオ、又は、発火させたシナリオの内容と内容が類似するシナリオ（以下、「類似シナリオ」という。）を検索するための手段である。
【００５１】
類似シナリオ検索手段１４１は、例えば、ユーザの発話に含まれる語句等、或いは、直近に発火させたシナリオにおけるノードが有する音声認識対象語やその音声出力データに含まれる語句と、検索対象の各シナリオにおけるノードが有する音声認識対象語やその音声出力データに含まれる語句とに基づいて、全てのシナリオの中から類似シナリオを検索する。
【００５２】
各シナリオは、ドメインと同様に、自身を特徴付ける概念キーワード（例えば、観光案内がある。）を有してもよく、さらに、その概念に含まれるサブキーワード又はサブキーフレーズ等（例えば、温泉、展望台、土産物屋等がある。）を有してもよい。
【００５３】
また、対話制御装置１００は、ユーザの発話内容又は発火させたシナリオの内容と検索対象のシナリオの内容との類似度を判定するためにシソーラスを備えるようにしてもよく、ＴＦ−ＩＤＦ法を用いて類似度を判定するようにしてもよい。
【００５４】
また、類似シナリオ検索手段１４１は、ユーザの発話長（一回の発話長であってもよく、各シナリオにおける合計発話長であってもよい。）が所定時間以上の場合に限り、音声認識手段１０が認識したテキストデータから自立語を抽出して、類似シナリオを検索するようにしてもよい。
【００５５】
ユーザの発話長が長い場合、ユーザが対話制御装置１００との対話に積極的であると推測でき、類似シナリオを発火させることで、対話制御装置１００は、ユーザとの自然な対話を継続させることができるからである。
【００５６】
また、ユーザの発話長が短い場合、ユーザが対話制御装置１００との対話に消極的であると推測でき、類似シナリオを発火させないようにすることで、対話制御装置１００は、関心の薄い話題を提供してユーザに不快感を与えてしまうのを防止することができるからである。
【００５７】
話題転換手段１４２は、話題を転換するための手段であり、例えば、発火させることができるシナリオ群から乱数を用いて特定のシナリオを選択する。
【００５８】
対話終了手段１４３は、対話を終了させる手段であり、例えば、対話の終了をユーザに明示する終了通知メッセージを出力させる。
【００５９】
次に、図６を参照しながら、次出力決定手段１４が次に出力させる音声案内を決定する処理の流れについて説明する。図６は、この処理の流れを示すフローチャートである。
【００６０】
最初に、対話制御装置１００は、音声取得部２でユーザ発話を検知すると音声認識手段１０による認識ができたか否かを判定する（ステップＳ１）。
【００６１】
ユーザ発話をテキストデータとして認識できた場合（ステップＳ１のＹＥＳ）、対話制御装置１００は、音声認識対象語取得手段１３により、ノード記録手段１２が記録した対話履歴データベース３１を参照し、過去に発火させたノードが有する音声認識対象語を取得して、テキストデータに音声認識対象語が含まれるか否かを判定する（ステップＳ２）。
【００６２】
なお、音声認識対象取得手段１３は、最後に発火させたノード以外の過去のノードに関しては、「はい」、「いいえ」、「どっちでもいい」、「どっちもいや」、「それ」等の語句を既出音声認識対象語として取得しないようにする。何れのノードに対する回答であるか特定できないためである。
【００６３】
テキストデータに音声認識対象語が含まれる場合（ステップＳ２のＹＥＳ）、対話制御装置１００は、次出力決定手段１４に後述のノード移行処理を実行させる（ステップＳ３）。
【００６４】
テキストデータに音声認識対象語が含まれない場合（ステップＳ２のＮＯ）、対話制御装置１００は、次出力決定手段１４における類似シナリオ検索手段１４１により、類似シナリオを検索する（ステップＳ４）。
【００６５】
類似シナリオが検索できた場合（ステップＳ４のＹＥＳ）、対話制御装置１００は、データ提供手段１１により、その類似シナリオのルートノードが有する音声案内データを音声出力部４から出力させる（ステップＳ５）。
【００６６】
類似シナリオが検索できない場合（ステップＳ４のＮＯ）、対話制御装置１００は、次出力決定手段１４におけるドメイン判定手段１４０により、ユーザの発話内容に関連するドメインが存在するか否かを判定する（ステップＳ６）。
【００６７】
関連ドメインが存在する場合（ステップＳ６のＹＥＳ）、対話制御装置１００は、データ提供手段１１により、その関連ドメインにあるシナリオのルートノードが有する音声案内データを音声出力部４から出力させ（ステップＳ７）、関連ドメインが存在しない場合（ステップＳ６のＮＯ）、次出力決定手段１４に後述の対話継続可否判定処理を実行させる（ステップＳ８）。
【００６８】
次に、図７を参照しながら、ノード移行処理の流れについて説明する。なお、図７は、ノード移行処理の流れを示すフローチャートである。
【００６９】
最初に、次出力決定手段１４は、対話履歴データベース３１を参照して、テキストデータに含まれる音声認識対象語を有するノード（以下、「該当ノード」という。）の発火後経過時間を算出する（ステップＳ１１）。
【００７０】
なお、次出力決定手段１４は、該当ノードが複数存在する場合には、発火履歴番号が大きいほう（新しいほう）を優先させる。ユーザは、直前の選択肢や話題に話を戻したい場合が多いと考えられるからである。
【００７１】
また、次出力決定手段１４は、該当ノードが同じシナリオ内に複数存在する場合には、下位のノードを優先させる。シナリオの下位にあるノードは、より上位にあるノードに比べてより具体的な質問を提示しているからであり、ユーザが期待する音声案内をより迅速に提供できると考えられるからである。
【００７２】
但し、ユーザ発話に「昨日」、「お昼」等の日時を特定する語句が含まれる場合には、その日時に合致する発火履歴を有する該当ノードを優先させるようにしてもよい。
【００７３】
該当ノードの発火後経過時間が閾値Ｔ１（例えば、５分）未満の場合（ステップＳ１１のＹＥＳ）、次出力決定手段１４は、対話履歴データベース３１を参照して、その音声認識対象語が示す移行先のノード（以下、「対応ノード」という。）が発火済みであるか否かを判定し（ステップＳ１２）、対応ノードが発火済みの場合（ステップＳ１２のＹＥＳ）、後述の対話継続可否判定処理を実行させる（ステップＳ１３）。
【００７４】
対応ノードが発火済みでない場合（ステップＳ１２のＮＯ）、次出力決定手段１４は、対応ノードを次に出力させるノードとして決定し（ステップＳ１４）、データ提供手段１１によりその対応ノードが有する音声案内データを音声出力部４から出力させる。
【００７５】
一方、該当ノードの発火後経過時間が閾値Ｔ１（例えば、５分）以上の場合（ステップＳ１１のＮＯ）、次出力決定手段１４は、「○○（ユーザ発話に含まれる音声認識対象語）でいいですか？」、「○○（ユーザ発話に含まれる音声認識対象語）と△△（別の音声認識対象語）のうちの○○ですね。」等の確認メッセージを音声出力し（ステップＳ１５）、ユーザの確認を得た上で（例えば、ユーザ発話「はい」を取得した場合をいう。）（ステップＳ１６のＹＥＳ）、対応ノードを次に出力させるノードとして決定する（ステップＳ１４）。
【００７６】
ユーザの確認が得られなかった場合（例えば、ユーザ発話「いいえ」を取得した場合をいう。）（ステップＳ１６のＮＯ）、次出力決定手段１４は、後述の対話継続可否判定処理を実行させる（ステップＳ１７）。
【００７７】
所定時間が経過しているため、対話制御装置１００が出力した質問や選択肢の内容をユーザが正確に憶えていない場合があるからである。
【００７８】
この場合、その対応ノードが発火済みであっても、次出力決定手段１４は、その対応ノードが有する音声案内データを音声出力部４から出力させるようにしてもよい。
【００７９】
所定時間が経過しているため、その対応ノードが有する音声案内データを再出力しても、ユーザに煩わしさを感じさせることがないからである。
【００８０】
なお、次出力決定手段１４は、記憶部３に格納されたシソーラスを参照して音声認識対象語に類似する語（以下、「類似対象語」という。）を取得し、類似対象語がテキストデータに含まれる場合に、「○○（ユーザ発話に含まれる類似対象語に対応する音声認識対象語）でいいですか？」といった確認メッセージを音声出力するようにしてもよい。
【００８１】
その上で、次出力決定手段１４は、ユーザの確認を得た場合に（例えば、ユーザ発話「はい」を取得した場合をいう。）、ノード移行処理を実行するようにしてもよい。対話制御装置１００が過去に提示した選択肢をユーザが正確に憶えていない場合もあるからである。
【００８２】
なお、対話制御装置１００は、発火後経過時間に基づいて制御方法を変更するが、対話履歴を幾つ（ノード数）遡ったかに基づいて制御方法を変更するようにしてもよい。
【００８３】
次に、図８を参照しながら、対話継続可否判定処理の流れについて説明する。なお、図８は、対話継続可否判定処理の流れを示すフローチャートである。
【００８４】
最初に、次出力決定手段１４は、発火制御により発火条件を満たすシナリオが存在するか否かを判定する（ステップＳ２１）。
【００８５】
発火可能なシナリオが存在する場合（ステップＳ２１のＹＥＳ）、次出力決定手段１４は、類似シナリオ検索手段１４１により、直近に発火させたシナリオに類似する類似シナリオが存在するか否かを判定する（ステップＳ２２）。
【００８６】
直近に発火させたシナリオに類似する類似シナリオが存在する場合、対話制御装置１００は、データ提供手段１１により、その類似シナリオのルートノードが有する音声案内データを音声出力部４から出力させる（ステップＳ２３）。
【００８７】
直近に発火させたシナリオに類似する類似シナリオが存在しない場合、対話制御装置１００は、次出力決定手段１４の話題転換手段１４２により、発火させることができるシナリオ群から乱数を用いて特定のシナリオを選択させ、データ提供手段１１により、その選択させたシナリオのルートノードが有する音声案内データを音声出力部４から出力させる（ステップＳ２４）。
【００８８】
一方、発火可能なシナリオが存在しない場合（ステップＳ２１のＮＯ）、対話制御装置１００は、次出力決定手段１４の対話終了手段１４３により、「用があるときはまた呼んでね」といった対話の終了を明示する終了通知メッセージを出力させる（ステップＳ２５）。
【００８９】
次に、対話制御装置１００とユーザとの間の対話例を用いて対話制御装置１００が対話を制御する流れを説明する。
【００９０】
ＧＰＳ（Global  Positioning  System）が出力した位置情報に基づいて車輌が所定地点に到達したことを認識すると、対話制御装置１００は、観光案内シナリオＡ（図２参照。）を発火させ、データ提供手段１１により、観光案内シナリオＡのノードＮ１、Ｎ２が有する音声案内データを順番に音声出力部４から出力させながら、ユーザとの対話を継続させる。
【００９１】
その後、対話制御装置１００は、観光案内シナリオＡのノードＮ３が有する音声案内データ「観光案内しようか。名物、名産品、見どころの情報があるけどどれがいい？」を音声出力部４から出力させる。
【００９２】
なお、ノード記録手段１２は、発火させたノードＮ１、Ｎ２、Ｎ３を対話履歴データベース３１に発火順に記録し、ユーザと対話制御装置１００との間の対話の流れを記録する（図５参照。）。
【００９３】
ノードＮ３の音声認識対象語部５１には、音声認識対象語「名物」、「名産品」、「見どころ」がノードＮ５、Ｎ６、Ｎ７それぞれへの移行条件として登録されており、音声認識対象語「聞きたくない」が対話を終了させる条件として登録されている（図４参照。）。
【００９４】
このとき、ユーザが「名物」を発話すると、音声認識手段１０は、そのユーザ発話をテキストデータに変換し、音声認識対象語取得手段１３は、ノードＮ１、Ｎ２、Ｎ３の音声認識対象語部５１を参照してノードＮ１、Ｎ２、Ｎ３のそれぞれが有する音声認識対象語を取得する。
【００９５】
その後、次出力決定手段１４は、そのユーザ発話にノード３における現音声認識対象語「名物」が含まれることを検知し、ノード３の音声認識対象語部５１（図４参照。）を参照して現音声認識対象語「名物」に対応付けられたノードＮ５を次に出力させる音声案内データを有するノードとして決定する。
【００９６】
その後、対話制御装置１００は、ノードＮ５が有する音声案内データ「このあたりの名物は、うなぎだよ」を音声出力部４から出力させる。なお、ノード記録手段１２は、発火させたノードＮ５を対話履歴データベース３１に追加する。
【００９７】
ノードＮ５の音声認識対象語部５１には、音声認識対象語「うなぎ食べたい」、「いいねぇうなぎ」が後続ノードへの移行条件として登録されており、音声認識対象語「そうなんだ、知らなかった」、「うなぎは好きじゃないんだよね」等が対話を終了させる条件として登録されているものとする。
【００９８】
このとき、ユーザが「そうなんだ、知らなかった」を発話すると、音声認識手段１０は、そのユーザ発話をテキストデータに変換し、音声認識対象語取得手段１３は、ノードＮ１、Ｎ２、Ｎ３、Ｎ５のそれぞれの音声認識対象語部５１を参照してノードＮ１、Ｎ２、Ｎ３、Ｎ５のそれぞれが有する音声認識対象語を取得する。
【００９９】
その後、次出力決定手段１４は、そのユーザ発話にノード５における現音声認識対象語「そうなんだ、知らなかった」が含まれることを検知し、ノード５の音声認識対象語部５１を参照して対話を終了させる。
【０１００】
以上のように対話を一旦終了させた後にユーザが発話を再開させた場合、ユーザの発話内容に応じて対話制御装置１００がどのように対話を継続させるかを以下に説明する。
【０１０１】
先ず、ユーザが「少し早いけど、食事しようかな。うなぎ食べたい」を発話した場合について説明する。
【０１０２】
この場合、次出力決定手段１４は、対話履歴データベース３１を参照し、直前に発火させたノードＮ５の現音声認識対象語「うなぎ食べたい」がユーザ発話の中に含まれることを認識する。
【０１０３】
現音声認識対象語「うなぎ食べたい」に対応する後続ノードは過去に発火しておらず、次出力決定手段１４は、その後続ノードが有する音声案内データを次に出力させるものとして決定する。
【０１０４】
なお、後続ノードが過去に発火していた場合、次出力決定手段１４は、同じ質問を繰り返さないよう、「そうそう面白い話があるんだ」といった話題転換メッセージを出力させて話題を転換させたり、「僕からの観光案内は終わりです。もっと勉強しておくね。」といった終了通知メッセージを出力させて対話を明示的に終了させたりしてもよい。
【０１０５】
また、後続ノードが過去に発火していた場合、次出力決定手段１４は、類似シナリオを発火させるようにしてもよい。類似シナリオを発火させることで、いつも同じ質問をするといった印象をユーザに与えないようにすることができ、かつ、全く異なる話題を提供してユーザを困惑させることがないようにすることができるからである。
【０１０６】
次に、ユーザが「少し早いけど、夕食にしちゃおうか」を発話した場合について説明する。
【０１０７】
この場合、次出力決定手段１４は、対話履歴データベース３１を参照し、過去に発火させたノードの音声認識対象語がユーザ発話の中に含まれないことを認識する。
【０１０８】
そこで、次出力決定手段１４は、記憶部３に格納されたシソーラスを参照して音声認識対象語に類似する類似対象語を取得し、ノードＮ５の現音声認識対象語「うなぎ食べたい」に類似するとして登録された類似対象語「夕食」がテキストデータに含まれることを認識し、その後続ノードが有する音声案内データを次に出力させるものとして決定する。
【０１０９】
次に、ユーザが「あ、お土産買うのを忘れてた。名産品は何があったっけ。」を発話した場合について説明する。
【０１１０】
この場合、次出力決定手段１４は、対話履歴データベース３１を参照し、２ノード前に発火させたノードＮ３の既出音声認識対象語「名産品」がユーザ発話の中に含まれることを認識する。
【０１１１】
既出音声認識対象語「名産品」に対応するノードＮ６は過去に発火しておらず、次出力決定手段１４は、既出音声認識対象語「名産品」に対応するノードＮ６が有する音声案内データを次に出力させるものとして決定する。
【０１１２】
なお、ノードＮ６が過去に発火していた場合であっても、発火から所定時間が経過している場合には、次出力決定手段１４は、ノードＮ６が有する音声案内データを次に出力させるものとして決定するようにしてもよい。発火から所定時間が経過している場合、同じ質問を繰り返してもユーザに不快感を与えることはないからである。
【０１１３】
次に、ユーザが「あ、お土産買うのを忘れてた。」を発話した場合について説明する。
【０１１４】
この場合、次出力決定手段１４は、対話履歴データベース３１を参照し、過去に発火させたノードの音声認識対象語がユーザ発話の中に含まれないことを認識する。
【０１１５】
そこで、次出力決定手段１４は、記憶部３に格納されたシソーラスを参照して音声認識対象語に類似する類似対象語を取得し、２ノード前に発火させたノードＮ３の既出音声認識対象語「名産品」に類似するとして登録された類似対象語「お土産」がテキストデータに含まれることを認識し、既出音声認識対象語「名産品」に対応するノードＮ６が有する音声案内データを次に出力させるものとして決定する。
【０１１６】
次に、ユーザが「そういえばこのあたりに有名な温泉があるって聞いたことある気がするんだけど」を発話した場合について説明する。
【０１１７】
この場合、次出力決定手段１４は、対話履歴データベース３１を参照し、過去に発火させたノードの音声認識対象語及び類似対象語がユーザ発話の中に含まれないことを認識する。
【０１１８】
そこで、次出力決定手段１４は、類似シナリオ検索手段１４１により、自立語「そう」、「いう」、「この」、「あたり」、「有名」、「温泉」、「ある」、「聞く」、「こと」、「ある」、「気」、「する」、「けど」を抽出させ、自立語「温泉」と観光案内シナリオＡが有する概念キーワード「観光案内」に対応付けられたサブキーワード「温泉」とが一致することから関連シナリオとして観光案内シナリオＡを抽出させる。
【０１１９】
これにより、次出力決定手段１４は、観光案内シナリオＡのルートノードＮ１が有する音声案内データを次に出力させるものとして決定する。
【０１２０】
次に、ユーザが「そういえば昨日の野球の結果教えて」を発話した場合について説明する。
【０１２１】
この場合、次出力決定手段１４は、対話履歴データベース３１を参照し、過去に発火させたノードの音声認識対象語及び類似対象語がユーザ発話の中に含まれないことを認識し、類似シナリオも存在しないことを認識する。
【０１２２】
そこで、次出力決定手段１４は、ドメイン判定手段１４０により、自立語「そう」、「いう」、「昨日」、「野球」、「結果」、「教える」を抽出させ、自立語「野球」とスポーツドメインが有する概念キーワード「スポーツ」に対応付けられたサブキーワード「野球」とが一致することから、ユーザ発話がスポーツドメインに関連するものであると判定させる。
【０１２３】
これにより、次出力決定手段１４は、スポーツドメインにあるシナリオのルートノードが有する音声案内データを次に出力させるものとして決定する。
【０１２４】
次に、ユーザが「あーなんか眠くなってきた」を発話した場合について説明する。
【０１２５】
この場合、次出力決定手段１４は、対話履歴データベース３１を参照し、過去に発火させたノードの音声認識対象語及び類似対象語がユーザ発話の中に含まれないことを認識し、かつ、類似シナリオも関連ドメインも存在しないことを認識する。
【０１２６】
そこで、次出力決定手段１４は、発火制御により発火条件を満たすシナリオが存在するか否かを判定し、発火可能なシナリオが存在すれば、そのシナリオのルートノードが有する音声案内データを次に出力させるものとして決定する。
【０１２７】
一方、発火可能なシナリオが存在しなければ、次出力決定手段１４は、終了通知メッセージを次に出力させるものとして決定する。
【０１２８】
次に、ユーザの発話は検出したが、テキストデータとして認識できなかった場合について説明する。
【０１２９】
この場合、次出力決定手段１４は、発火制御により発火条件を満たすシナリオが存在するか否かを判定し、発火可能なシナリオが存在すれば、類似シナリオ検索手段１４１により、直近に発火させたシナリオに類似する類似シナリオが発火可能なシナリオの中に存在するか否かを判定させ、直近に発火させたシナリオに類似する類似シナリオが存在する場合、類似シナリオのルートノードが有する音声案内データを次に出力させるものとして決定する。
【０１３０】
発火可能なシナリオは存在するが類似シナリオは存在しない場合、次出力決定手段１４は、乱数を用いて無作為に選択した発火可能なシナリオのルートノードが有する音声案内データを次に出力させるものとして決定する。
【０１３１】
発火可能なシナリオが存在しなければ、次出力決定手段１４は、終了通知メッセージを次に出力させるものとして決定する。
【０１３２】
以上の構成により、対話制御装置１００は、複数のノードから構成されるシナリオにおいて既に発火させたノードを記録しておき、既に発火させたノードが有する音声認識対象語がユーザ発話に含まれる場合に、そのノードの下位にあるノードを発火させるので、ユーザが期待する音声案内を迅速かつ適時に提供することができ、自然な対話を継続させることができる。
【０１３３】
また、対話制御装置１００が直前に提示した質問にしかユーザ発話による応答ができないといった制限を取り除き、対話制御装置１００が過去に提示した質問にも直接応答できるようにすることで、自然な対話を継続させることができ、ユーザの対話制御装置１００に対する親近感を高め、対話制御装置１００の継続利用を促すことができる。
【０１３４】
以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなしに上述した実施例に種々の変形及び置換を加えることができる。
【０１３５】
例えば、上述の実施例では、各ノードが下位のノードへの移行条件（下位のノードを発火させるための発火条件）及びその移行条件を構成する音声認識対象語に関する情報を有するが、各ノードが自身の発火条件及びその発火条件を構成する音声認識対象語を有するようにしてもよい。
【０１３６】
また、対話制御装置１００は、シナリオに沿って音声案内を出力しながらユーザの発話を認識して次に出力する音声案内を決定するというように、音声による入出力に基づく構成であるが、液晶ディスプレイ等の表示装置にテキストデータを表示しながらキーボード等を介したユーザによるテキスト入力を認識して次に表示するテキストデータを決定するというように、テキストによる入出力に基づく構成となるようにしてもよい。
【０１３７】
この場合、シナリオは、テキスト案内データと次のテキスト案内データに移行するための移行条件を定める認識対象語とを有するノードで構成され、認識対象語は、ユーザによるテキスト入力が期待される語句として予め登録される。
【０１３８】
また、音声取得部２は、キーボード、マウス又はタッチパネル等のテキスト入力部に置き換えられ、音声出力部４は、液晶ディスプレイ等のテキスト出力部に置き換えられる。
【０１３９】
なお、入力を音声、出力をテキストに基づく構成とし、或いは、入力をテキスト、出力を音声に基づく構成としてもよい。
【図面の簡単な説明】
【０１４０】
【図１】対話制御装置の構成例を示す図である。
【図２】シナリオのツリー構造を示す図である。
【図３】ノードの構成例を示す図である。
【図４】音声認識対象語部の構成例を示す図である。
【図５】対話履歴データベースの構成例を示す図である。
【図６】次出力決定手段が次に出力させる音声案内を決定する処理の流れを示すフローチャートである。
【図７】ノード移行処理の流れを示すフローチャートである。
【図８】対話継続可否判定処理の流れを示すフローチャートである。
【符号の説明】
【０１４１】
１      制御部
２      音声取得部
３      記憶部
４      音声出力部
１０    音声認識手段
１１    データ提供手段
１２    ノード記録手段
１３    音声認識対象語取得手段
１４    次出力決定手段
３０    シナリオデータベース
３１    対話履歴データベース
５０    音声案内データ部
５１    音声認識対象語部
１００  対話制御装置
１４０  ドメイン判定手段
１４１  類似シナリオ検索手段
１４２  話題転換手段
１４３  対話終了手段
Ｎ１〜Ｎ７  ノード
【図１】
2008170817.tif 000003
【図２】
2008170817.tif 000004
【図３】
2008170817.tif 000005
【図４】
2008170817.tif 000006
【図５】
2008170817.tif 000007
【図６】
2008170817.tif 000008
【図７】
2008170817.tif 000009
【図８】
2008170817.tif 000010