(57)【特許請求の範囲】
【請求項１】
複数のアプリケーションに対して用いられ、当該複数のアプリケーションにそれぞれ対応させて用意されたアプリケーションシナリオグループに基づく対話処理を実行することによって前記アプリケーションで必要となる情報をユーザとの対話により取得して前記アプリケーションへ送出する制御手段を備えた対話型ユーザインタフェース装置であって、
ユーザからの入力情報に応じたアプリケーションを選択して起動すると共に、当該アプリケーションに対応するアプリケーションシナリオグループを読み出すアプリケーション分岐処理を実現するためのルートシナリオを、前記アプリケーションシナリオグループと分離して構築しておき、
前記制御手段は、前記ルートシナリオに基づくアプリケーション分岐処理の実行によって、前記アプリケーションシナリオグループに基づく対話処理の途中で別のアプリケーションシナリオグループに基づく対話処理を実行可能としたこと
を特徴とする対話型ユーザインターフェース装置。
【請求項２】
請求項１に記載の対話型ユーザインターフェース装置において、
前記アプリケーションシナリオグループには、前記アプリケーションで必要となる情報の入力要求を行うための要求情報、当該入力要求に応じてユーザから入力されると想定される予想入力情報、及び予想入力情報に応じた分岐情報からなる対話情報が少なくとも記述されており、
前記制御手段は、前記対話処理として、前記要求情報に基づく入力要求処理、前記ユーザからの入力情報と前記予想入力情報との比較処理、及び当該比較結果による前記分岐情報に基づく分岐処理を行うこと
を特徴とする対話型ユーザインターフェース装置。
【請求項３】
請求項２に記載の対話型ユーザインターフェース装置において、
前記アプリケーションシナリオグループに基づく対話処理の途中で前記予想入力情報以外の入力情報が前記ユーザによって入力されると、前記対話処理を中断し、前記ルートシナリオに基づくアプリケーション分岐処理を実行すること
を特徴とする対話型ユーザインターフェース装置。
【請求項４】
請求項３に記載の対話型ユーザインターフェース装置において、
前記制御手段は、前記アプリケーション分岐処理において前記入力情報に応じたアプリケーションが選択不可能であれば、前記中断した対話処理を再度実行し、ユーザに情報の再入力を促すこと
を特徴とする対話型ユーザインターフェース装置。
【請求項５】
請求項３又は４に記載の対話型ユーザインターフェース装置において、
前記制御手段は、前記対話処理と前記アプリケーション分岐処理との間で前記入力情報を必要に応じて受け渡し、両方の処理で利用すること
を特徴とする対話型ユーザインターフェース装置。
【請求項６】
請求項３乃至５のいずれかに記載の対話型ユーザインターフェース装置において、
前記アプリケーションシナリオグループは、
所定の話題に関連する前記対話情報が記述され、前記対話処理の一部を構成する単位対話処理を実現するためのアプリケーションシナリオと、
前記アプリケーションシナリオに基づく前記単位対話処理へ前記入力情報に応じて分岐させる対話分岐処理を実現するためのアプリケーションルートシナリオとから構成されていること
を特徴とする対話型ユーザインターフェース装置。
【請求項７】
請求項６に記載の対話型ユーザインターフェース装置において、
前記制御手段は、前記アプリケーションシナリオに基づく単位対話処理の途中で前記予想入力情報以外の入力情報が入力されると、前記単位対話処理を中断し、前記アプリケーションルートシナリオに基づく対話分岐処理を実行すること
を特徴とする対話型ユーザインターフェース装置。
【請求項８】
請求項７に記載の対話型ユーザインターフェース装置において、
前記制御手段は、前記対話分岐処理によって前記入力情報に応じた分岐が不可能であれば、前記ルートシナリオに基づくアプリケーション分岐処理を実行すること
を特徴とする対話型ユーザインターフェース装置。
【請求項９】
請求項７又は８に記載の対話型ユーザインターフェース装置において、
前記制御手段は、前記単位対話処理と前記対話分岐処理との間で前記入力情報を必要に応じて受け渡し、両方の処理で利用すること
を特徴とする対話型ユーザインターフェース装置。
【請求項１０】
請求項３乃至９のいずれかに記載の対話型ユーザインターフェース装置において、
前記制御手段は、前記アプリケーションシナリオグループに基づく対話処理を中断し、別のアプリケーションシナリオグループに基づく対話処理を実行した場合、当該別のアプリケーションシナリオグループに基づく対話処理終了後に、前記中断した対話処理を実行可能であること
を特徴とする対話型ユーザインターフェース装置。
【請求項１１】
請求項１０に記載の対話型ユーザインターフェース装置において、
前記制御手段は、前記中断した対話処理を実行するか否かをユーザに問い合わせ、当該問い合わせに対応するユーザからの入力情報に基づいて、前記中断した対話処理を実行するか否かを判断すること
を特徴とする対話型ユーザインターフェース装置。
【請求項１２】
請求項２乃至１１のいずれかに記載の対話型ユーザインターフェース装置において、
前記入力情報は、複数の情報からなる情報群として入力できるようになっており、
前記制御手段は、前記情報群としての前記入力情報が入力されると、前記対話処理において前記複数の情報を一括して取得可能であること
を特徴とする対話型ユーザインターフェース装置。
【請求項１３】
請求項１２に記載の対話型ユーザインターフェース装置において、
前記制御手段は、前記情報群としての前記入力情報が入力されると、ユーザが所望するアプリケーションの動作を示す動作要求情報と当該動作要求情報に関連する付帯情報とに分け、前記動作要求情報に基づく処理を最初に実行すること
を特徴とする対話型ユーザインターフェース装置。
【請求項１４】
請求項２乃至１３のいずれかに記載の対話型ユーザインターフェース装置において、
さらに、前記入力情報を分類するための分類属性辞書を記憶した辞書記憶手段を備え、
前記制御手段は、前記辞書記憶手段に記憶された辞書に基づき、前記入力情報に対応する分類属性を取得し、当該分類属性を用いて前記比較処理を実行すること
を特徴とする対話型ユーザインターフェース装置。
【請求項１５】
請求項１４に記載の対話型ユーザインターフェース装置において、
前記辞書記憶手段には、同一の分類に属する前記動作要求情報をさらに区別するための細分類属性辞書が記憶されており、
前記制御手段は、前記動作要求情報の分類属性に加え、必要に応じて細分類属性をも取得し、当該分類属性及び細分類属性を用いて前記比較処理を実行すること
を特徴とする対話型ユーザインターフェース装置。
【請求項１６】
請求項２乃至１５のいずれかに記載の対話型ユーザインターフェース装置において、
前記対話情報を構成する要求情報、予想入力情報又は分岐情報のうちの少なくとも一つが前記アプリケーションシナリオグループの外部に記述でき、
前記アプリケーションシナリオグループには、前記外部に記述された情報を特定するための特定情報を記述しておき、
前記制御手段は、前記特定情報に基づき、前記外部に記述された情報を読み出して、前記ユーザへの入力要求又は前記予想入力情報に基づく分岐を行うこと
を特徴とする対話型ユーザインターフェース装置。
【請求項１７】
請求項１６に記載の対話型ユーザインターフェース装置において、
前記アプリケーションシナリオグループには、前記外部に記述された情報を特定するための特定情報に加え、要求情報、予想入力情報又は当該予想入力情報に対応する分岐情報を記述でき、
前記制御手段は、前記特定情報に基づき読み出した情報と前記アプリケーションシナリオグループに記述された情報とに基づいて、前記ユーザへの入力要求又は前記予想入力情報に基づく分岐を行うこと
を特徴とする対話型ユーザインターフェース装置。
【請求項１８】
請求項２乃至１７のいずれかに記載の対話型ユーザインターフェース装置において、
前記要求情報、予想入力情報又は分岐情報のうちの少なくともいずれか一つを、前記制御手段によって書換可能としたこと
を特徴とする対話型ユーザインターフェース装置。
【請求項１９】
請求項１乃至１８のいずれかに記載の対話型ユーザインターフェース装置において、
さらに、前記入力情報を記憶するための共有データ記憶手段を備え、
前記制御手段は、前記入力情報を共有データ記憶手段に記憶し、別のアプリケーションシナリオグループに基づく対話処理において、前記共有データ記憶手段に記憶された前記入力情報を参照して取得可能としたこと
を特徴とする対話型ユーザインターフェース装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ユーザとの間で自然な対話を実現し、この対話によってアプリケーションプログラムで必要となる情報を取得する対話型ユーザインタフェース装置に関する。
【０００２】
【従来の技術】
近年、カーナビゲーション装置には、対話型のユーザインタフェースを備えるものが多くなってきている。このようなカーナビゲーション装置では、ユーザとの対話を通じて情報を取得し、その情報に基づく処理を行う。例えば、音声合成装置による問いかけと、音声認識装置によるユーザの発話内容の取得とを繰り返して目的地、目的地経路上の通過地点（以下「経由地」という。）などの情報を取得し、ルート案内を行うという具合である。なお、本明細書でいう「対話」には、上述した音声による対話だけでなく、ユーザによるスイッチ操作と装置によるディスプレイへの情報表示によってなされる情報のやり取りも含まれる。
【０００３】
従来、上述したような対話処理は、ルート案内などの機能を実現するためのアプリケーションプログラム（以下単に「ＡＰ」と記述する。）に記述されていた。そのため、ＡＰの処理が複雑になり、その設計が困難になるという問題があった。また、ＡＰの処理手順に対話の流れが左右されるため、自然な対話、すなわちユーザ側の自由度の高い対話を実現することが困難で、ユーザに違和感を与える結果となっていた。
【０００４】
また、カーナビゲーション装置が設置される車室内を例に挙げて考えると、オーディオ機器、テレビジョン受像機、情報検索端末など複数の機器が搭載される現状がある。したがって、これらの機器を例えば音声対話によって統括的に制御することが望まれている。
【０００５】
しかしながら従来は、あるＡＰに対応する対話処理という思想があり、対話の範囲は一つのＡＰに限定されていた。このため、例えば、ルート案内のＡＰが目的地の情報を取得するための対話処理において、ＣＤの再生を要求することができなかった。つまり、あるＡＰに対する対話処理と別のＡＰに対する対話処理とが独立したものとなっていたのである。その結果、あるＡＰの実行中に別のＡＰを実行する場合、一旦、ＡＰを終了させて、別のＡＰを実行させるという作業（音声によるコマンドであることも考えられる。）が必要となっており、一連の対話の中で複数のＡＰを選択的に実行させることができなかった。
【０００６】
このような問題を解決するために本出願人は、次のような対話型ユーザインターフェース装置を以前に提案している（特願平１１−２３２６５７号）。
この対話型ユーザインターフェース装置では、ＡＰに対応して用意されるシナリオに基づいて対話処理を行う。つまり、シナリオに基づく対話処理を実行することによって、対話処理の記述自体をＡＰから独立させると共にＡＰの処理手順に対話の流れが左右されないようにして、自然な対話、すなわちユーザ側の自由度の高い対話を実現した。さらには、このようなシナリオを複数のＡＰにそれぞれ対応させて用意し、シナリオに基づく対話処理において、他のＡＰに関連する情報が入力された場合には、他のＡＰに対応するシナリオを読み出し、そのシナリオに基づく対話処理を実行するようにして、複数のＡＰを一連の対話の中で選択的に実行させることを可能にした。
【０００７】
この従来の対話型ユーザインターフェース装置を、図１０を用いて具体的に説明する。
例えばＡ，Ｂ，Ｃ，Ｄの各ＡＰ７００で必要となる情報をユーザとの自然な対話にて取得するためにＡ〜ＤのＡＰ７００にそれぞれ対応させたＡ，Ｂ，Ｃ，Ｄのシナリオ２００を用意する。
【０００８】
対話型ユーザインターフェース装置としての対話装置１００は、いわゆるコンピュータシステムであり、音声認識及び音声合成を行ってユーザとの対話を実現する。このとき、対話装置１００は、Ａ〜Ｄのシナリオ２００に基づく対話処理を実行してＡ〜Ｄの各ＡＰ７００で必要となる情報を取得する。例えばＡ−ＡＰ７００がルート案内を行うようなものであれば、ルート案内に必要となる目的地、経由地などの情報をＡシナリオ２００に基づく対話処理によって取得するという具合である。このようにしたことによって、Ａ〜ＤのＡＰ７００から対話処理を分離することができ、Ａ〜ＤのＡＰ７００が簡略化される。また、Ａ〜ＤのＡＰ７００の処理手順に対話の流れが左右されないために、自然な対話を実現することができる。
【０００９】
そして例えば、Ａシナリオ２００に基づく対話処理の途中で「ＣＤが聴きたい」というような音声入力がなされたときは、ＣＤ再生を実現するＢ−ＡＰ７００を起動し、対応するＢシナリオ２００を読み出してＢシナリオ２００に基づく対話処理を実行する。つまり、Ａシナリオ２００からＢシナリオ２００への移行処理を行う。Ｂシナリオ２００に基づく対話処理では、ＣＤ再生に必要な情報、例えば連奏式のプレーヤーである場合は何枚目のＣＤを再生するかというような情報を取得する。これによって、ルート案内のためのルート設定の途中で、ＣＤを再生させることができる。
【００１０】
【発明が解決しようとする課題】
しかしながら、上述の対話型ユーザインターフェース装置においても、以下の点において改良の余地がある。
それは、ＡＰの数が多くなると、その切り替えのためのシナリオの記述が膨大になるということである。これについて説明する。
【００１１】
図１０に示したＡシナリオ２００に基づく対話処理の途中で例えばＣＤ再生を行うためには、Ｂシナリオ２００への移行処理をＡシナリオ２００の中に記述する必要がある。
つまり、対話処理の中でＡ〜Ｄの各ＡＰ７００を選択的に実行させようとすれば、Ａ〜Ｄのシナリオ２００の中にそれぞれ、他のシナリオ２００への移行処理を記述しなければならない。例えばＡシナリオ２００の中には、Ｂ，Ｃ，Ｄのシナリオ２００への移行処理を記述しなければならない。例えばＡシナリオ２００には、図１０中の２点鎖線に示す移行処理を実現するための記述が必要となる。このため、Ａ〜Ｄの各シナリオ２００の記述が膨大になり複雑になってしまう。
【００１２】
本発明は、上述した問題点を解決するためになされたものであり、一連の対話の中でＡＰの切り替えを行い、しかも、対話処理を実現するためのシナリオの記述を複雑にしないことを目的とする。
【００１３】
【課題を解決するための手段及び発明の効果】
請求項１に記載の対話型ユーザインターフェース装置では、複数のＡＰにそれぞれ対応するアプリケーションシナリオグループ（以下「ＡＰシナリオグループ」と記述する。）を用意した。これによって、ＡＰから対話処理を独立させ、ＡＰの処理手順に対話の流れが左右されないようにした。なお、このＡＰシナリオグループが上述したシナリオに相当する。
【００１４】
そしてここで特に、ＡＰシナリオグループと分離して別個に、アプリケーション分岐処理を実現するためのルートシナリオを設けた。このアプリケーション分岐処理は、ユーザからの入力情報に応じてＡＰを起動すると共に、そのＡＰに対応するＡＰシナリオグループを読み出すものである。つまり、上述したシナリオの移行処理を、各ＡＰに対応するＡＰシナリオグループとは別のルートシナリオにまとめて記述したのである。
【００１５】
これによって、ＡＰの数がいくら多くなったとしても、各ＡＰシナリオグループには他のＡＰシナリオグループへの移行処理を記述する必要がなくなるため、ＡＰシナリオグループの記述が簡単になる。すなわち、一連の対話の中でＡＰの切り替えを行い、しかも、対話処理を実現するためのシナリオ、つまりＡＰシナリオグループの記述が複雑にならない。
【００１６】
なお、対話処理を実現するためのＡＰシナリオグループには、ＡＰで必要となる情報の入力要求を行うための要求情報、当該入力要求に応じてユーザから入力されると想定される予想入力情報、及び予想入力情報に応じた分岐情報からなる対話情報を記述することが考えられる。このとき、制御手段は、上述した対話処理として、要求情報に基づく入力要求処理、ユーザからの入力情報と予想入力情報との比較処理、及び当該比較結果による分岐情報に基づく分岐処理を行う（請求項２）。分岐処理としては、次の入力要求処理への分岐が一例として挙げられる。これによって、ユーザとの対話が実現される。
【００１７】
ところで、上述したようなルートシナリオの思想について、上述した特願平１１−２３２６５７号の実施例に一部開示した。この実施例では、基底シナリオ（本願でいうルートシナリオに相当）に基づくアプリケーション分岐処理が、ＡＰに対応するシナリオ（本願でいうＡＰシナリオグループ）に基づく対話処理と並行して実行されるようになっており、いずれか一方の処理でユーザからの入力情報を処理するようにしている。
【００１８】
しかしながら、複数の処理で並行してユーザからの入力情報を判断する場合、その判断に要する時間が長くなる。また、対話処理にもアプリケーション分岐処理にも該当する入力情報が入力された場合に、アプリケーション分岐処理が実行されて、ユーザの意図しないＡＰが誤って起動されてしまう可能性がある。
【００１９】
請求項３に記載の発明によれば、対話処理の途中で予想入力情報以外の入力情報が入力されると、対話処理を中断し、ルートシナリオに基づくアプリケーション分岐処理を実行する。このため、ユーザ入力情報の判断が迅速になると共に、ユーザの意図していないＡＰが誤って起動されてしまう可能性を小さくできる。そして、請求項４に記載の発明では、このアプリケーション分岐処理において入力情報に応じたＡＰが選択不可能であれば、中断した対話処理を再度実行し、ユーザに情報の再入力を促す。例えば音声認識装置を用いた場合など、周囲の雑音などによって予想入力情報以外の入力情報が入力されたと誤判断してしまうことがあるためである。これによって、ユーザの意図しないＡＰが誤って起動されてしまう可能性をさらに小さくできる。
【００２０】
なお、ユーザ操作をなるべく減らすという観点からは、一度入力された入力情報をシナリオの移行があっても利用できるようにすることが望ましい。つまり、請求項５に記載の発明によれば、ユーザに対する入力要求を減らすことができ、ユーザ操作が簡単になる。例えば「ＣＤが聞きたい」という入力情報がルート設定に関する情報を取得するための対話処理の途中で入力された場合、予想入力情報にないと判断したときは、アプリケーション分岐処理にこの「ＣＤが聞きたい」という入力情報を受け渡し、アプリケーション分岐処理でこの入力情報を利用する。この入力情報により新たなＡＰが起動されて、ＡＰシナリオグループに基づく対話処理が実行された場合には、さらにその「ＣＤが聴きたい」という入力情報を対話処理へ受け渡し、この対話処理で利用するという具合である。
【００２１】
上述してきたようなルートシナリオとＡＰシナリオグループとの分離という思想は、各ＡＰに対応するＡＰシナリオグループにも適用することができる。
すなわち、ＡＰシナリオグループを、複数のアプリケーションシナリオ（以下「ＡＰシナリオ」と記述する。）とアプリケーションルートシナリオ（以下「ＡＰルートシナリオ」と記述する。）とで構成することが考えられる（請求項６）。ここでＡＰシナリオは、所定の話題に関連する対話情報が記述され、対話処理の一部を構成する単位対話処理を実現するためのものである。一方、ＡＰルートシナリオは、ＡＰシナリオに基づく単位対話処理へ入力情報に応じて分岐させる対話分岐処理を実現するためのものである。
【００２２】
あるＡＰで必要となる情報を自然な対話の中で取得しようとした場合、ユーザ側の自由度を高くしようとすれば、１つの対話情報の中の予想入力情報及び分岐情報の記述が膨大なものとなってしまう。例えばルート案内のＡＰにおいて、目的地・経由地を必要とする場合、目的地の入力要求時に「経由地はＸＸＸにしたい」という情報が入力されても、これに対応できるようにすることを考える。この場合、目的地の入力要求に対応する予想入力情報として経由地に関連する情報まで記述し、それに対応する分岐情報を記述しなければならない。
【００２３】
これに対し請求項６に記載の発明によれば、目的地を入力させるための対話情報と経由地を入力させるための対話情報とを別個のＡＰシナリオに記述しておく。そして、目的地の入力要求を行う単位対話処理において「経由地はＸＸＸにしたい」という情報が入力された場合、経由地の入力要求を行う他の単位対話処理への分岐をＡＰルートシナリオに基づく対話分岐処理で行うようにする。このようにすれば、ＡＰシナリオの記述が複雑化しないため、さらにＡＰシナリオグループの記述が簡単になる。
【００２４】
なおこのとき、制御手段は、ＡＰシナリオに基づく単位対話処理の途中で予想入力情報以外の入力情報が入力されると、単位対話処理を中断し、ＡＰルートシナリオに基づく対話分岐処理を実行することが考えられる（請求項７）。このようにすれば、ユーザ入力情報の判断が迅速になり、ユーザの意図しない対話分岐処理が実行される可能性を小さくできる。
【００２５】
そして、制御手段は、対話分岐処理によって入力情報に応じた分岐が不可能であれば、上述したようなルートシナリオに基づくアプリケーション分岐処理を実行するようにすることが考えられる（請求項８）。
また、制御手段は、単位対話処理と対話分岐処理との間で入力情報を必要に応じて受け渡し、両方の処理で利用することが好ましい（請求項９）。ユーザに対する入力要求を減らすことができ、ユーザの入力操作が簡単になるからである。
【００２６】
ところで、ＡＰシナリオグループに基づく対話処理を中断し、別のＡＰシナリオグループに基づく対話処理を実行した場合、当該別のＡＰシナリオグループに基づく対話処理終了後に、中断した対話処理を実行できるようにすることが考えられる（請求項１０）。このようにすれば、例えばルート案内のための目的地を設定している途中で、ＣＤの再生を行った後、再び目的地の設定に移ることができ便利である。
【００２７】
しかし、例えば目的地を設定している途中でレストラン等の検索を行った結果、目的地が変更されてしまいルート案内が必要なくなることもある。
そこで、制御手段が、中断した対話処理を実行するか否かをユーザに問い合わせ、当該問い合わせに対するユーザからの入力情報に基づいて、中断した対話処理を実行するか否かを判断するようにするとさらによい（請求項１１）。
【００２８】
なお、上述した入力情報は、複数の情報からなる情報群として入力できるようにすることが望ましい。このとき、制御手段は、情報群としての入力情報が入力されると、対話処理において複数の情報を一括して取得可能とする（請求項１２）。例えば「名古屋市内のイタリア料理店を検索したい」というような入力情報を入力できるという具合であり、制御手段が対話処理において、「イタリア料理」・「検索」・「名古屋市内」といった複数の情報を一括して取得するという具合である。このようにすれば、より簡単な入力操作が実現される。
【００２９】
入力情報に複数の情報が含まれる場合は、制御手段が、ユーザが所望するＡＰの動作を示す動作要求情報と当該動作要求情報に関連する付帯情報とに分け、動作要求情報に基づく処理を最初に実行することが考えられる（請求項１３）。例えば上述した例では、動作要求情報が「検索」であり、付帯情報が「イタリア料理」・「レストラン」である。
【００３０】
このような動作要求情報・付帯情報の分類に代表されるような入力情報の分類を考えると、分類属性辞書を記憶した辞書記憶手段を備えるようにしてもよい。このとき、制御手段は、辞書記憶手段に記憶された辞書に基づき、入力情報に対応する分類属性を取得し、当該分類属性を用いて比較処理を実行する（請求項１４）。ここでいう比較処理は、上述した予想入力情報との比較処理である。なお、分類属性には、例えば番号を用いればよい。
【００３１】
例えば「検索」の分類属性は「０２７」、「名古屋市」の分類属性は「１０１」というように予め決めておけば、上述したような動作要求情報と付帯情報の分類も簡単にできる。
また、例えば「検索」・「サーチ」・「探す」・「再生」・「聴く」・「かける」などの入力情報があった場合に、「検索」・「サーチ」・「探す」の組と、「再生」・「聴く」・「かける」の組に分類し、それぞれの組に同一の分類属性を割り振っておく。例えば「検索」・「サーチ」・「探す」の組には「０２７」を、「再生」・「聴く」・「かける」の組には「０２９」を割り振るという具合である。このようにすれば、「レストランを検索したい」、「レストランをサーチする」、「レストランを探したい」といった入力情報に対し、動作要求情報の分類情報を取得すれば「０２７」となり、動作要求が同一のものであると判断することができる。また、「ＣＤを再生したい」、「ＣＤを聴きたい」、「ＣＤをかけたい」といった入力情報に対し、動作要求情報の分類属性を取得すれば「０２９」となり、この場合も、動作要求が同一のものであると判断することができる。したがって、ユーザは固定的なコマンド入力から解放され、より直感的な入力情報によってＡＰを操作することができる。さらに、予想入力情報としても、この分類属性を記述しておけばよいため、ＡＰシナリオグループの簡略化に寄与する。
【００３２】
ただし、「電話をかける」とは言うが、「電話を再生したい」や「電話を聴きたい」というような言い方は通常はしない。一方、「留守録を再生したい」や「留守録を聴きたい」と言うことはあるが、「留守録をかけたい」とはいうような言い方は一般的にしない。したがって、例えば自動車電話に関するＡＰで必要となる情報を取得する対話処理では、「再生」・「聴く」・「かける」を区別できることが望ましい。自動車電話に関する対話処理で「かける」という情報が入力された場合には「何番におかけになりますか」といった対話を行うことができるし、逆に「再生」・「聴く」といった情報が入力された場合には「留守録メッセージを聴きますか」といった対話を行うことができるためである。
【００３３】
そこで、辞書記憶手段には、同一の分類に属する入力情報をさらに区別するための細分類属性辞書を記憶しておくとよい。このとき、制御手段は、入力情報の分類属性に加え、必要に応じて細分類属性をも取得し、当該分類属性及び細分類属性を用いて比較処理を実行する（請求項１５）。例えば分類属性辞書には「再生」・「聴く」・「かける」が共に分類属性「０２９」として記憶されているが、細分類辞書には「再生」が細分類属性「０１」として記憶され、「聴く」が細分類属性「０２」、「かける」が細分類属性「０３」として記憶されているという具合である。このようにすれば、様々な状況に応じた細かな対話が可能となり、その結果、より直感的な入力情報によるＡＰ操作が可能となる。
【００３４】
ところで、ＡＰシナリオグループの中には、要求情報、予想入力情報及び分岐情報が重複して記述されることが考えられる。例えば予想入力情報の中には「はい」、「いいえ」など、入力要求に対していずれかを選択するための情報が記述されることが多い。
【００３５】
したがって、対話情報を構成する要求情報、予想入力情報又は分岐情報のうちの少なくとも一つがＡＰシナリオグループの外部に記述でき、ＡＰシナリオグループには、外部に記述された情報を特定するための特定情報を記述できるようにするとよい。このとき、制御手段は、特定情報に基づき、外部に記述された情報を読み出して、ユーザへの入力要求又は前記予想入力情報に基づく分岐を行う（請求項１６）。このようにすれば、ＡＰシナリオグループの記述がより簡単になる。
【００３６】
なお、例えば予想入力情報の中の一部のみが共通する場合もあり得る。例えば「はい」・「いいえ」は共通するが他の情報は共通しないことがある。そこで、ＡＰシナリオグループには、外部に記述された情報を特定するための特定情報に加え、要求情報、予想入力情報又は分岐情報を記述できるようにすることが望ましい。このとき、制御手段は、特定情報に基づき読み出した情報とＡＰシナリオグループに記述された情報とに基づいて、ユーザへの入力要求又は予想入力情報に基づく分岐を行う（請求項１７）。
【００３７】
また、要求情報、予想入力情報又は分岐情報のうちの少なくとも一つを、制御手段によって書換可能にすることが考えられる（請求項１８）。このようにすれば、対話の流れに応じて対話処理が動的に変更できることになり、より自然な対話を実現することができる。
【００３８】
ところで、ＡＰで必要となる情報には共通するものがある。したがって、入力情報を記憶しておくようにして必要に応じて入力情報を参照すればユーザ操作を削減することができる。つまり、請求項１９に示す構成を採用すれば、重複する情報の入力を避けることができ、ユーザにとって便利である。
【００３９】
【発明の実施の形態】
以下、本発明を具体化した一実施例を図面を参照して説明する。
図１は、本発明を具体化した対話型ユーザインタフェース装置（以下「対話装置」という。）１を備えた対話システムの概略構成を示すブロック図である。対話システムは、車両に搭載され、車室内の機器をユーザとの対話で制御するためのシステムであり、対話装置１、出力デバイス６１、入力デバイス６２、及びＡＰ７０を備えている。
【００４０】
対話装置１は、記憶装置１０と、制御部５０とを備えている。記憶装置１０は、各種データを記憶するものであり、例えばＲＡＭなどで実現してもよいし、ハードディスク装置などで実現してもよい。この記憶装置１０には、シナリオ２０と、属性辞書３０と、プロファイル４０とが記憶されている。制御部５０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、Ｉ／Ｏを有するいわゆるコンピュータシステムである。
【００４１】
シナリオ２０は、制御部５０の動作を記述したものである。また、属性辞書３０は、入力デバイス６２を介したユーザからの入力情報を分類するための辞書である。プロファイル４０は、ＡＰ７０で共通使用できる共有データを所定の書式で記述したものである。なお、属性辞書３０、プロファイル４０についての詳細は、動作説明において述べる。
【００４２】
出力デバイス６１としては、ディスプレイ装置６１ａ及び音声合成装置６１ｂが接続されている。ディスプレイ装置６１ａは、表示にてユーザへ情報の入力を要求したり、ＡＰ７０の処理結果を提示したりするためのものであり、音声合成装置６１ｂは、合成音声にてユーザへ情報の入力を要求したり、ＡＰ７０の処理結果を提示したりするためのものである。
【００４３】
一方、入力デバイス６２としては、操作スイッチ６２ａ及び音声認識装置６２ｂが接続されている。操作スイッチ６２ａは、ユーザがスイッチ操作にて情報を入力するためのものであり、音声認識装置６２ｂは、ユーザが音声にて情報を入力するためのものである。
【００４４】
ＡＰ７０は、所定機能を実現するプログラムである。本対話システムでは、３つのＡＰ７０が存在するが、以下の説明でＡＰ７０を区別する際、図１中に示すＡ〜Ｃの記号を付してＡ−ＡＰ７０，Ｂ−ＡＰ７０，Ｃ−ＡＰ７０と記述する。なお、以下の説明に具体性を持たせる意味で、Ａ−ＡＰ７０がルート案内を行うナビゲーションプログラム、Ｂ−ＡＰ７０がレストラン等の情報検索を行う検索プログラム、Ｃ−ＡＰ７０がＣＤの再生等を行うオーディオプログラムであるとする。
【００４５】
本実施例の対話システムでは、上述したシナリオ２０の構成に１つの特徴を有する。そこで次にシナリオ２０の構成について説明する。
シナリオ２０は、所定動作を示す動作情報が記述されたものである。制御部５０はこのシナリオ２０に従い動作する。つまり、制御部５０は、動作情報を解析し、それに応じた動作を行う。この動作情報には、ユーザとの対話を実現する対話情報が含まれる。
【００４６】
図２に示すように、シナリオ２０は、ルートシナリオ２１と、複数のＡＰシナリオグループ２２とから構成されている。ＡＰシナリオグループ２２は、Ａ〜Ｃの各ＡＰ７０で必要となる情報を取得するためのシナリオであり、Ａ〜Ｃの各ＡＰ７０にそれぞれ対応させて設けられる。図２にはＡ〜Ｃの各ＡＰ７０との対応を示すため、Ａ〜Ｃの記号を付してＡＰシナリオグループ２２を示した。一方、ルートシナリオ２１は、Ａ〜ＣのいずれかのＡＰ７０を起動し、そのＡＰ７０に対応するＡＰシナリオグループを読み出すためのシナリオである。
【００４７】
さらに、ＡＰシナリオグループ２２は、ＡＰルートシナリオ２２ａと、複数のＡＰシナリオ２２ｂとから構成されている。ＡＰシナリオ２２ｂには、上述した動作情報の一つである対話情報が記述されている。そして、１つのＡＰシナリオ２２ｂには、所定の話題に関連する対話情報が記述されている。対話情報は、装置側の質問文（要求情報）、それに対して予想されるユーザの回答（予想入力情報）、その回答に対する他の動作情報への分岐情報（分岐情報）で構成される。一方、ＡＰルートシナリオ２２ａは、ＡＰシナリオ２２ｂへの分岐を行うためのシナリオである。
【００４８】
次に、本実施例の対話システムの動作を説明する。
制御部５０が上述したシナリオ２０に従い動作することは既に述べた。つまり、制御部５０は、ルートシナリオ２１に基づく処理（以下「ルートシナリオ処理」という。）、又は、ＡＰシナリオグループ２２に基づく処理（以下「ＡＰシナリオグループ処理」という。）を実行する。ＡＰシナリオグループ処理には、さらにＡＰルートシナリオ２２ａに基づく処理（以下「ＡＰルートシナリオ処理」という。）と、ＡＰシナリオ２２ｂに基づく処理（以下「ＡＰシナリオ処理」という。）がある。ここでいうルートシナリオ処理が「アプリケーション分岐処理」に相当し、ＡＰシナリオグループ処理が「対話処理」に相当する。また、ＡＰシナリオグループ処理の中のＡＰルートシナリオ処理が「対話分岐処理」に相当し、一方、ＡＰシナリオ処理が「単位対話処理」に相当する。
【００４９】
ここで、まず原則的な処理の流れを説明する。
本対話システムが起動されると、ルートシナリオ処理が実行され、このルートシナリオ処理にて、ＡＰ７０が起動され、ＡＰ７０に対応するＡＰシナリオグループ２２が読み出される。そして、ルートシナリオ処理からＡＰシナリオグループ処理へ移行する。このＡＰシナリオグループ処理にて、ＡＰ７０で必要となる情報が取得される。ＡＰシナリオグループ処理が終了すると、ルートシナリオ処理が再び実行される。
【００５０】
ＡＰシナリオグループ処理が実行される場合、ＡＰルートシナリオ処理が最初に実行される。つまり、ルートシナリオ処理からはＡＰルートシナリオ処理へ移行する。そして、ＡＰルートシナリオ処理から各ＡＰシナリオ処理へ移行し、上述した対話情報に基づくＡＰシナリオ処理によってユーザとの対話を通じてＡＰ７０で必要となる情報が取得される。
【００５１】
続いて具体的な情報の取得とＡＰ７０の切り替え動作を説明する。なお、以下の説明は本実施例の特徴部分となる。したがって、（ア）〜（ク）として分説する。
（ア）最初に図３のフローチャートを用い、ＡＰシナリオグループ処理の単位での説明を行う。なお、以下の説明においては、音声合成装置６１ｂ及び音声認識装置６２ｂを介した音声対話が行われるものとする。ここではルート案内を行うＡ−ＡＰ７０が起動され、Ａ−ＡＰ７０に対応するＡＰシナリオグループ処理（以下適宜「Ａ−ＡＰシナリオグループ処理」という。）が実行された場合を考える。
【００５２】
まずステップ（以下「ステップ」を単に記号Ｓで示す。）１０００において、入力要求を行う。これは対話情報中の要求情報に基づくものである。例えば「目的地を入力して下さい」といった音声を音声合成装置６１ｂを介して出力するという具合である。これに対してユーザの発話があると、続くＳ１０１０にて、予想入力情報との比較を行う。
【００５３】
そして次のＳ１０２０では、その比較結果に基づき、予想入力情報に一致するか否かを判断する。ここで予想入力情報に一致すると判断された場合（Ｓ１０２０：ＹＥＳ）、分岐情報に基づく分岐処理を行う（Ｓ１０３０）。この分岐処理は、Ａ−ＡＰシナリグループ処理内のものである。このような入力要求処理・比較処理・分岐処理が以降でも繰り返され（不図示）、Ａ−ＡＰ７０で必要となる全ての情報が取得されると、当該情報をＡ−ＡＰ７０へ通知し、その後、Ａ−ＡＰシナリオグループ処理を終了する。一方、予想入力情報に一致しないと判断された場合（Ｓ１０２０：ＮＯ）、ルートシナリオ処理へ移行する。このとき、入力情報がルートシナリオ処理へ受け渡される。
【００５４】
ルートシナリオ処理のＳ２０００では、受け渡された入力情報に基づき、対応する他のＡＰ７０があるか否かを判断する。ここで対応する他のＡＰ７０があれば（Ｓ２０００：ＹＥＳ）、対応するＡＰ７０を起動し（Ｓ２０１０）、ＡＰ７０に対応するＡＰシナリオグループ２２を読み出す（Ｓ２０２０）。例えば入力情報が「名古屋市内のイタリア料理店を検索したい」というようなものであった場合、検索プログラムであるＢ−ＡＰ７０が起動され、Ｂ−ＡＰ７０に対応するＢ−ＡＰシナリオグループ２２が読み出される。その後、そのＢ−ＡＰシナリオグループ２２に基づくＡＰシナリオグループ処理（以下適宜「Ｂ−ＡＰシナリオグループ処理」という。）へ移行する。このとき、入力情報はさらに、Ｂ−ＡＰシナリオグループ処理へ受け渡される。一方、対応するＡＰ７０がなければ（Ｓ２０００：ＮＯ）、Ａ−ＡＰシナリオグループ処理中のＳ１０４０へ移行する。この場合、Ａ−ＡＰシナリオグループ処理では、再入力要求を行い（Ｓ１０４０）、Ｓ１０２０からの処理を繰り返す。
【００５５】
Ｂ−ＡＰシナリオグループ処理では、Ｓ３０００において、入力情報に基づく処理を行う。入力情報に基づく処理とは、予想入力情報との比較処理や、分岐情報に基づく分岐処理である。例えば入力情報が「名古屋市内のイタリア料理店を検索したい」というものであった場合は、「名古屋市内」・「イタリア料理」という情報と予想入力情報との比較を行い、その比較結果で分岐を行う。これによって、検索プログラムであるＢ−ＡＰ７０で必要となる情報の一部を取得する。そして、Ｓ３０１０では、ユーザからの終了指示があるか否かを判断する。ここで終了指示があった場合（Ｓ３０１０：ＹＥＳ）、制御部５０はＢ−ＡＰシナリオグループ処理を終了し、ルートシナリオ処理へ移行する。つまり、この場合はＡ−ＡＰシナリオグループ処理を再び実行することはない。一方、終了指示がなかった場合（Ｓ３０１０：ＮＯ）、Ａ−ＡＰシナリオグループ処理中のＳ１０００へ移行する。
【００５６】
（イ）ここで図３中のＡＰシナリオグループ処理について、図４のフローチャートを用いて詳細に説明する。
あるＡＰシナリオ処理（以下、ＡＰシナリオ処理（１）と示す）では、入力要求を行い（Ｓ４０００）、予想入力情報との比較を行い（Ｓ４０１０）、予想入力情報と一致すれば（Ｓ４０２０：ＹＥＳ）、そのＡＰシナリオ処理（１）内での分岐処理を行う（Ｓ４０３０）。予想入力情報と一致しない場合は（Ｓ４０２０：ＮＯ）、ＡＰルートシナリオ処理へ移行する。このとき、入力情報をＡＰルートシナリオ処理へ受け渡す。
【００５７】
ＡＰルートシナリオ処理では、対応できるＡＰシナリオがあるか否かを判断する（Ｓ５０００）。対応できるＡＰシナリオがあれば（Ｓ５０００：ＹＥＳ）、別のＡＰシナリオ処理（以下、ＡＰシナリオ処理（２）と示す。）へ移行する。このとき、入力情報はさらに、ＡＰシナリオ処理（２）に受け渡される。一方、対応できるＡＰシナリオがなければ（Ｓ５０００：ＮＯ）、ルートシナリオ処理へ移行する。このルートシナリオ処理への移行が、上述した図３中のＳ１０２０にて否定判断された場合である。つまり、詳しくは、予想入力情報に一致しない場合であって（Ｓ４０２０：ＮＯ）、さらに、対応できるＡＰシナリオが存在しないときに（Ｓ５０００：ＮＯ）、ルートシナリオ処理へ移行するのである。ルートシナリオ処理にて対応するＡＰがなければ（図３中のＳ２０００：ＮＯ）、再度ＡＰルートシナリオ処理が実行され、再入力要求が行われる（Ｓ５０１０）。その後、ＡＰシナリオ処理（１）中のＳ４０１０へ移行する。
【００５８】
ＡＰシナリオ処理（２）では、入力情報に基づく処理を行う（Ｓ６０００）。入力情報に基づく処理とは、予想入力情報との比較処理や、分岐情報に基づく分岐処理である。ＡＰシナリオ処理（２）が終了すると、ＡＰルートシナリオ処理を経て、ＡＰシナリオ処理（１）へ移行する。
【００５９】
（ウ）ところで、図３中のＳ３０１０では、ユーザの終了指示に基づき、Ａ−ＡＰシナリオグループ処理に移行するか又はルート処理へ移行して、途中で中断していたＡ−ＡＰシナリオグループ処理まで終了するかを判断している。これについて説明する。
【００６０】
上述したように、本対話システムでは、ＡＰシナリオグループ処理において予想入力情報以外の入力情報が入力されると（図３中のＳ１０２０：ＮＯ）、ルートシナリオ処理へ移行し、入力情報に応じて別のＡＰ７０が起動され（Ｓ２０１０）、他のＡＰシナリオグループ処理へ移行する。
【００６１】
したがって例えば図５に示すように、ルートシナリオ処理からＡ−ＡＰシナリオグループ処理に移行し（記号Ａ）、このＡ−ＡＰシナリオグループ処理の途中でＡ−ＡＰシナリオグループ処理を中断し、ルートシナリオ処理を経てＢ−ＡＰシナリオグループ処理に移行することができる（記号Ｂ）。さらに、このＢ−ＡＰシナリオグループ処理を中断し、ルートシナリオ処理を経てＣ−ＡＰ７０に対応するＡＰシナリオグループ処理（以下適宜「Ｃ−ＡＰシナリオグループ処理という。）に移行することもある（記号Ｃ）。これによって、対話の途中でＡＰ７０を切り替え、切り替え後のＡＰ７０で必要となる情報を取得することができる。そして、Ｃ−ＡＰシナリオグループ処理が終了すると、中断していたＢ−ＡＰシナリオ処理に移行できる構成となっている（記号Ｄ）。また、Ｂ−ＡＰシナリオグループ処理が終了すると、中断していたＡ−ＡＰシナリオグループ処理に移行できる構成となっている（記号Ｅ）。ただし、Ｃ−ＡＰシナリオグループ処理の終了後に、Ａ及びＢのＡＰ７０の実行が必要なくなることもある。また、Ａ及びＢのＡＰシナリオグループ処理においてどこまで対話が進行したかを、ユーザ自身把握できなくなる可能性もある。そのため、図３中のＳ３０１０に示すような分岐処理（図５中に「分岐」として示した）を設け、ユーザの終了指示があると、中断されていたＡ又はＢのＡＰシナリオグループ処理へ移行せず、ルートシナリオ処理に移行するようにした（記号Ｇ，Ｈ）。
【００６２】
（エ）次に、入力情報の受け渡しについて図６の説明図に基づき説明する。本対話システムでは、ユーザからの入力情報として複数の情報を含む情報群を入力できるようにした。例えば「名古屋市内のイタリア料理店を検索したい」という入力情報には、「名古屋市内」・「イタリア料理」・「検索」という複数の情報が含まれるという具合である。
【００６３】
図６に示すように、複数の情報からなる入力情報がユーザから入力されて処理の移行が生じた場合、それら複数の情報を受け渡す。例えば入力情報として情報１，情報２，情報３があり、これら情報の全てが予想入力情報と一致せずＡ−ＡＰシナリオグループ処理にて対応できない場合、ルートシナリオ処理へ情報１〜３が受け渡される。この場合、ルートシナリオ処理では、情報１〜３の少なくともいずれか一つの情報に基づいて、対応するＡＰ７０があるか否かを判断する。このとき例えば、情報２に基づき対応するＡＰ７０がＢ−ＡＰ７０と判断され、Ｂ−ＡＰシナリオグループ処理へ移行したものとする。その場合には、情報２に対し処理済みであるというフラグ情報を付加した入力情報（情報２の欄にハッチングを施して示した）を、Ｂ−ＡＰシナリオグループ処理へ受け渡す。これによって、Ｂ−ＡＰシナリオグループ処理では、情報１，３に基づく処理が実行される。
【００６４】
具体的に言えば、上述したように「名古屋市内のイタリア料理店を検索したい」という入力情報が入力された場合、例えば、情報１が「イタリア料理」、情報２が「検索」、情報３が「名古屋市内」となる。この場合は、ルートシナリオ処理において「検索」という情報２から検索プログラムであるＢ−ＡＰ７０が起動され、Ｂ−ＡＰシナリオグループ処理に移行する。そして、Ｂ−ＡＰ７０では、「イタリア料理」・「名古屋市内」という情報１，３を、Ｂ−ＡＰ７０で必要となる検索条件の少なくとも一部として取得するという具合である。
【００６５】
（オ）また、本対話システムでは、制御部５０が入力情報を上述した属性辞書３０に基づいて分類する。これは上述したように複数の情報がある場合の分岐先判断を行うためと、もう一つは入力情報の同一性を判断するためである。この属性辞書３０を、図７に模式的に例示した。
【００６６】
属性辞書３０には入力される情報に対応させるべき分類属性及び細分類属性が記憶されている。例えば「検索」という情報に対し、分類属性「０２７」と細分類属性「０１」が記憶されている。同様に、「サーチ」には分類属性「０２７」・細分類属性「０２」が、「探す」には分類属性「０２７」・細分類属性「０３」が対応している。また、「再生」・「聴く」・「かける」という情報には分類属性「０２９」が対応し、それぞれに細分類属性「０１」、「０２」、「０３」が対応している。さらに、「刈谷市」・「名古屋市」には分類属性「１０１」が対応し、細分類属性はそれぞれ「０１」、「０２」となっている。つまり、同一のカテゴリーに属する情報には同一の分類属性を割り付け、その同一の分類属性をさらに分類するのが細分類属性である。
【００６７】
本対話装置１の制御部５０は、利用者からの入力情報に対し、最初に属性辞書３０を参照し、分類属性・細分類属性を取得し、この分類属性・細分類属性を用いて上述した各種処理を実行する。具体的には、次の▲１▼から▲３▼に示すように動作する。
【００６８】
▲１▼まず、分類属性を用いて、ユーザからの入力情報を動作要求情報と当該動作要求情報に関連する付帯情報とに分ける。動作要求情報は、ユーザが所望するＡＰ７０の動作を示す情報である。これによって、例えばルートシナリオ処理においては、この動作要求情報を用いて最初に分岐処理を行う。例えば上述したような「名古屋市内のイタリア料理店を検索したい」という入力情報では、動作要求情報が「検索」であり、付帯情報が「イタリア料理」・「名古屋市内」となる。そのため「検索」という動作要求情報に基づき、検索プログラムであるＢ−ＡＰ７０が起動される。
【００６９】
▲２▼分類属性で判断することによって同一処理を実行する。例えば「レストランを検索したい」、「レストランをサーチする」、「レストランを探したい」といった入力情報に対し、動作要求情報の分類情報「０２７」を取得することによって同一の処理を行う。具体的には、ルートシナリオ処理において検索プログラムであるＢ−ＡＰ７０を起動し、Ｂ−ＡＰシナリオグループ処理へ移行する。また例えば、「ＣＤを再生したい」、「ＣＤを聴きたい」、「ＣＤをかけたい」といった入力情報に対し、動作要求情報の分類属性「０２９」を取得することによって同一の処理を行う。この場合、具体的には、ルートシナリオ処理においてオーディオプログラムであるＣ−ＡＰ７０を起動し、Ｃ−ＡＰシナリオグループ処理へ移行する。
【００７０】
▲３▼細分類属性を含めた判断を行い、分類属性が同じであっても異なる処理を実行する。例えば、「電話をかける」とは言うが、「電話を再生したい」や「電話を聴きたい」というような言い方は通常はしない。一方、「留守録を再生したい」や「留守録を聴きたい」と言うことはあるが、「留守録をかけたい」とはいうような言い方は一般的にしない。したがって、例えば自動車電話に関するＡＰを備える構成では、「かける」という情報が入力された場合には「何番におかけになりますか」といった対話を行う。逆に「再生」・「聴く」といった情報が入力された場合には「留守録メッセージを聴きますか」といった対話を行うことが考えられる。
【００７１】
（カ）次に、上述したＡＰシナリオ２２ｂにおける工夫について説明する。ＡＰシナリオ２２ｂには対話情報が記憶されていることは上述した。このとき、本実施例では、以下▲１▼及び▲２▼に示すような工夫をしている。
▲１▼対話情報としての要求情報・予想入力情報・分岐情報は、ＡＰシナリオ２２ｂに直接的に記述しなくてもよいようになっている。詳しくは、これらの情報のうちの少なくとも一つを外部の所定領域に記憶しておき、その所定領域に記憶された情報を特定するための特定情報をＡＰシナリオ２２ｂに記憶できるようになっている。制御部５０は、ＡＰシナリオ処理においてＡＰシナリオ２２ｂに特定情報が記述されている場合には、その特定情報にて特定される情報を外部から読み出し、その読み出した情報に基づいて動作する。
【００７２】
▲２▼上述した特定情報に加えて要求情報・予想入力情報・分岐情報を記述できるようになっている。この場合、制御部５０は、特定情報に基づいて外部から読み出した情報と、直接的に記述された情報との両方に基づいて動作する。
（キ）次に、上述したＡＰシナリオ２２ｂに基づくＡＰシナリオ処理の工夫について説明する。ＡＰシナリオ処理では、上述したように基本的に、入力要求を行い（Ｓ４０００）、予想入力情報との比較を行い（Ｓ４０１０）、予想入力情報と一致すれば（Ｓ４０２０：ＹＥＳ）分岐処理を行う（Ｓ４０３０）。このとき、分岐先処理で、次の比較処理・分岐処理に用いられる予想入力情報・分岐情報の書き換えを行うことができるようになっている。つまり、ＡＰシナリオ２２ｂには分岐先の動作情報として予想入力情報及び分岐情報の設定に関する情報が記述できるようになっており、制御部５０は、この設定情報に基づいて予想入力情報及び分岐情報を書き換える。これについて図８のフローチャートを用いて説明する。
【００７３】
図８は、あるＡＰシナリオ処理としての画面表示処理を示すものである。この処理は、画面Ａ又はＢの２つの画面のいずれか一方を表示するものであり、例えばインターネットからの情報のような時々刻々変化する情報を表示することを前提とし、画面の再表示（更新表示）を行うものである。
【００７４】
処理開始後、まず画面Ａが表示される（Ｓ７０００）。続いて予想入力情報の設定（Ｓ７０１０）、及び分岐先の設定が行われる（Ｓ７０２０）。具体的には、予想入力情報として「はい」・「画面Ｂ表示」が設定され、「はい」に対する分岐先にはラベルＡが設定され、一方、「画面Ｂ表示」に対する分岐先にはラベルＢが設定される。
【００７５】
次に入力要求処理を行う（Ｓ７０３０）。ここでは「再表示しますか」という入力要求を行う。そして、予想入力情報との比較を行い（Ｓ７０４０）、予想入力情報に一致すれば（Ｓ７０５０：ＹＥＳ）、設定された分岐先を判断して（Ｓ７０６０）移行する。つまり、画面Ａを表示した後の「再表示しますか」に対して「はい」が入力されれば、ラベルＡ、すなわちＳ７０００へ移行し、画面Ａの再表示を行う。一方、「画面Ｂ表示」が入力されれば、ラベルＢ、すなわちＳ７０７０へ移行する。一方、予想入力情報と一致しなければ（Ｓ７０５０：ＮＯ）、ＡＰルートシナリオ処理へ移行する（Ｓ７１００）。この処理が、図４中のＳ４０２０により否定判断された場合の処理に相当する。
【００７６】
Ｓ７０７０では、画面Ｂを表示する。そして、予想入力情報を設定し（Ｓ７０８０）、分岐先の設定を行う（Ｓ７０８０）。この場合、予想入力情報として「はい」・「画面Ａ表示」が設定され、「はい」に対する分岐先にはラベルＢが設定され、一方、「画面Ａ表示」に対する分岐先にはラベルＡが設定される。そして、Ｓ７０３０以降の処理を繰り返す。したがって、画面Ｂを表示した後の「再表示しますか」に対して「はい」が入力されると、ラベルＢ、すなわちＳ７０７０へ移行し、画面Ｂの再表示を行うことになる。一方、「画面Ａ表示」が入力されれば、ラベルＡ、すなわちＳ７０００へ移行する。
【００７７】
以上より、ユーザが「再表示しますか」という入力要求に対して「はい」という同一の情報を入力した場合であっても、その時に表示されている画面が再表示されるように動作を変えることができるのである。
（ク）また、本実施例では記憶装置１０に、ＡＰ７０で共通使用できる共有データを所定の書式で記述したプロファイル４０を記憶している。このプロファイル４０について説明する。
【００７８】
このプロファイル４０は、図９（ａ）に示すように、上述したルートシナリオ処理及びＡ〜Ｃの各ＡＰシナリオグループ処理からアクセス可能であり、制御部５０は、取得した入力情報を所定の書式でプロファイル４０に記憶しておく。なお、ＡＰシナリオグループ処理からアクセス可能であることは、ＡＰルートシナリオ処理・ＡＰシナリオ処理からアクセス可能であることを意味する。
【００７９】
この場合、図９（ｂ）に示すように、ＡＰシナリオ処理などでは、入力要求を行う前に要求データがプロファイル４０に記憶されているか否かを判断し（Ｓ８０００）、要求データがあれば（Ｓ８０００：ＹＥＳ）、プロファイル４０よりそのデータを取得して（Ｓ８０４０）、分岐処理（Ｓ８０３０）へ移行する。一方、要求データがなければ（Ｓ８０００：ＮＯ）、入力要求を行い（Ｓ８０１０）、予想入力情報との比較を行って（Ｓ８０２０）、その後、分岐処理（Ｓ８０３０）へ移行する。なお、比較処理（Ｓ８０２０）においてプロファイル４０に入力情報を記憶することが考えられる。
【００８０】
次に、本実施例の対話システムが発揮する効果を説明する。
本実施例の対話装置１では、Ａ〜Ｃの各ＡＰ７０の起動処理・各ＡＰ７０に対応するＡＰシナリオグループ２２の読み出し処理を、各ＡＰ７０に対応するＡＰシナリオグループ２２から分離し、ルートシナリオ２１にまとめて記述した（図２参照）。これによって、各ＡＰシナリオグループ２２には他のＡＰシナリオグループ２２への移行処理を記述する必要がなくなるため、ＡＰ７０の数がいくら多くなったとしても、ＡＰシナリオグループ２２の記述が簡単になる。すなわち、一連の対話の中でＡＰ７０の切り替えを行い、しかも、対話処理を実現するためのシナリオ、つまりＡＰシナリオグループ２２の記述が複雑にならない。
【００８１】
また、本実施例の対話装置１では、上記（ア）で説明したように、ＡＰシナリオグループ処理において処理できない入力情報が入力されると（図３中のＳ１０２０：ＮＯ）、ルートシナリオ処理を実行する。つまり、ＡＰシナリオグループ処理とルートシナリオ処理を切り替えて実行するのである。その結果、ユーザ入力情報の判断が迅速になると共に、ユーザの意図していないＡＰ７０が誤って起動されてしまう可能性を小さくできる。ＡＰシナリオグループ処理にも、またルートシナリオ処理にも該当する入力情報が入力された場合に、最初にＡＰシナリオグループ処理における判断がなされるためである。
【００８２】
さらに、ルートシナリオ処理にて対応ＡＰがない場合には（図３中のＳ２０００：ＮＯ）、中断したＡＰシナリオグループ処理に再び移行し、再入力要求を行う（Ｓ１０４０）。これにより、音声認識装置６２ｂを用いた場合など特に、周囲の雑音などによって予想入力情報以外の入力情報が入力されたと誤判断した場合にも対応でき、ユーザの意図しないＡＰ７０が誤って起動されてしまう可能性をさらに小さくできる。
【００８３】
また、本実施例の対話装置１では、ＡＰシナリオグループ２２を、ＡＰルートシナリオ２２ａと複数のＡＰシナリオ２２ｂで構成した（図２参照）。そして、上記（イ）で説明したように、予想入力情報以外の情報が入力された場合（図４中のＳ４０２０：ＮＯ）、ＡＰルートシナリオ処理にて、対応できるＡＰシナリオ２２ｂがあるか否かを判断し（Ｓ５０００）、ＡＰシナリオ２２ｂ間の遷移を行うようにした。つまり、ルートシナリオ２１とＡＰシナリオグループ２２との分離構成を、ＡＰシナリオグループ２２の内部にも適用した。その結果、各ＡＰシナリオ２２ｂに話題転換のための移行処理を記述する必要がなくなり、さらにＡＰシナリオグループ２２の記述が簡単になる。しかも、ＡＰシナリオ処理→ＡＰルートシナリオ処理→ＡＰシナリオ処理（場合によってはルートシナリオ処理）という具合に順に各処理を実行していくため（図４参照）、ユーザ入力情報の判断が迅速になり、ユーザの意図しない話題転換を極力少なくすることができる。ＡＰシナリオ処理とＡＰルートシナリオ処理を並行して実行したときと違って、ＡＰシナリオ処理で判断すべき入力情報がＡＰルートシナリオ処理で判断されることがなくなるためである。
【００８４】
さらにまた、本実施例の対話装置１では、上記（ウ）で説明したように、中断したＡＰシナリオグループ処理を再度実行するか、あるいは、ルートシナリオ処理へ移行するかを、ユーザからの終了指示に基づき判断する（図３中のＳ３０１０，図５参照）。これによって、例えばルート案内のための目的地を設定している途中でＣＤの再生を行った後、再び目的地の設定に移ることができ便利である。また、例えば目的地を設定している途中で例えばレストランなどを検索した結果、目的地が変更されてしまった場合には、目的地の設定処理を終了することもできる。
【００８５】
また、本実施例の対話装置１には、上記（エ）で説明したように、「名古屋市内」・「イタリア料理」・「検索」という複数の情報を含む「名古屋市内のイタリア料理店を検索したい」といった入力情報が入力できる。これらの入力情報は、ＡＰシナリオグループ処理とルートシナリオ処理との間で受け渡され、両方の処理で利用される（図６，図３参照）。また、ＡＰシナリオグループ処理内のＡＰルートシナリオ処理とＡＰシナリオ処理との間でも受け渡され、両方の処理で利用される（図４参照）。これによって、何度も同じ情報を入力する必要がなくなり、ユーザ入力操作が極力簡単になっている。加えて、上記（ク）で説明したように、各処理からアクセスされるプロファイル４０を記憶する構成とし（図９（ａ）参照）、各処理において共通使用できる共有データについては、入力要求を行う前にプロファイル４０から取得するようにした（図９（ｂ）参照）。この点においても、ユーザ入力操作の簡略化に寄与する。
【００８６】
しかも、上記（オ）で説明したように属性辞書３０（図７参照）に基づいて、ユーザからの入力情報に対し、分類属性・細分類属性を取得する。そして、この分類属性又は、必要に応じて細分類属性に基づき各処理を行う。このような分類属性・細分類属性を用いることでＡＰシナリオ２２ｂの記述が簡略化される。例えば「検索」・「サーチ」・「探す」といった記述に代え、例えば予想入力情報を「０２７」と記述すればよいためである。また、分類属性を用いることによって、ユーザ側は、「レストランを検索したい」・「レストランをサーチしたい」・「レストランを探したい」といった柔軟な情報入力ができるようになる。すなわち、固定的なコマンド入力から解放される。さらに細分類属性を用いることによって、様々な状況に応じた対話も実現できる。結果として、ユーザの直感的な情報入力が可能となる。
【００８７】
さらにまた、本実施例では、上記（カ）で説明したようにＡＰシナリオ２２ｂに特定情報を記述できるようにしたため、この点においても、ＡＰシナリオグループ２２を簡単にできる。また、上記（キ）で説明したように対話情報を構成する予想入力情報・分岐情報を書き換えられるようにしたため、より自然な対話を実現できる。
【００８８】
なお、対話装置１の制御部５０が「制御手段」に相当し、記憶装置１０が「辞書記憶手段」及び「共有データ記憶手段」に相当する。
以上、本発明はこのような実施例に何等限定されるものではなく、本発明の主旨を逸脱しない範囲において種々なる形態で実施し得る。
【００８９】
例えば、上記実施例では、音声合成装置６１ｂ及び音声認識装置６２ｂを用いた音声による対話を例に挙げているが、ディスプレイ装置６１ａ及び操作スイッチ６２ａを用いた対話についても適用できる。ただし、操作スイッチ６２ａを用いた情報入力では、選択式の情報入力が増えることが考えられるため、本対話システムの特徴を最大限に生かすためには、音声による対話に適用するのがよい。
【００９０】
また、上記実施例では、説明の都合上Ａ〜Ｃの３つのＡＰ７０をコントロールする構成としたが、上述した自動車電話を操作するためのＡＰをはじめ、テレビジョン受像機を操作するためのＡＰ、エア・コンディショナーを操作するためのＡＰ、オートクルーズが可能な車両にあってはオートクルーズを実現するためのＡＰなど、近年益々多彩となる各種のＡＰを切り替えてコントロールすることができることは言うまでもない。
【図面の簡単な説明】
【図１】実施例の対話システムの全体構成を示すブロック図である。
【図２】記憶装置に記憶されたシナリオの構成を示す説明図である。
【図３】ＡＰグループシナリオ処理とルートシナリオ処理との遷移を示すフローチャートである。
【図４】ＡＰシナリオ処理とＡＰルートシナリオ処理との遷移を示すフローチャートである。
【図５】ＡＰシナリオグループ処理終了時の分岐処理を示すための説明図である。
【図６】複数の情報を含む入力情報の受け渡しと処理を示す説明図である。
【図７】属性辞書の構成を模式的に例示する説明図である。
【図８】予想入力情報及び分岐情報の書き換え動作を説明するためのフローチャートである。
【図９】（ａ）はプロファイルと各処理との参照関係を示す説明図であり、（ｂ）は共有データ取得処理を示すフローチャートである。
【図１０】従来の対話装置及びその問題点を示すブロック図である。
【符号の説明】
１，１００…対話装置
１０…記憶装置
２０，２００…シナリオ
２１…ルートシナリオ
２２…ＡＰシナリオグループ
２２ａ…ＡＰルートシナリオ
２２ｂ…ＡＰシナリオ
３０…属性辞書
４０…プロファイル
５０…制御部
６１…入力デバイス
６１ａ…ディスプレイ装置
６１ｂ…音声合成装置
６２…出力デバイス
６２ａ…操作スイッチ
６２ｂ…音声認識装置
７０，７００…ＡＰ
【図１】
0003674453.tif 000002
【図２】
0003674453.tif 000003
【図３】
0003674453.tif 000004
【図４】
0003674453.tif 000005
【図５】
0003674453.tif 000006
【図６】
0003674453.tif 000007
【図７】
0003674453.tif 000008
【図８】
0003674453.tif 000009
【図９】
0003674453.tif 000010
【図１０】
0003674453.tif 000011