(57)【要約】【課題】シナリオの追加・削除が容易で、複数のイベントが同時入力された場合でも適切に処理内容を実行できる対話情報処理装置を提供する。【解決手段】各ネットのネットステータスを記憶するネット状態テーブル１０、｛処理項目，当該処理項目の入力ネット，及び当該処理項目の出力ネット｝の組を記憶する処理項目テーブル１２、各処理項目に対応して設けられ当該処理項目の処理内容を実行しその結果に応じて出力ネットのネットステータスの更新を行う処理項目実行モジュール４−ｉ、処理項目テーブル１２内の全ての処理項目を順次選択し、選択した処理項目に対応する処理項目実行モジュール４−ｉを実行する選択実行手段１３、並びにネット状態テーブル１２の何れかのネットステータスが変化した場合に選択実行手段１３により各処理項目実行モジュール４−ｉを実行させる状態変化判定手段１４を備えた。【選択図】        図１
2006268332.tif 000002
【特許請求の範囲】
【請求項１】
予め用意された複数の処理項目に対して、入力イベントに対応して対話的に各処理項目を適宜選択し実行する対話情報処理装置であって、
前記各処理項目間の情報伝達関係を指定するネットについて、前記各ネットを介して伝達される状態情報を表す変数（以下「ネットステータス」という。）をテーブルとして記憶するネット状態テーブル；
前記処理項目、当該処理項目の入力側に接続するネット（以下「入力ネット」という。）、及び当該処理項目の出力側に接続するネット（以下「出力ネット」という。）、の組をテーブルとして記憶する処理項目テーブル；
前記各処理項目に対応して設けられ、前記入力ネットのネットステータスが活性状態にある場合には当該処理項目の処理内容を実行しその結果に応じて前記出力ネットのネットステータスの更新を行う、複数の処理項目実行モジュール；
前記処理項目テーブル内の全ての前記処理項目を順次選択し、選択した前記処理項目の前記入力ネットのネットステータスを前記ネット状態テーブルから読み出し、当該処理項目に対応する前記処理項目実行モジュールに入力して実行させる選択実行手段；
並びに、前記ネット状態テーブルの何れかのネットステータスが変化した場合に前記選択実行手段により前記各処理項目実行モジュールを実行させる状態変化判定手段；
を備えたことを特徴とする対話情報処理装置。
【請求項２】
入力イベントが入力された場合、当該入力イベントに対応する前記ネットのネットステータスを活性状態に更新する初期ネット状態更新手段；
を備えたことを特徴とする請求項１記載の対話情報処理装置。
【請求項３】
前記初期ネット状態更新手段は、複数の入力イベントが同時に入力された場合、当該各入力イベントに対応する前記ネットのネットステータスを各々更新することを特徴とする請求項２記載の対話情報処理装置。
【請求項４】
使用者の操作により入力イベントを発生させる入力装置を備え、
前記初期ネット状態更新手段は、
各入力イベントと所定の認識情報との対応関係を記憶する認識辞書；
前記入力イベントに対して前記認識辞書を参照し、対応する認識情報を出力する入力イベント認識手段；
及び、前記入力イベント認識手段が出力する認識情報に対応する前記ネットのネットステータスを当該認識情報により指定される状態に更新する認識情報入力手段；
を備えていることを特徴とする請求項２又は３記載の対話情報処理装置。
【請求項５】
コンピュータに読み込ませて実行することにより、コンピュータを請求項１乃至４の何れか一に記載の対話情報処理装置として機能させるプログラム。
【請求項６】
予め用意された複数の処理項目に対して、前記各処理項目間の情報伝達関係を指定するネットについて、前記各ネットを介して伝達される状態情報を表す変数（以下「ネットステータス」という。）をテーブルとして記憶するネット状態テーブル；
前記処理項目、当該処理項目の入力側に接続するネット（以下「入力ネット」という。）、及び当該処理項目の出力側に接続するネット（以下「出力ネット」という。）、の組をテーブルとして記憶する処理項目テーブル；
並びに、前記各処理項目に対応して設けられ、前記入力ネットのネットステータスに対する当該処理項目の処理内容を実行しその結果に応じて前記出力ネットのネットステータスの更新を行う、複数の処理項目実行モジュール；
を備えたシステムにおいて、入力イベントに対応して対話的に各処理項目を適宜選択し実行する対話情報処理方法であって、
入力イベントが入力された場合、前記ネット状態テーブルの各ネットのうち、当該入力イベントに対応するネットのネットステータスを更新する初期ネット状態更新ステップ；
及び、入力イベントに対して前記処理項目実行モジュールを適宜選択し実行する処理項目実行ステップ；
を備え、
前記処理項目実行ステップにおいては、
ネット状態テーブルの何れかのネットステータスが変化を検出するネット状態変化検出ステップ；
及び、ネットステータスの変化が検出された場合には前記処理項目テーブル内の全ての前記処理項目を順次選択し、選択した前記処理項目の前記入力ネットのネットステータスを前記ネット状態テーブルから読み出し、当該処理項目に対応する前記処理項目実行モジュールに入力して実行させる選択実行ステップ；
を前記ネットステータスの変化が検出されなくなるまで繰り返して実行すること
を特徴とする対話情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声等により使用者と対話しながら情報処理を行う対話情報処理技術に関する。
【背景技術】
【０００２】
近年、カーナビゲーション装置や家庭用の種々の機器において、対話型のユーザインタフェースを有するものが研究開発されてきている。かかる対話型のユーザインタフェースにおいて、使用者との対話情報処理を行う機器を対話情報処理装置という。
【０００３】
対話情報処理装置においては、使用者との対話を通じて情報を取得し、その情報に基づく処理を行う。例えば、使用者の発話内容を音声認識装置により認識し、それに対して音声合成装置により回答や問いかけを行うことを繰り返し、使用者の意図に沿った機器の操作を行うという具合である。なお、ここにいう「対話」とは、音声による対話のみならず、スイッチ操作による対話や画像による対話等も含まれる。
【０００４】
対話情報処理装置においては、使用者に違和感を持たせることなく、自然な対話を行うことが必要とされる。すなわち、使用者側の発話選択の自由度を高くすることが重要となる。
【０００５】
そこで、各種機器の操作を行うためのアプリケーションプログラム（実行モジュール。以下「ＡＰ」という。）と対話処理を行うプログラム（対話モジュール）とを独立させ、ＡＰに対応して用意されたシナリオに基づき対話処理を行う対話情報処理装置が開発されている（特許文献１，２参照）。
【０００６】
特許文献１記載の対話情報処理装置では、対話処理の記述自体をＡＰから独立させると共に、ＡＰの処理手順に対話の流れが左右されないようにして、使用者側の自由度が高い対話を実現している。
【０００７】
また、特許文献２記載の対話情報処理装置では、更に、シナリオを階層構造とすることによって、使用者の発話による異なるＡＰへの移行を自然に行う技術が記載されている。
【０００８】
活性状態は特許文献２記載の対話情報処理装置におけるシナリオの階層構造を表す図である。シナリオは、３つのＡＰに対応してＡ−ＡＰシナリオグループ、Ｂ−ＡＰシナリオグループ、及びＣ−ＡＰシナリオグループが用意されている。そして、各ＡＰシナリオグループと分離して、アプリケーション分岐処理を行うルートシナリオが設けられている。ルートシナリオにおけるアプリケーション分岐処理は、使用者からの入力情報に応じてＡＰを起動すると共に、そのＡＰに対応するＡＰシナリオグループを呼び出すものである。これにより、あるＡＰシナリオグループにおいて処理を実行中に、使用者が他のＡＰシナリオグループの処理へ移るように指示した場合、ルートシナリオへ移行すればよいため、異なるＡＰへの移行を自然に行うことが可能となる。
【０００９】
また、アプリケーション分岐処理をＡＰシナリオグループから独立させてルートシナリオにまとめることによって、ＡＰ数がいくら多くなっても、各ＡＰシナリオグループには他のＡＰシナリオグループへの移行処理を記述する必要がなくなるため、ＡＰシナリオグループの記述が簡単となる。
【特許文献１】特開２００１−５６６９４号公報
【特許文献２】特開２００１−２９６９４３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述の従来の対話情報処理装置においては、新たなアプリケーションを追加する場合、そのアプリケーションに関するＡＰシナリオグループを作成するとともに、他のＡＰシナリオグループとの間のアプリケーション分岐処理の定義をルートシナリオに追加する必要がある。従って、シナリオの追加・削除の作業が複雑である。
【００１１】
また、使用者の発話により複数のＡＰに対して同時に指示が入力された場合、複数のＡＰを同時に制御することはできない。すなわち、あるＡＰシナリオグループ（Ａ）の処理を実行中に、使用者から他のＡＰシナリオグループ（Ｂ）の処理についての指示が入力された場合、対話情報処理装置はＡＰシナリオグループ（Ａ）の処理を中断して、ＡＰシナリオグループ（Ｂ）の処理へ移行しなければならない。そして、次に使用者からＡＰシナリオグループ（Ａ）の処理内容についての発話が入力されると、対話情報処理装置は、ＡＰシナリオグループ（Ｂ）の処理を中断してＡＰシナリオグループ（Ａ）の処理へ移行するが、この場合、ＡＰシナリオグループ（Ａ）の処理は最初から実行されるため、使用者が先に入力した指示内容を再度繰り返して入力する必要がある。従って、使用者にとっての利便性の点で問題がある。
【００１２】
そこで、本発明の目的は、シナリオの追加・削除を容易に行うことが可能であると共に、使用者から複数のイベントが同時に入力された場合にも、適切にそれに対する処理内容を同時に実行することが可能な対話情報処理技術を提供することにある。
【課題を解決するための手段】
【００１３】
本発明に係る対話情報処理装置の第１の構成は、予め用意された複数の処理項目に対して、入力イベントに対応して対話的に各処理項目を適宜選択し実行する対話情報処理装置であって、前記各処理項目間の情報伝達関係を指定するネットについて、前記各ネットを介して伝達される状態情報を表す変数（以下「ネットステータス」という。）をテーブルとして記憶するネット状態テーブル；前記処理項目、当該処理項目の入力側に接続するネット（以下「入力ネット」という。）、及び当該処理項目の出力側に接続するネット（以下「出力ネット」という。）、の組をテーブルとして記憶する処理項目テーブル；前記各処理項目に対応して設けられ、前記入力ネットのネットステータスが活性状態にある場合には当該処理項目の処理内容を実行しその結果に応じて前記出力ネットのネットステータスの更新を行う、複数の処理項目実行モジュール；前記処理項目テーブル内の全ての前記処理項目を順次選択し、選択した前記処理項目の前記入力ネットのネットステータスを前記ネット状態テーブルから読み出し、当該処理項目に対応する前記処理項目実行モジュールに入力して実行させる選択実行手段；並びに、前記ネット状態テーブルの何れかのネットステータスが変化した場合に前記選択実行手段により前記各処理項目実行モジュールを実行させる状態変化判定手段；を備えたことを特徴とする。
【００１４】
入力イベントが入力され、それに対応してネット状態テーブルの何れかのネットのネットステータスが変更された場合、まず状態変化判定手段がネットステータスの変化を検出し、選択実行手段により各処理項目実行モジュールを実行する。
【００１５】
選択実行手段は、処理項目テーブルから処理項目を順次読み出し、その処理項目の入力ネットのネットステータスをネット状態テーブルから取得する。そして、取得したネットステータスを当該処理項目に対応する処理項目実行モジュールに入力し実行させる。
【００１６】
各処理項目実行モジュールは、入力ネットのネットステータスが活性化（アサート）状態にある場合にはその処理項目に関する処理を実行する。そして、その実行結果より必要に応じて、ネット状態テーブル内の出力ネットのネットステータスを更新する。一方、入力ネットのネットステータスが非活性（ネゲート）状態の場合には、処理項目に関する処理は実行されない。
【００１７】
選択実行手段が処理項目テーブル内のすべての処理項目について、対応する処理項目実行モジュールの実行が終了すると、状態変化判定手段は再びネット状態テーブル内のネットステータスの変化を検出し、変化が検出された場合には上述の操作を繰り返す。
【００１８】
最終的に状態変化判定手段によるネット状態テーブル内のネットステータスの変化が検出されなくなった状態（定常状態）に達すると、対話情報処理が終了する。
【００１９】
このように、入力イベントに対して対応するネットステータスを活性化（アサート）し、ネット状態テーブルのネットステータスが安定化するまで、ネットステータスに応じて全処理項目実行モジュールの実行を繰り返すことにより、複数の入力イベントが同時に入力された場合でも、それらに対応する処理項目を正しく実行することができる。
【００２０】
また、新たに処理項目を追加したい場合には、処理項目テーブルにその処理項目及び入出力ネットに追加し、必要に応じてネット状態テーブルに新たに生じるネットを追加するだけでよい。また、処理項目を削除したい場合には、処理項目テーブルにその処理項目及び入出力ネットに追加し、必要に応じてネット状態テーブルから不要なネットを削除するだけでよい。従って、処理項目の追加・削除が極めて容易であり、処理項目の変化に柔軟に対応することが可能となる。
【００２１】
ここで、前記ネットステータスは、複数の状態を採ることが可能である。例えば、活性状態及び非活性状態の２状態であってもよいし、それ以上の状態を採るようにしてもよい。
【００２２】
本発明に係る対話情報処理装置の第２の構成は、前記第１の構成において、入力イベントが入力された場合、当該入力イベントに対応する前記ネットのネットステータスを活性状態に更新する初期ネット状態更新手段；を備えたことを特徴とする。
【００２３】
この構成によれば、入力イベントに対して初期ネット状態更新手段が活性状態に更新する。これがトリガーとなって、上述のように、ネット状態テーブルのネットステータスが安定化するまで、全処理項目実行モジュールの実行を繰り返す。これにより、入力イベントに対する処理項目を実行することができる。
【００２４】
本発明に係る対話情報処理装置の第３の構成は、前記第２の構成において、前記初期ネット状態更新手段は、複数の入力イベントが同時に入力された場合、当該各入力イベントに対応する前記ネットのネットステータスを各々更新することを特徴とする。
【００２５】
この構成により、複数の入力イベントが同時に入力された場合にも、それに対応する処理項目をそれぞれ実行することができる。
【００２６】
本発明に係る対話情報処理装置の第４の構成は、前記第２又は３の構成において、使用者の操作により入力イベントを発生させる入力装置を備え、前記初期ネット状態更新手段は、各入力イベントと所定の認識情報との対応関係を記憶する認識辞書；前記入力イベントに対して前記認識辞書を参照し、対応する認識情報を出力する入力イベント認識手段；及び、前記入力イベント認識手段が出力する認識情報に対応する前記ネットのネットステータスを当該認識情報により指定される状態に更新する認識情報入力手段；を備えていることを特徴とする。
【００２７】
この構成によれば、入力装置から入力イベントが出力されると、入力イベント認識手段が入力イベントを認識し、認識情報を出力する。そして、認識情報入力手段は、この認識情報に応じて、適宜ネットのネットステータスを当該認識情報により指定される状態に更新する。
【００２８】
ここで、入力装置としては、音声入力装置、画像入力装置（カメラ、スキャナー等）、タッチパネル、キー入力装置、ポインティングデバイス等の、コンピュータで使用される各種入力機器を使用することができる。入力イベントとしては、音声信号、画像信号、キー入力信号等を挙げることができる。認識情報としては、例えば、単語情報、ＯＮ／ＯＦＦ情報等などが挙げられる。これにより、入力イベントに対する処理項目を実行することができる。
【００２９】
本発明に係るプログラムは、コンピュータに読み込ませて実行することにより、コンピュータを前記第１乃至４の何れか一の構成の対話情報処理装置として機能させることを特徴とする。
【００３０】
本発明に係る対話情報処理方法は、予め用意された複数の処理項目に対して、前記各処理項目間の情報伝達関係を指定するネットについて、前記各ネットを介して伝達される状態情報を表す変数（以下「ネットステータス」という。）をテーブルとして記憶するネット状態テーブル；前記処理項目、当該処理項目の入力側に接続するネット（以下「入力ネット」という。）、及び当該処理項目の出力側に接続するネット（以下「出力ネット」という。）、の組をテーブルとして記憶する処理項目テーブル；並びに、前記各処理項目に対応して設けられ、前記入力ネットのネットステータスに対する当該処理項目の処理内容を実行しその結果に応じて前記出力ネットのネットステータスの更新を行う、複数の処理項目実行モジュール；を備えたシステムにおいて、入力イベントに対応して対話的に各処理項目を適宜選択し実行する対話情報処理方法であって、入力イベントが入力された場合、前記ネット状態テーブルの各ネットのうち、当該入力イベントに対応するネットのネットステータスを更新する初期ネット状態更新ステップ；及び、入力イベントに対して前記処理項目実行モジュールを適宜選択し実行する処理項目実行ステップ；を備え、前記処理項目実行ステップにおいては、ネット状態テーブルの何れかのネットステータスが変化を検出するネット状態変化検出ステップ；及び、ネットステータスの変化が検出された場合には前記処理項目テーブル内の全ての前記処理項目を順次選択し、選択した前記処理項目の前記入力ネットのネットステータスを前記ネット状態テーブルから読み出し、当該処理項目に対応する前記処理項目実行モジュールに入力して実行させる選択実行ステップ；を前記ネットステータスの変化が検出されなくなるまで繰り返して実行することを特徴とする。
【発明の効果】
【００３１】
以上のように、本発明によれば、入力イベントに対して対応するネットステータスを活性化（アサート）し、ネット状態テーブルのネットステータスが安定化するまで、全処理項目実行モジュールの実行を繰り返すことにより、複数の入力イベントが同時に入力された場合でも、それらに対応する処理項目を正しく実行することが可能となる。
また、各処理項目の実行制御を処理項目テーブル及びネット状態テーブルを用いて行う構成としたことにより、処理項目の追加・削除が極めて容易であり、処理項目の変化に柔軟に対応することが可能となる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【実施例１】
【００３３】
図１は本発明の実施例１に係る対話情報処理装置１の構成を表すブロック図である。対話情報処理装置１は、初期ネット状態更新手段である対話認識モジュール２と、対話処理エンジン３と、処理実行モジュール集合４と、入力装置５と、出力装置６とを備えている。
【００３４】
入力装置５は、使用者の操作により入力イベントを発生させる装置である。本実施例では、入力装置５としてマイクが使用されているものとする。
【００３５】
出力装置６は、使用者により入力される指示に応じて実際に各種の処理を行う装置である。例えば、音声出力処理を行うスピーカー、室内の空調を行うエアコン、窓の開閉を行うモータなどである。
【００３６】
処理実行モジュール集合４は、予め用意された各種処理項目に対応して設けられた処理項目実行モジュール４−１，４−２，…，４−ｎの集合である。各処理項目実行モジュール４−１，４−２，…，４−ｎは、各種処理項目に対する演算・制御処理を実行するモジュールである。
【００３７】
ここで、「処理項目」とは、入力イベントに対応して各種機器（出力装置６）において実際に行われる処理の項目をいう。例えば、「エアコンをつけて」という入力イベントに対して「エアコンをつけます」と発語する処理や実際にエアコンを作動させる処理、「窓を閉めて」という入力イベントに対して「窓を閉めます」と発語する処理や実際に窓を閉めるモータを作動させる処理をいう。
【００３８】
これらの処理項目間には、遷移順序関係が定義されている。例えば、「下げて」という入力イベントに対して「エアコンか窓か？」と発語する処理項目ＴＴＳ１の次には、次の入力イベントが「エアコン」、「窓」又はその他の何れかであるかを判定する処理項目ＱＢ１がくるという具合に遷移順序関係が定義されている（図２参照）。この遷移順序関係が定義された各処理項目について、処理項目間の情報伝達関係を指定するものを「ネット」という。例えば、上記例では、処理項目ＴＴＳ１と処理項目ＱＢ１がネットで接続されている。ネットは方向性を有する。処理項目の入力側に接続するネットを「入力ネット」、処理項目の出力側に接続するネットを「出力ネット」という。すなわち、処理項目の集合をＮ、ネットの集合をＥとすると、Ｇ＝（Ｎ，Ｅ）は有向グラフを構成する。
【００３９】
各ネットは活性（アサート）状態と非活性（ネゲート）状態との２状態を有する（必要に応じて、活性状態を更に２以上の状態に定義してもよい）。このネットの状態のことを「ネットステータス」という。各処理項目実行モジュール４−１，４−２，…，４−ｎは、入力ネットのネットステータスが活性状態にある場合には当該処理項目の処理内容を実行する。そして、その実行結果に応じて出力ネットのネットステータスの更新を行う。
【００４０】
対話認識モジュール２は、マイク等の入力装置５から入力される使用者の発話等の入力イベントを認識し、所定の形式の認識情報として出力する装置である。対話認識モジュール２は、認識辞書７、入力イベント認識手段８、及び認識情報入力手段９を備えている。認識辞書７は、単語、文章、音声波形等の使用者の発話を認識するための各種認識情報を記憶する。入力イベント認識手段８は、入力装置５から入力される入力イベントを、認識辞書７を参照しながら認識し、認識情報として出力する。認識情報入力手段９は、入力イベント認識手段８から出力される認識情報に基づき、後述するネット状態テーブル１０を書き換える。
【００４１】
対話処理エンジン３は、ネット状態テーブル１０、前状態ネット状態テーブル１１、処理項目テーブル１２、選択実行手段１３、及び状態変化判定手段１４を備えている。
【００４２】
ネット状態テーブル１０は、各ネットのネットステータスをテーブルとして記憶する。前状態ネット状態テーブル１１は、各処理項目に関する処理が一巡実行され各ネットのネットステータスが更新された場合、その更新前の各ネットのネットステータスを記憶する。尚、前状態ネット状態テーブル１１は、すべてのネットの前状態のネットステータスを記憶するようにしてもよいが、変更されたネットのみを記憶するようにしてもよい。また、ネット状態テーブル１０と併合して１つのテーブルとして記憶するように構成してもよい。各処理項目実行モジュール４−１，４−２，…，４−ｎは、ネットステータスの更新を行う場合には、このネット状態テーブル１０のネットステータスを更新する。
【００４３】
処理項目テーブル１２は、｛処理項目，当該処理項目の入力側に接続する入力ネット，当該処理項目の出力側に接続する出力ネット｝の組をテーブルとして記憶する。
【００４４】
選択実行手段１３は、処理項目テーブル１２内の全ての処理項目を順次選択し、選択した処理項目の入力ネットのネットステータスをネット状態テーブル１０から読み出す。そして、当該処理項目に対応する処理項目実行モジュール４−ｉにネットステータスを入力して実行させる。
【００４５】
状態変化判定手段１４は、ネット状態テーブル１０の何れかのネットステータスが変化した場合に選択実行手段１３により各処理項目実行モジュール４−１，４−２，…，４−ｎを実行させる。
【００４６】
ここで、本実施例の対話情報処理装置１における処理項目とネットの関係について、実例に沿ってより具体的に説明しておく。図２は、実施例１に係る対話情報処理装置１における対話シナリオ構造の一例を表す図である。この対話シナリオは、自動車における空調を対話方式により実行する例を示している。
【００４７】
図２において、処理項目はＦＣＴ，ＱＢ，ＴＴＳ，ＳＴＳ，ＢＲ，ＴＲＭの記号が付された部分である。
【００４８】
「ＦＣＴ」は、音声認識用のＸＭＬ(Extensible Markup Language)形式で記述された指定のキーワードを入力音声から抽出する処理項目を表している。各ＦＣＴに付されている「＜ＦＣＴ＞」は、当該ＦＣＴに入るためのコーパス（キーワード）を表している。実際には「ＦＣＴ」は対話認識モジュール２（初期ネット状態更新手段）により実行される処理項目であり、この対話シナリオのカテゴリーに入るためのキーワードとして扱われる。
【００４９】
「ＱＢ」は、指定のＸＭＬを利用して音声認識より音声単語を抽出し対話のフローを分岐させる処理を表す。
【００５０】
「ＴＴＳ（Text to Speech）」は、テキスト音声合成処理を表す。これは、出力装置６（スピーカー）により指定された文章を読み上げる処理に相当する。各ＴＴＳに付されている「＜ＳＰ＞」は、当該ＴＴＳにおいて読み上げるテキストの内容を表している。
【００５１】
このＴＴＳとＱＢを併用して質問を記述することができる。例えば、ＴＴＳ１において「エアコンか窓か？」と発話させ、これに対する認識を行うＱＢ１では、想定される答え方（「エアコン」、「窓」）を入れたＸＭＬファイルを指定することにより質問に対する回答の認識処理が実現されている。
【００５２】
「ＳＴＳ」は内部のステータス情報を表す。例えば、ＳＴＳ１は窓が開いた状態にあるか否かの内部ステータス情報、ＳＴＳ２はエアコンがＯＮ状態か否かの内部ステータス情報を表している。
【００５３】
「ＢＲ」は、音声認識以外の内部のステータス情報によって対話のフローを分岐させる処理を表す。例えば、ＢＲ１では、エアコンの電源がＯＮ状態かＯＦＦ状態かによって会話の内容を変更させている。
【００５４】
「ＴＲＭ」は終端処理を表す。すなわち、ＴＲＭにおいて、この対話シナリオは終了する。
【００５５】
各処理項目（ＦＣＴ，ＱＢ，ＴＴＳ，ＳＴＳ，ＢＲ，ＴＲＭ）の間を結ぶ線はネットを表す。各ネットに付された番号はネット番号を表す。以下、ネット番号ｘのネットを「ＮＥＴｘ」と記す。「ＪＡ」及び「ＪＣ」はネットの接続点を表す。
【００５６】
例えば、最初の入力イベントとして「下げて」というキーワードが入力された場合、対話認識モジュール２により処理項目ＦＣＴ６が実行され、ＮＥＴ６が活性化される。続いて、処理項目ＴＴＳ１において「エアコンか窓か？」という発話処理が行われ、ＮＥＴ６が非活性化されるとともにＮＲＴ１９が活性化される。それに伴い、ＮＥＴ２０が活性化される。そして処理項目ＱＢ１が実行されて入力イベントして「エアコン」，「窓」，その他の何れが入力されたかを判定する。それに応じて対話のフローを分岐させる処理が行われ、ＮＥＴ１９，２０が非活性化されるとともにＮＲＴ２７，３１，２９の何れかが活性化される。このようにして、図２の対話シナリオに従って対話処理が実行される。
【００５７】
図３は、処理項目テーブル１２の構造を表す図である。図３においては、一例として、図２の対話シナリオに対する処理項目テーブル１２の構造を示した。
【００５８】
「処理項目」の欄には、図２の各処理項目に対応する処理項目実行モジュール４−ｉを呼び出すためのポインタが格納されている。尚、ここではネットの接続点「ＪＡ」も、何も実行しない処理項目として、仮想的に一つの処理項目として取り扱っている。
【００５９】
「入力ネット」の欄には、当該処理項目に対する入力ネットの指定子が格納されている。すなわち、ネット状態テーブル１０における当該入力ネットのネットステータスを指すポインタが格納されている。
【００６０】
「出力ネット」の欄には、当該処理項目に対する出力ネットの指定子が格納されている。すなわち、ネット状態テーブル１０における当該出力ネットのネットステータスを指すポインタが格納されている。
【００６１】
「コーパス」の欄には、その処理項目におけるキーワードが格納されている。例えば、処理項目ＦＣＴ１では、コーパスとして「エアコンをつけて」が格納されている。また、処理項目ＱＢ１では、コーパスとして「窓」及び「エアコン」が格納されている。
【００６２】
図４は、ネット状態テーブル１０の構造を表す図である。尚、図１においては、理解を容易にするためにネット状態テーブル１０と前状態ネット状態テーブル１１を分けて記載しているが、図４では、ネット状態テーブル１０及び前状態ネット状態テーブル１１を併合して１つのテーブルとしている。「ネットステータス」の欄には、左欄のネットのネットステータスが格納されている。ここでは、ネットステータスは「０」が非活性状態、「１」が活性状態を表すものとする。「変更フラグ」の欄には、ネットステータスが変更されたか否かを示す変更フラグが格納されている。変更フラグが「０」が未変更、「１」が変更を表す。
【００６３】
以上のように構成された実施例１に係る対話情報処理装置１について、以下その動作を説明する。
【００６４】
図５は対話認識モジュール２の動作を表すフローチャートである。
【００６５】
ステップＳ１において、使用者の発話等により入力装置５から入力イベント認識手段８へ入力イベントが入力される。
【００６６】
例えば、使用者の発話として入力装置５に「エアコンをつけて」と入力したとする。その場合、入力装置５はその音声波形を入力イベント認識手段８に出力する。
【００６７】
ステップＳ２において、入力イベント認識手段８は、認識辞書７を参照することによって入力イベントを認識し、その認識結果を認識情報として認識情報入力手段９へ出力する。
【００６８】
例えば、上記例で「エアコンをつけて」という音声波形が入力イベントとして入力された場合、入力イベント認識手段８は、認識辞書７を参照し、その音声波形を解析し「エアコンをつけて」というテキスト情報を認識情報として出力する。
【００６９】
ステップＳ３において、認識情報入力手段９は、処理項目テーブル１２を参照し、当該認識情報に一致するキーワードを有する処理項目ＦＣＴを探索する。そして、キーワードが一致した処理項目の出力ネットについて、ネット状態テーブル１０内のネットステータスを活性状態に変更するとともに、その変更フラグを１とする。
【００７０】
また、認識情報入力手段９は、入力ネットが活性状態にある処理項目ＱＢのうち、当該認識情報に一致するキーワードを有する処理項目ＱＢを探索する。そして、探索により検出された処理項目ＱＢの出力ネットのうちキーワードが一致した枝の出力ネットについて、ネット状態テーブル１０内のネットステータスを活性状態に変更するとともに、その変更フラグを１とする。
【００７１】
例えば、「エアコンをつけて」というテキスト認識情報が認識情報入力手段９に入力された場合、認識情報入力手段９は処理項目ＦＣＴ１の出力ネットであるＮＥＴ１を活性状態とする。また、処理項目ＱＢ１の入力ネットであるＮＥＴ２０が活性状態の場合に、「窓」というテキスト認識情報が認識情報入力手段９に入力された場合、認識情報入力手段９は処理項目ＱＢ１の「窓」に相当する枝の出力ネットであるＮＥＴ３１を活性状態とする。
【００７２】
以上のステップＳ１〜Ｓ３の処理が終了すると、対話認識モジュール２はすべての処理を終了し、再び入力イベントが入力されるのを待つ状態となる。
【００７３】
次に、対話処理エンジン３と各処理項目実行モジュール４−ｉの動作について説明する。図６は、対話処理エンジン３と各処理項目実行モジュール４−ｉの動作を表すフローチャートである。
【００７４】
まず、ステップＳ１１において、状態変化判定手段１４は、ネット状態テーブル１０のネットステータスが変更されたか否かを監視する。ネットステータスが変更された場合には、ステップＳ１２に進む。
【００７５】
ステップＳ１２において、選択実行手段１３は、処理項目テーブル１２の最上行から順番に処理項目を１つ選択する。
【００７６】
ステップＳ１３において、選択実行手段１３は、選択した処理項目の入力ネットのネットステータスをネット状態テーブル１０から取得する。
【００７７】
ステップＳ１４において、選択実行手段１３は、選択した処理項目に対応する処理項目実行モジュール４−ｉを呼び出して、取得したネットステータスを渡す。そして、選択した処理項目の入力ネットを非活性状態に戻す。尚、選択した処理項目が接続点（ＪＡ）の場合、選択実行手段１３は、その接続点の出力ネットを活性状態とし、その入力ネットを非活性状態に戻す。
【００７８】
各処理項目実行モジュール４−ｉにおいては、選択実行手段１３から呼び出されると、ステップＳ２１において、まず入力ネットのネットステータスを取得し、ステップＳ２２において入力ネットのネットステータスが活性状態か否かを検査する。ここで非活性状態であれば何も実行せずに終了する。
【００７９】
一方、活性状態であれば、ステップＳ２３において、その処理項目を実行する。そして、ステップＳ２４において必要に応じて、ネット状態テーブル１０における出力ネットのネットステータスを活性状態に変更し終了する。
【００８０】
例えば、処理項目ＢＲ１では、エアコンがＯＮ状態か否かを判定する処理を行い、ＯＮ状態であればＮＥＴ１７、ＯＦＦ状態であればＮＥＴ１６のネットステータスを活性状態に変更して終了する。処理項目ＴＴＳ１では、「エアコンか窓か？」という発語処理を行ったのち、出力ネットのネットステータスは活性状態として終了する。処理項目ＱＢ１では、使用者からの入力イベントの入力待ち状態となって、出力ネットのネットステータスは変更することなく終了する。
【００８１】
ステップＳ１５において、選択実行手段１３は、処理項目テーブル１２内のすべての処理項目に対して上記ステップＳ１２〜Ｓ１４の処理が終わったか否かを判定し、終わっていなければステップＳ１２に戻る。すべて終わった場合、再びステップＳ１１に戻る。
【００８２】
このように、ネット状態テーブル１０内のネットステータスの状態変化がなくなるまで、処理項目テーブル１２のすべての処理項目が繰り返し実行される。そして、定常状態まで到達すると再び入力イベントを待つ状態となる。
【００８３】
以上のような処理とすることで、複数の入力イベントが同時に入力された場合であっても、それに対応した処理項目を実行することができる。例えば、「エアコンをつけて」という入力イベントと「閉めて」という入力イベントが同時に入力された場合、ＮＥＴ１とＮＥＴ４が活性状態となる。ＮＥＴ１の活性状態はＮＥＴ１→ＮＥＴ１５→ＴＴＳ７→ＮＥＴ５７→ＥＮＤ４と伝達され、その間、処理項目ＴＴＳ７が実行されて定常状態に達する。一方、ＮＥＴ４の活性状態はＮＥＴ４→ＴＴＳ９→ＮＥＴ５９→ＥＮＤ６と伝達され、その間、処理項目ＴＴＳ９が実行されて定常状態に達する。このように、処理項目テーブル１２とネット状態テーブル１０を用いてネットステータスの活性状態の遷移によって対話情報処理を制御することで、同時に複数の入力イベントがあっても、適切な応答処理が可能となる。
【００８４】
また、対話シナリオに新たな処理項目を追加し、又は対話シナリオから処理項目を削除したい場合には、処理項目テーブル１２に処理項目を追加し、追加・削除した箇所のネットの接続関係を整合させるとともに、追加・削除されたネットをネット状態テーブル１０に追加又は削除するだけでよい。すなわち、対話シナリオの全体構造を考慮した変更は必要なく、追加・削除したい処理項目の部分のみを変更すればよい。従って、対話シナリオへの処理項目の追加や削除が極めて容易となる。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施例１に係る対話情報処理装置１の構成を表すブロック図である。
【図２】実施例１に係る対話情報処理装置１におけるシナリオ構造の一例を表す図である。
【図３】処理項目テーブル１２の構造を表す図である。
【図４】ネット状態テーブル１０の構造を表す図である。
【図５】対話認識モジュール２の動作を表すフローチャートである。
【図６】対話処理エンジン３と各処理項目実行モジュール４−ｉの動作を表すフローチャートである。
【図７】特許文献２記載の対話情報処理装置におけるシナリオの階層構造を表す図である。
【符号の説明】
【００８６】
１  対話情報処理装置
２  対話認識モジュール
３  対話処理エンジン
４  処理実行モジュール集合
４−１，４−２，４−３，…，４−ｉ，…，４−ｎ  処理項目実行モジュール
５  入力装置
６  出力装置
７  認識辞書
８  入力イベント認識手段
９  認識情報入力手段
１０  ネット状態テーブル
１１  前状態ネット状態テーブル
１２  処理項目テーブル
１３  選択実行手段
１４  状態変化判定手段
【図１】
2006268332.tif 000003
【図２】
2006268332.tif 000004
【図３】
2006268332.tif 000005
【図４】
2006268332.tif 000006
【図５】
2006268332.tif 000007
【図６】
2006268332.tif 000008
【図７】
2006268332.tif 000009