TOP > 国内特許検索 > 対話情報処理装置及び対話情報処理方法 > 明細書

明細書 :対話情報処理装置及び対話情報処理方法

発行国 日本国特許庁(JP)
公報種別 特許公報(B2)
特許番号 特許第4682322号 (P4682322)
公開番号 特開2006-268332 (P2006-268332A)
登録日 平成23年2月18日(2011.2.18)
発行日 平成23年5月11日(2011.5.11)
公開日 平成18年10月5日(2006.10.5)
発明の名称または考案の名称 対話情報処理装置及び対話情報処理方法
国際特許分類 G06F   3/16        (2006.01)
G10L  15/00        (2006.01)
FI G06F 3/16 320B
G10L 15/00 200P
請求項の数または発明の数 6
全頁数 15
出願番号 特願2005-084287 (P2005-084287)
出願日 平成17年3月23日(2005.3.23)
審査請求日 平成19年9月4日(2007.9.4)
特許権者または実用新案権者 【識別番号】504174135
【氏名又は名称】国立大学法人九州工業大学
発明者または考案者 【氏名】佐藤 寧
個別代理人の代理人 【識別番号】100121371、【弁理士】、【氏名又は名称】石田 和人
【識別番号】100133592、【弁理士】、【氏名又は名称】山口 浩一
審査官 【審査官】山崎 慎一
参考文献・文献 特開2003-076543(JP,A)
特開2003-334785(JP,A)
特開平08-249296(JP,A)
特開平10-320187(JP,A)
特開2003-044088(JP,A)
調査した分野 G06F 3/16
G10L 15/00
特許請求の範囲 【請求項1】
予め用意された複数の処理項目に対して、入力イベントに対応して対話的に各処理項目を適宜選択し実行する対話情報処理装置であって、
前記各処理項目間の情報伝達関係を指定するネットについて、前記各ネットを介して伝達される状態情報を表す変数(以下「ネットステータス」という。)をテーブルとして記憶するネット状態テーブル;
前記処理項目、当該処理項目の入力側に接続するネット(以下「入力ネット」という。)、及び当該処理項目の出力側に接続するネット(以下「出力ネット」という。)、の組をテーブルとして記憶する処理項目テーブル;
前記各処理項目に対応して設けられ、当該処理項目の処理内容を実行しその結果に応じて前記出力ネットのネットステータスの更新を行う、複数の処理項目実行モジュール;
前記処理項目テーブル内の全ての前記処理項目を順次選択し、選択した前記処理項目の前記入力ネットのネットステータスを前記ネット状態テーブルから読み出し、ネットステータスが活性状態であるものについては、当該処理項目に対応する前記処理項目実行モジュールを実行させる選択実行手段;
並びに、前記選択実行手段により前記各処理項目に関する処理が一巡実行され前記ネット状態テーブルの各ネットステータスが更新された後、前記ネット状態テーブル内のネットステータスの変化を検出し、前記ネット状態テーブルの何れかのネットステータスが変化した場合には、再び前記選択実行手段により前記各処理項目に関する処理を実行させる状態変化判定手段;
を備えたことを特徴とする対話情報処理装置。
【請求項2】
入力イベントが入力された場合、当該入力イベントに対応する前記ネットのネットステータスを活性状態に更新する初期ネット状態更新手段;
を備えたことを特徴とする請求項1記載の対話情報処理装置。
【請求項3】
前記初期ネット状態更新手段は、複数の入力イベントが同時に入力された場合、当該各入力イベントに対応する前記ネットのネットステータスを各々更新することを特徴とする請求項2記載の対話情報処理装置。
【請求項4】
使用者の操作により入力イベントを発生させる入力装置を備え、
前記初期ネット状態更新手段は、
各入力イベントと所定の認識情報との対応関係を記憶する認識辞書;
前記入力イベントに対して前記認識辞書を参照し、対応する認識情報を出力する入力イベント認識手段;
及び、前記入力イベント認識手段が出力する認識情報に対応する前記ネットのネットステータスを当該認識情報により指定される状態に更新する認識情報入力手段;
を備えていることを特徴とする請求項2又は3記載の対話情報処理装置。
【請求項5】
コンピュータに読み込ませて実行することにより、コンピュータを請求項1乃至4の何れか一に記載の対話情報処理装置として機能させるプログラム。
【請求項6】
予め用意された複数の処理項目に対して、前記各処理項目間の情報伝達関係を指定するネットについて、前記各ネットを介して伝達される状態情報を表す変数(以下「ネットステータス」という。)をテーブルとして記憶するネット状態テーブル;
前記処理項目、当該処理項目の入力側に接続するネット(以下「入力ネット」という。)、及び当該処理項目の出力側に接続するネット(以下「出力ネット」という。)、の組をテーブルとして記憶する処理項目テーブル;
並びに、前記各処理項目に対応して設けられ、前記入力ネットのネットステータスに対する当該処理項目の処理内容を実行しその結果に応じて前記出力ネットのネットステータスの更新を行う、複数の処理項目実行モジュール;
を備えたシステムにおいて、入力イベントに対応して対話的に各処理項目を適宜選択し実行する対話情報処理方法であって、
入力イベントが入力された場合、前記ネット状態テーブルの各ネットのうち、当該入力イベントに対応するネットのネットステータスを更新する初期ネット状態更新ステップ;
及び、入力イベントに対して前記処理項目実行モジュールを適宜選択し実行する処理項目実行ステップ;
を備え、
前記処理項目実行ステップにおいては、
ネット状態テーブルの何れかのネットステータスが変化を検出するネット状態変化検出ステップ;
前記ネット状態テーブルの何れかのネットステータスの変化が検出された場合には前記処理項目テーブル内の全ての前記処理項目を順次選択し、選択した前記処理項目の前記入力ネットのネットステータスを前記ネット状態テーブルから読み出し、ネットステータスが活性状態であるものについては、当該処理項目に対応する前記処理項目実行モジュール実行させる選択実行ステップ;
及び、前記選択実行ステップにおいて前記各処理項目に関する処理が一巡実行され前記ネット状態テーブルの各ネットステータスが更新された後、前記ネット状態テーブル内のネットステータスの変化を検出し、前記ネット状態テーブルの何れかのネットステータスが変化したか否かを判定する状態変化判定ステップ;
を前記ネットステータスの変化が検出されなくなるまで繰り返して実行すること
を特徴とする対話情報処理方法。
発明の詳細な説明 【技術分野】
【0001】
本発明は、音声等により使用者と対話しながら情報処理を行う対話情報処理技術に関する。
【背景技術】
【0002】
近年、カーナビゲーション装置や家庭用の種々の機器において、対話型のユーザインタフェースを有するものが研究開発されてきている。かかる対話型のユーザインタフェースにおいて、使用者との対話情報処理を行う機器を対話情報処理装置という。
【0003】
対話情報処理装置においては、使用者との対話を通じて情報を取得し、その情報に基づく処理を行う。例えば、使用者の発話内容を音声認識装置により認識し、それに対して音声合成装置により回答や問いかけを行うことを繰り返し、使用者の意図に沿った機器の操作を行うという具合である。なお、ここにいう「対話」とは、音声による対話のみならず、スイッチ操作による対話や画像による対話等も含まれる。
【0004】
対話情報処理装置においては、使用者に違和感を持たせることなく、自然な対話を行うことが必要とされる。すなわち、使用者側の発話選択の自由度を高くすることが重要となる。
【0005】
そこで、各種機器の操作を行うためのアプリケーションプログラム(実行モジュール。以下「AP」という。)と対話処理を行うプログラム(対話モジュール)とを独立させ、APに対応して用意されたシナリオに基づき対話処理を行う対話情報処理装置が開発されている(特許文献1,2参照)。
【0006】
特許文献1記載の対話情報処理装置では、対話処理の記述自体をAPから独立させると共に、APの処理手順に対話の流れが左右されないようにして、使用者側の自由度が高い対話を実現している。
【0007】
また、特許文献2記載の対話情報処理装置では、更に、シナリオを階層構造とすることによって、使用者の発話による異なるAPへの移行を自然に行う技術が記載されている。
【0008】
図7は特許文献2記載の対話情報処理装置におけるシナリオの階層構造を表す図である。シナリオは、3つのAPに対応してA-APシナリオグループ、B-APシナリオグループ、及びC-APシナリオグループが用意されている。そして、各APシナリオグループと分離して、アプリケーション分岐処理を行うルートシナリオが設けられている。ルートシナリオにおけるアプリケーション分岐処理は、使用者からの入力情報に応じてAPを起動すると共に、そのAPに対応するAPシナリオグループを呼び出すものである。これにより、あるAPシナリオグループにおいて処理を実行中に、使用者が他のAPシナリオグループの処理へ移るように指示した場合、ルートシナリオへ移行すればよいため、異なるAPへの移行を自然に行うことが可能となる。
【0009】
また、アプリケーション分岐処理をAPシナリオグループから独立させてルートシナリオにまとめることによって、AP数がいくら多くなっても、各APシナリオグループには他のAPシナリオグループへの移行処理を記述する必要がなくなるため、APシナリオグループの記述が簡単となる。

【特許文献1】特開2001-56694号公報
【特許文献2】特開2001-296943号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかしながら、上述の従来の対話情報処理装置においては、新たなアプリケーションを追加する場合、そのアプリケーションに関するAPシナリオグループを作成するとともに、他のAPシナリオグループとの間のアプリケーション分岐処理の定義をルートシナリオに追加する必要がある。従って、シナリオの追加・削除の作業が複雑である。
【0011】
また、使用者の発話により複数のAPに対して同時に指示が入力された場合、複数のAPを同時に制御することはできない。すなわち、あるAPシナリオグループ(A)の処理を実行中に、使用者から他のAPシナリオグループ(B)の処理についての指示が入力された場合、対話情報処理装置はAPシナリオグループ(A)の処理を中断して、APシナリオグループ(B)の処理へ移行しなければならない。そして、次に使用者からAPシナリオグループ(A)の処理内容についての発話が入力されると、対話情報処理装置は、APシナリオグループ(B)の処理を中断してAPシナリオグループ(A)の処理へ移行するが、この場合、APシナリオグループ(A)の処理は最初から実行されるため、使用者が先に入力した指示内容を再度繰り返して入力する必要がある。従って、使用者にとっての利便性の点で問題がある。
【0012】
そこで、本発明の目的は、シナリオの追加・削除を容易に行うことが可能であると共に、使用者から複数のイベントが同時に入力された場合にも、適切にそれに対する処理内容を同時に実行することが可能な対話情報処理技術を提供することにある。
【課題を解決するための手段】
【0013】
本発明に係る対話情報処理装置の第1の構成は、予め用意された複数の処理項目に対して、入力イベントに対応して対話的に各処理項目を適宜選択し実行する対話情報処理装置であって、前記各処理項目間の情報伝達関係を指定するネットについて、前記各ネットを介して伝達される状態情報を表す変数(以下「ネットステータス」という。)をテーブルとして記憶するネット状態テーブル;前記処理項目、当該処理項目の入力側に接続するネット(以下「入力ネット」という。)、及び当該処理項目の出力側に接続するネット(以下「出力ネット」という。)、の組をテーブルとして記憶する処理項目テーブル;前記各処理項目に対応して設けられ、前記入力ネットのネットステータスが活性状態にある場合には当該処理項目の処理内容を実行しその結果に応じて前記出力ネットのネットステータスの更新を行う、複数の処理項目実行モジュール;前記処理項目テーブル内の全ての前記処理項目を順次選択し、選択した前記処理項目の前記入力ネットのネットステータスを前記ネット状態テーブルから読み出し、当該処理項目に対応する前記処理項目実行モジュールに入力して実行させる選択実行手段;並びに、前記ネット状態テーブルの何れかのネットステータスが変化した場合に前記選択実行手段により前記各処理項目実行モジュールを実行させる状態変化判定手段;を備えたことを特徴とする。
【0014】
入力イベントが入力され、それに対応してネット状態テーブルの何れかのネットのネットステータスが変更された場合、まず状態変化判定手段がネットステータスの変化を検出し、選択実行手段により各処理項目実行モジュールを実行する。
【0015】
選択実行手段は、処理項目テーブルから処理項目を順次読み出し、その処理項目の入力ネットのネットステータスをネット状態テーブルから取得する。そして、取得したネットステータスを当該処理項目に対応する処理項目実行モジュールに入力し実行させる。
【0016】
各処理項目実行モジュールは、入力ネットのネットステータスが活性化(アサート)状態にある場合にはその処理項目に関する処理を実行する。そして、その実行結果より必要に応じて、ネット状態テーブル内の出力ネットのネットステータスを更新する。一方、入力ネットのネットステータスが非活性(ネゲート)状態の場合には、処理項目に関する処理は実行されない。
【0017】
選択実行手段が処理項目テーブル内のすべての処理項目について、対応する処理項目実行モジュールの実行が終了すると、状態変化判定手段は再びネット状態テーブル内のネットステータスの変化を検出し、変化が検出された場合には上述の操作を繰り返す。
【0018】
最終的に状態変化判定手段によるネット状態テーブル内のネットステータスの変化が検出されなくなった状態(定常状態)に達すると、対話情報処理が終了する。
【0019】
このように、入力イベントに対して対応するネットステータスを活性化(アサート)し、ネット状態テーブルのネットステータスが安定化するまで、ネットステータスに応じて全処理項目実行モジュールの実行を繰り返すことにより、複数の入力イベントが同時に入力された場合でも、それらに対応する処理項目を正しく実行することができる。
【0020】
また、新たに処理項目を追加したい場合には、処理項目テーブルにその処理項目及び入出力ネットに追加し、必要に応じてネット状態テーブルに新たに生じるネットを追加するだけでよい。また、処理項目を削除したい場合には、処理項目テーブルにその処理項目及び入出力ネットに追加し、必要に応じてネット状態テーブルから不要なネットを削除するだけでよい。従って、処理項目の追加・削除が極めて容易であり、処理項目の変化に柔軟に対応することが可能となる。
【0021】
ここで、前記ネットステータスは、複数の状態を採ることが可能である。例えば、活性状態及び非活性状態の2状態であってもよいし、それ以上の状態を採るようにしてもよい。
【0022】
本発明に係る対話情報処理装置の第2の構成は、前記第1の構成において、入力イベントが入力された場合、当該入力イベントに対応する前記ネットのネットステータスを活性状態に更新する初期ネット状態更新手段;を備えたことを特徴とする。
【0023】
この構成によれば、入力イベントに対して初期ネット状態更新手段が活性状態に更新する。これがトリガーとなって、上述のように、ネット状態テーブルのネットステータスが安定化するまで、全処理項目実行モジュールの実行を繰り返す。これにより、入力イベントに対する処理項目を実行することができる。
【0024】
本発明に係る対話情報処理装置の第3の構成は、前記第2の構成において、前記初期ネット状態更新手段は、複数の入力イベントが同時に入力された場合、当該各入力イベントに対応する前記ネットのネットステータスを各々更新することを特徴とする。
【0025】
この構成により、複数の入力イベントが同時に入力された場合にも、それに対応する処理項目をそれぞれ実行することができる。
【0026】
本発明に係る対話情報処理装置の第4の構成は、前記第2又は3の構成において、使用者の操作により入力イベントを発生させる入力装置を備え、前記初期ネット状態更新手段は、各入力イベントと所定の認識情報との対応関係を記憶する認識辞書;前記入力イベントに対して前記認識辞書を参照し、対応する認識情報を出力する入力イベント認識手段;及び、前記入力イベント認識手段が出力する認識情報に対応する前記ネットのネットステータスを当該認識情報により指定される状態に更新する認識情報入力手段;を備えていることを特徴とする。
【0027】
この構成によれば、入力装置から入力イベントが出力されると、入力イベント認識手段が入力イベントを認識し、認識情報を出力する。そして、認識情報入力手段は、この認識情報に応じて、適宜ネットのネットステータスを当該認識情報により指定される状態に更新する。
【0028】
ここで、入力装置としては、音声入力装置、画像入力装置(カメラ、スキャナー等)、タッチパネル、キー入力装置、ポインティングデバイス等の、コンピュータで使用される各種入力機器を使用することができる。入力イベントとしては、音声信号、画像信号、キー入力信号等を挙げることができる。認識情報としては、例えば、単語情報、ON/OFF情報等などが挙げられる。これにより、入力イベントに対する処理項目を実行することができる。
【0029】
本発明に係るプログラムは、コンピュータに読み込ませて実行することにより、コンピュータを前記第1乃至4の何れか一の構成の対話情報処理装置として機能させることを特徴とする。
【0030】
本発明に係る対話情報処理方法は、予め用意された複数の処理項目に対して、前記各処理項目間の情報伝達関係を指定するネットについて、前記各ネットを介して伝達される状態情報を表す変数(以下「ネットステータス」という。)をテーブルとして記憶するネット状態テーブル;前記処理項目、当該処理項目の入力側に接続するネット(以下「入力ネット」という。)、及び当該処理項目の出力側に接続するネット(以下「出力ネット」という。)、の組をテーブルとして記憶する処理項目テーブル;並びに、前記各処理項目に対応して設けられ、前記入力ネットのネットステータスに対する当該処理項目の処理内容を実行しその結果に応じて前記出力ネットのネットステータスの更新を行う、複数の処理項目実行モジュール;を備えたシステムにおいて、入力イベントに対応して対話的に各処理項目を適宜選択し実行する対話情報処理方法であって、入力イベントが入力された場合、前記ネット状態テーブルの各ネットのうち、当該入力イベントに対応するネットのネットステータスを更新する初期ネット状態更新ステップ;及び、入力イベントに対して前記処理項目実行モジュールを適宜選択し実行する処理項目実行ステップ;を備え、前記処理項目実行ステップにおいては、ネット状態テーブルの何れかのネットステータスが変化を検出するネット状態変化検出ステップ;及び、ネットステータスの変化が検出された場合には前記処理項目テーブル内の全ての前記処理項目を順次選択し、選択した前記処理項目の前記入力ネットのネットステータスを前記ネット状態テーブルから読み出し、当該処理項目に対応する前記処理項目実行モジュールに入力して実行させる選択実行ステップ;を前記ネットステータスの変化が検出されなくなるまで繰り返して実行することを特徴とする。
【発明の効果】
【0031】
以上のように、本発明によれば、入力イベントに対して対応するネットステータスを活性化(アサート)し、ネット状態テーブルのネットステータスが安定化するまで、全処理項目実行モジュールの実行を繰り返すことにより、複数の入力イベントが同時に入力された場合でも、それらに対応する処理項目を正しく実行することが可能となる。
また、各処理項目の実行制御を処理項目テーブル及びネット状態テーブルを用いて行う構成としたことにより、処理項目の追加・削除が極めて容易であり、処理項目の変化に柔軟に対応することが可能となる。
【発明を実施するための最良の形態】
【0032】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【実施例1】
【0033】
図1は本発明の実施例1に係る対話情報処理装置1の構成を表すブロック図である。対話情報処理装置1は、初期ネット状態更新手段である対話認識モジュール2と、対話処理エンジン3と、処理実行モジュール集合4と、入力装置5と、出力装置6とを備えている。
【0034】
入力装置5は、使用者の操作により入力イベントを発生させる装置である。本実施例では、入力装置5としてマイクが使用されているものとする。
【0035】
出力装置6は、使用者により入力される指示に応じて実際に各種の処理を行う装置である。例えば、音声出力処理を行うスピーカー、室内の空調を行うエアコン、窓の開閉を行うモータなどである。
【0036】
処理実行モジュール集合4は、予め用意された各種処理項目に対応して設けられた処理項目実行モジュール4-1,4-2,…,4-nの集合である。各処理項目実行モジュール4-1,4-2,…,4-nは、各種処理項目に対する演算・制御処理を実行するモジュールである。
【0037】
ここで、「処理項目」とは、入力イベントに対応して各種機器(出力装置6)において実際に行われる処理の項目をいう。例えば、「エアコンをつけて」という入力イベントに対して「エアコンをつけます」と発語する処理や実際にエアコンを作動させる処理、「窓を閉めて」という入力イベントに対して「窓を閉めます」と発語する処理や実際に窓を閉めるモータを作動させる処理をいう。
【0038】
これらの処理項目間には、遷移順序関係が定義されている。例えば、「下げて」という入力イベントに対して「エアコンか窓か?」と発語する処理項目TTS1の次には、次の入力イベントが「エアコン」、「窓」又はその他の何れかであるかを判定する処理項目QB1がくるという具合に遷移順序関係が定義されている(図2参照)。この遷移順序関係が定義された各処理項目について、処理項目間の情報伝達関係を指定するものを「ネット」という。例えば、上記例では、処理項目TTS1と処理項目QB1がネットで接続されている。ネットは方向性を有する。処理項目の入力側に接続するネットを「入力ネット」、処理項目の出力側に接続するネットを「出力ネット」という。すなわち、処理項目の集合をN、ネットの集合をEとすると、G=(N,E)は有向グラフを構成する。
【0039】
各ネットは活性(アサート)状態と非活性(ネゲート)状態との2状態を有する(必要に応じて、活性状態を更に2以上の状態に定義してもよい)。このネットの状態のことを「ネットステータス」という。各処理項目実行モジュール4-1,4-2,…,4-nは、入力ネットのネットステータスが活性状態にある場合には当該処理項目の処理内容を実行する。そして、その実行結果に応じて出力ネットのネットステータスの更新を行う。
【0040】
対話認識モジュール2は、マイク等の入力装置5から入力される使用者の発話等の入力イベントを認識し、所定の形式の認識情報として出力する装置である。対話認識モジュール2は、認識辞書7、入力イベント認識手段8、及び認識情報入力手段9を備えている。認識辞書7は、単語、文章、音声波形等の使用者の発話を認識するための各種認識情報を記憶する。入力イベント認識手段8は、入力装置5から入力される入力イベントを、認識辞書7を参照しながら認識し、認識情報として出力する。認識情報入力手段9は、入力イベント認識手段8から出力される認識情報に基づき、後述するネット状態テーブル10を書き換える。
【0041】
対話処理エンジン3は、ネット状態テーブル10、前状態ネット状態テーブル11、処理項目テーブル12、選択実行手段13、及び状態変化判定手段14を備えている。
【0042】
ネット状態テーブル10は、各ネットのネットステータスをテーブルとして記憶する。前状態ネット状態テーブル11は、各処理項目に関する処理が一巡実行され各ネットのネットステータスが更新された場合、その更新前の各ネットのネットステータスを記憶する。尚、前状態ネット状態テーブル11は、すべてのネットの前状態のネットステータスを記憶するようにしてもよいが、変更されたネットのみを記憶するようにしてもよい。また、ネット状態テーブル10と併合して1つのテーブルとして記憶するように構成してもよい。各処理項目実行モジュール4-1,4-2,…,4-nは、ネットステータスの更新を行う場合には、このネット状態テーブル10のネットステータスを更新する。
【0043】
処理項目テーブル12は、{処理項目,当該処理項目の入力側に接続する入力ネット,当該処理項目の出力側に接続する出力ネット}の組をテーブルとして記憶する。
【0044】
選択実行手段13は、処理項目テーブル12内の全ての処理項目を順次選択し、選択した処理項目の入力ネットのネットステータスをネット状態テーブル10から読み出す。そして、当該処理項目に対応する処理項目実行モジュール4-iにネットステータスを入力して実行させる。
【0045】
状態変化判定手段14は、ネット状態テーブル10の何れかのネットステータスが変化した場合に選択実行手段13により各処理項目実行モジュール4-1,4-2,…,4-nを実行させる。
【0046】
ここで、本実施例の対話情報処理装置1における処理項目とネットの関係について、実例に沿ってより具体的に説明しておく。図2は、実施例1に係る対話情報処理装置1における対話シナリオ構造の一例を表す図である。この対話シナリオは、自動車における空調を対話方式により実行する例を示している。
【0047】
図2において、処理項目はFCT,QB,TTS,STS,BR,TRMの記号が付された部分である。
【0048】
「FCT」は、音声認識用のXML(Extensible Markup Language)形式で記述された指定のキーワードを入力音声から抽出する処理項目を表している。各FCTに付されている「<FCT>」は、当該FCTに入るためのコーパス(キーワード)を表している。実際には「FCT」は対話認識モジュール2(初期ネット状態更新手段)により実行される処理項目であり、この対話シナリオのカテゴリーに入るためのキーワードとして扱われる。
【0049】
「QB」は、指定のXMLを利用して音声認識より音声単語を抽出し対話のフローを分岐させる処理を表す。
【0050】
「TTS(Text to Speech)」は、テキスト音声合成処理を表す。これは、出力装置6(スピーカー)により指定された文章を読み上げる処理に相当する。各TTSに付されている「<SP>」は、当該TTSにおいて読み上げるテキストの内容を表している。
【0051】
このTTSとQBを併用して質問を記述することができる。例えば、TTS1において「エアコンか窓か?」と発話させ、これに対する認識を行うQB1では、想定される答え方(「エアコン」、「窓」)を入れたXMLファイルを指定することにより質問に対する回答の認識処理が実現されている。
【0052】
「STS」は内部のステータス情報を表す。例えば、STS1は窓が開いた状態にあるか否かの内部ステータス情報、STS2はエアコンがON状態か否かの内部ステータス情報を表している。
【0053】
「BR」は、音声認識以外の内部のステータス情報によって対話のフローを分岐させる処理を表す。例えば、BR1では、エアコンの電源がON状態かOFF状態かによって会話の内容を変更させている。
【0054】
「TRM」は終端処理を表す。すなわち、TRMにおいて、この対話シナリオは終了する。
【0055】
各処理項目(FCT,QB,TTS,STS,BR,TRM)の間を結ぶ線はネットを表す。各ネットに付された番号はネット番号を表す。以下、ネット番号xのネットを「NETx」と記す。「JA」及び「JC」はネットの接続点を表す。
【0056】
例えば、最初の入力イベントとして「下げて」というキーワードが入力された場合、対話認識モジュール2により処理項目FCT6が実行され、NET6が活性化される。続いて、処理項目TTS1において「エアコンか窓か?」という発話処理が行われ、NET6が非活性化されるとともにNT19が活性化される。それに伴い、NET20が活性化される。そして処理項目QB1が実行されて入力イベントして「エアコン」,「窓」,その他の何れが入力されたかを判定する。それに応じて対話のフローを分岐させる処理が行われ、NET19,20が非活性化されるとともにNT27,31,29の何れかが活性化される。このようにして、図2の対話シナリオに従って対話処理が実行される。


【0057】
図3は、処理項目テーブル12の構造を表す図である。図3においては、一例として、図2の対話シナリオに対する処理項目テーブル12の構造を示した。
【0058】
「処理項目」の欄には、図2の各処理項目に対応する処理項目実行モジュール4-iを呼び出すためのポインタが格納されている。尚、ここではネットの接続点「JA」も、何も実行しない処理項目として、仮想的に一つの処理項目として取り扱っている。
【0059】
「入力ネット」の欄には、当該処理項目に対する入力ネットの指定子が格納されている。すなわち、ネット状態テーブル10における当該入力ネットのネットステータスを指すポインタが格納されている。
【0060】
「出力ネット」の欄には、当該処理項目に対する出力ネットの指定子が格納されている。すなわち、ネット状態テーブル10における当該出力ネットのネットステータスを指すポインタが格納されている。
【0061】
「コーパス」の欄には、その処理項目におけるキーワードが格納されている。例えば、処理項目FCT1では、コーパスとして「エアコンをつけて」が格納されている。また、処理項目QB1では、コーパスとして「窓」及び「エアコン」が格納されている。
【0062】
図4は、ネット状態テーブル10の構造を表す図である。尚、図1においては、理解を容易にするためにネット状態テーブル10と前状態ネット状態テーブル11を分けて記載しているが、図4では、ネット状態テーブル10及び前状態ネット状態テーブル11を併合して1つのテーブルとしている。「ネットステータス」の欄には、左欄のネットのネットステータスが格納されている。ここでは、ネットステータスは「0」が非活性状態、「1」が活性状態を表すものとする。「変更フラグ」の欄には、ネットステータスが変更されたか否かを示す変更フラグが格納されている。変更フラグが「0」が未変更、「1」が変更を表す。
【0063】
以上のように構成された実施例1に係る対話情報処理装置1について、以下その動作を説明する。
【0064】
図5は対話認識モジュール2の動作を表すフローチャートである。
【0065】
ステップS1において、使用者の発話等により入力装置5から入力イベント認識手段8へ入力イベントが入力される。
【0066】
例えば、使用者の発話として入力装置5に「エアコンをつけて」と入力したとする。その場合、入力装置5はその音声波形を入力イベント認識手段8に出力する。
【0067】
ステップS2において、入力イベント認識手段8は、認識辞書7を参照することによって入力イベントを認識し、その認識結果を認識情報として認識情報入力手段9へ出力する。
【0068】
例えば、上記例で「エアコンをつけて」という音声波形が入力イベントとして入力された場合、入力イベント認識手段8は、認識辞書7を参照し、その音声波形を解析し「エアコンをつけて」というテキスト情報を認識情報として出力する。
【0069】
ステップS3において、認識情報入力手段9は、処理項目テーブル12を参照し、当該認識情報に一致するキーワードを有する処理項目FCTを探索する。そして、キーワードが一致した処理項目の出力ネットについて、ネット状態テーブル10内のネットステータスを活性状態に変更するとともに、その変更フラグを1とする。
【0070】
また、認識情報入力手段9は、入力ネットが活性状態にある処理項目QBのうち、当該認識情報に一致するキーワードを有する処理項目QBを探索する。そして、探索により検出された処理項目QBの出力ネットのうちキーワードが一致した枝の出力ネットについて、ネット状態テーブル10内のネットステータスを活性状態に変更するとともに、その変更フラグを1とする。
【0071】
例えば、「エアコンをつけて」というテキスト認識情報が認識情報入力手段9に入力された場合、認識情報入力手段9は処理項目FCT1の出力ネットであるNET1を活性状態とする。また、処理項目QB1の入力ネットであるNET20が活性状態の場合に、「窓」というテキスト認識情報が認識情報入力手段9に入力された場合、認識情報入力手段9は処理項目QB1の「窓」に相当する枝の出力ネットであるNET31を活性状態とする。
【0072】
以上のステップS1~S3の処理が終了すると、対話認識モジュール2はすべての処理を終了し、再び入力イベントが入力されるのを待つ状態となる。
【0073】
次に、対話処理エンジン3と各処理項目実行モジュール4-iの動作について説明する。図6は、対話処理エンジン3と各処理項目実行モジュール4-iの動作を表すフローチャートである。
【0074】
まず、ステップS11において、状態変化判定手段14は、ネット状態テーブル10のネットステータスが変更されたか否かを監視する。ネットステータスが変更された場合には、ステップS12に進む。
【0075】
ステップS12において、選択実行手段13は、処理項目テーブル12の最上行から順番に処理項目を1つ選択する。
【0076】
ステップS13において、選択実行手段13は、選択した処理項目の入力ネットのネットステータスをネット状態テーブル10から取得する。
【0077】
ステップS14において、選択実行手段13は、選択した処理項目に対応する処理項目実行モジュール4-iを呼び出して、取得したネットステータスを渡す。そして、選択した処理項目の入力ネットを非活性状態に戻す。尚、選択した処理項目が接続点(JA)の場合、選択実行手段13は、その接続点の出力ネットを活性状態とし、その入力ネットを非活性状態に戻す。
【0078】
各処理項目実行モジュール4-iにおいては、選択実行手段13から呼び出されると、ステップS21において、まず入力ネットのネットステータスを取得し、ステップS22において入力ネットのネットステータスが活性状態か否かを検査する。ここで非活性状態であれば何も実行せずに終了する。
【0079】
一方、活性状態であれば、ステップS23において、その処理項目を実行する。そして、ステップS24において必要に応じて、ネット状態テーブル10における出力ネットのネットステータスを活性状態に変更し終了する。
【0080】
例えば、処理項目BR1では、エアコンがON状態か否かを判定する処理を行い、ON状態であればNET17、OFF状態であればNET16のネットステータスを活性状態に変更して終了する。処理項目TTS1では、「エアコンか窓か?」という発語処理を行ったのち、出力ネットのネットステータスは活性状態として終了する。処理項目QB1では、使用者からの入力イベントの入力待ち状態となって、出力ネットのネットステータスは変更することなく終了する。
【0081】
ステップS15において、選択実行手段13は、処理項目テーブル12内のすべての処理項目に対して上記ステップS12~S14の処理が終わったか否かを判定し、終わっていなければステップS12に戻る。すべて終わった場合、再びステップS11に戻る。
【0082】
このように、ネット状態テーブル10内のネットステータスの状態変化がなくなるまで、処理項目テーブル12のすべての処理項目が繰り返し実行される。そして、定常状態まで到達すると再び入力イベントを待つ状態となる。
【0083】
以上のような処理とすることで、複数の入力イベントが同時に入力された場合であっても、それに対応した処理項目を実行することができる。例えば、「エアコンをつけて」という入力イベントと「閉めて」という入力イベントが同時に入力された場合、NET1とNET4が活性状態となる。NET1の活性状態はNET1→NET15→TTS7→NET57→END4と伝達され、その間、処理項目TTS7が実行されて定常状態に達する。一方、NET4の活性状態はNET4→TTS9→NET59→END6と伝達され、その間、処理項目TTS9が実行されて定常状態に達する。このように、処理項目テーブル12とネット状態テーブル10を用いてネットステータスの活性状態の遷移によって対話情報処理を制御することで、同時に複数の入力イベントがあっても、適切な応答処理が可能となる。
【0084】
また、対話シナリオに新たな処理項目を追加し、又は対話シナリオから処理項目を削除したい場合には、処理項目テーブル12に処理項目を追加し、追加・削除した箇所のネットの接続関係を整合させるとともに、追加・削除されたネットをネット状態テーブル10に追加又は削除するだけでよい。すなわち、対話シナリオの全体構造を考慮した変更は必要なく、追加・削除したい処理項目の部分のみを変更すればよい。従って、対話シナリオへの処理項目の追加や削除が極めて容易となる。
【図面の簡単な説明】
【0085】
【図1】本発明の実施例1に係る対話情報処理装置1の構成を表すブロック図である。
【図2】実施例1に係る対話情報処理装置1におけるシナリオ構造の一例を表す図である。
【図3】処理項目テーブル12の構造を表す図である。
【図4】ネット状態テーブル10の構造を表す図である。
【図5】対話認識モジュール2の動作を表すフローチャートである。
【図6】対話処理エンジン3と各処理項目実行モジュール4-iの動作を表すフローチャートである。
【図7】特許文献2記載の対話情報処理装置におけるシナリオの階層構造を表す図である。
【符号の説明】
【0086】
1 対話情報処理装置
2 対話認識モジュール
3 対話処理エンジン
4 処理実行モジュール集合
4-1,4-2,4-3,…,4-i,…,4-n 処理項目実行モジュール
5 入力装置
6 出力装置
7 認識辞書
8 入力イベント認識手段
9 認識情報入力手段
10 ネット状態テーブル
11 前状態ネット状態テーブル
12 処理項目テーブル
13 選択実行手段
14 状態変化判定手段

図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図6】
5
【図7】
6