(57)【要約】      （修正有）【課題】解釈エラーが検出された時にプロンプトに対するユーザ応答を再評価する処理を可能にする。【解決手段】解釈部５００は、ユーザ入力データの項目の組の少なくとも１つの他の項目について得られる解釈結果データに関連する制約データに基づいて、ユーザ入力データの組の項目の解釈を制限するように構成されている。解釈部の制御部８は、ユーザ入力データの項目の組における項目の解釈結果データ内の解釈エラーの発生を検出するように構成されている。制御部８は、ユーザ入力データの項目の組における項目について解釈エラーが検出された場合、修正された解釈結果データを作り、修正された解釈結果データの組に基づいてタスクの実行を容易にする制御信号を提供するために、解釈部５００に対して、修正された制約データを使用してユーザ入力データの項目の組における他の項目の少なくとも１つを再解釈させるように構成されている。【選択図】図１
2005266769.tif 000002
【特許請求の範囲】
【請求項１】
関連するユーザ入力データの項目の組を処理する装置であって、
ユーザ入力データの項目を受信する受信手段と、
ユーザ入力データの項目の前記組を解釈し、ユーザ入力データの項目ごとの解釈結果データを含む解釈結果データの対応する組を生成するように動作可能な解釈手段であって、ユーザ入力データの項目の前記組の少なくとも１つの他の項目について得られた前記解釈結果データに関連する制約データに基づいてユーザ入力データの前記組の項目の解釈を制限するように構成された解釈手段と、
ユーザ入力データの項目の前記組における項目についての前記解釈結果データの解釈エラーの発生を検出するように動作可能な制御手段であって、ユーザ入力データの項目の前記組における項目について解釈エラーが検出された場合、修正された解釈結果データを生成するために、修正された制約データを使用してユーザ入力データの項目の組における少なくとも１つの他の項目を前記解釈手段に再解釈させるように構成され、修正された解釈結果データの前記組に基づいてタスクの前記実行を容易にするために制御信号を提供するように動作可能である制御手段とを備えることを特徴とする装置。
【請求項２】
前記解釈手段は、前記ユーザ入力データの項目に関連するデータを含み前記制約データを提供するデータベースを使用して、前記ユーザ入力データの項目を解釈するように構成されることを特徴とする請求項１に記載の装置。
【請求項３】
前記ユーザ入力データの項目を供給することをユーザに促すためのユーザ・プロンプト・データを供給するように動作可能なプロンプタを更に備えることを特徴とする請求項１又は２に記載の装置。
【請求項４】
タスクの実行に関してユーザとの対話を実行する装置であって、
前記タスクを実行できるようにするタスク・データを取得するために、ユーザ入力データの項目の対応する組を供給することを前記ユーザに促すためのプロンプト・データの組を供給するように動作可能なプロンプタと、
プロンプト・データの前記組に対する前記ユーザの応答を表すユーザ入力データの項目を受け取るように動作可能な受信手段と、
前記タスクを実行できるようにする前記タスク・データを提供するために、前記ユーザ入力データの項目を解釈し、解釈結果データの組を得るように動作可能な解釈手段であって、プロンプト・データの前記組に関連するデータを含むデータベースを使用して前記ユーザ入力データの項目を解釈し、前記解釈手段によってアクセスされた前記データベース内の前記データに基づいて、既に解釈された前記組の１以上のユーザ入力データの項目についての前記解釈結果データと一貫性を有する解釈結果データに、ユーザ入力データの項目の前記組の項目の解釈を制限するように構成される解釈手段と、
前記解釈結果データ及び前記データベース内の前記データの少なくとも１つに基づいてユーザ入力データの項目について前記解釈結果データにおける解釈エラーの発生を識別するように構成された制御手段であって、解釈エラー発生が識別された場合、修正された制約を使用して解釈エラーの発生が検出された前記ユーザ入力データの項目以外の前記組の少なくとも１つのユーザ入力データの項目を前記解釈手段に再解釈させるように構成され、解釈結果データの前記修正された組に基づいて前記タスクの前記実行を指示するように動作可能である制御手段とを備えることを特徴とする装置。
【請求項５】
前記解釈手段は、解釈結果データが前記データベース内のデータと矛盾する場合に、解釈エラーを識別するように構成されることを特徴とする請求項４に記載の装置。
【請求項６】
前記解釈手段は、ユーザ入力データの項目ごとの解釈結果データのグループを記憶するように構成され、
前記制御手段は、解釈結果データの対応する記憶されたグループ内からユーザ入力データの項目の解釈結果データを選択するように動作可能であり、前記制御手段は、ユーザ入力データの項目の解釈エラーが発生した場合、ユーザ入力データの項目の前記組における少なくとも１つの他のユーザ入力データの項目について生成された前記解釈結果データが、そのユーザ入力データの項目の異なる解釈結果データと一貫性を有する解釈結果データに制限されるように、そのユーザ入力データの項目の異なる解釈結果データを選択し、前記解釈手段に、ユーザ入力データの項目の前記組における少なくとも１つの他のユーザ入力データの項目を再解釈させることによって、ユーザ入力データの項目の制約データを修正するように動作可能であることを特徴とする請求項１乃至５のいずれか１項に記載の装置。
【請求項７】
前記制御手段は、前記解釈結果データに対する制約が修正された少なくとも１つのユーザ・データ入力項目を、解釈エラーの前記発生が検出された前記ユーザ入力データの項目の直前に解釈されたユーザ・データ入力項目にするように動作可能であることを特徴とする請求項１乃至６のいずれか１項に記載の装置。
【請求項８】
前記解釈手段は、信頼スコアに関連付けられた各解釈結果データとともにユーザ入力データの項目ごとの解釈結果データの組を提供し、前記信頼スコアを前記解釈結果データと共に記憶するように動作可能であり、前記解釈手段は、所定の閾値を超える信頼スコアを有する前記解釈結果データを解釈結果データの前記組から選択するように動作可能であり、
前記制御手段が、解釈エラーの発生が検出された場合、前記少なくとも１つのユーザ入力データの項目について前記所定の閾値を調整させるように動作可能であることを特徴とする請求項１乃至７のいずれか１項に記載の装置。
【請求項９】
前記制御手段は、前記解釈手段が解釈エラーの発生を検出した場合、前記解釈手段に、異なる順序で前記ユーザ入力データの項目を解釈させることによって、ユーザ入力データの項目の前記組の少なくとも１つのユーザ入力データの項目について、前記解釈結果データに対する制約を修正させるように動作可能であることを特徴とする請求項１乃至４のいずれか１項に記載の装置。
【請求項１０】
前記解釈手段は、認識文法を使用してユーザ入力データの項目を解釈するように構成され、
前記制御手段は、後続ユーザ入力データの項目の認識文法を、少なくとも１つの他のユーザ入力データの項目について得られた前記解釈結果データと一貫性を有する認識文法データに制限するように動作可能であることを特徴とする請求項１乃至９のいずれか１項に記載の装置。
【請求項１１】
前記認識文法を更に備えることを特徴とする請求項１０に記載の装置。
【請求項１２】
前記認識文法は、ユーザ入力データの項目ごとにそれぞれの異なる認識文法ファイルを提供することを特徴とする請求項１１に記載の装置。
【請求項１３】
前記解釈手段は、前記データベースとして、潜在的な解釈結果データの項目の組をユーザ入力データの項目ごとに含むデータベースにアクセスするように構成され、各潜在的な解釈結果データの項目は、潜在的な解釈結果データの項目を、ユーザ入力データの項目の前記組の１つと異なる１以上の潜在的な解釈結果データに関連付ける関連付けデータと共に提供されることを特徴とする請求項２、４、又は、請求項２もしくは４に従属する請求項３及び５乃至１２のいずれか１項に記載の装置。
【請求項１４】
前記データベースを更に備え、当該データベースは、ユーザ入力データの項目ごとに、潜在的な解釈結果データの組を含み、各潜在的な解釈結果データの項目は、潜在的な解釈結果データの項目をユーザ入力データの項目の前記組の１つと異なる１以上の潜在的な解釈結果データの項目に関連付ける関連付けデータと共に提供されることを特徴とする請求項２もしくは４又は請求項２もしくは４に従属する請求項３及び５乃至１２のいずれか１項に記載の装置。
【請求項１５】
各潜在的な解釈結果データの項目は、ユーザ入力データの項目の組の前記他のもののそれぞれについての１以上の潜在的な解釈結果データの項目に、潜在的な解釈結果データの項目を関連付ける関連付けデータと共に提供されることを特徴とする請求項１４に記載の装置。
【請求項１６】
前記制御手段は、当該制御手段がユーザ入力データの項目の前記組に関して解釈エラーの発生を検出しないかもはや検出しない場合に、確認ユーザ入力データの項目を供給するように前記ユーザが要求されるように構成され、前記制御手段は、ユーザ入力データの項目の前記組が正しく解釈されたことを前記ユーザが確認しなかったことを、前記確認ユーザ入力データの項目についての前記解釈結果データが示した場合、解釈エラーを識別するように構成されたことを特徴とする請求項１乃至１５のいずれか１項に記載の装置。
【請求項１７】
前記制御手段は、当該制御手段が最初のユーザ入力データの項目についての前記解釈結果データの解釈エラーの発生を検出した場合、その最初のユーザ入力データの項目の前記組についての前記解釈結果データを再解釈することを前記解釈手段に指示するように動作可能であることを特徴とする請求項１乃至１６のいずれか１項に記載の装置。
【請求項１８】
前記解釈手段は、音声認識手段を備えることを特徴とする請求項１乃至１７のいずれか１項に記載の装置。
【請求項１９】
ユーザが、写真コピー機などの事務機械の使用に関するデータを供給し、前記使用についてのログ記録に関するタスクを事務機械供給者とともに実行できるようにするように適合されたことを特徴とする請求項１乃至１８のいずれか１項に記載の装置。
【請求項２０】
前記データベースは、会社データ、機械シリアル番号データ、及び住所関連データを含み、
前記ユーザ入力データの項目は、会社名、機械シリアル番号、及び住所関連データを含むことを特徴とする請求項１４に記載の装置。
【請求項２１】
タスクの実行を容易にするために、関連するユーザ入力データの項目の組を処理する装置の制御方法であって、
ユーザ入力データの項目を受け取る受信工程と、
ユーザ入力データの項目の前記組を解釈し、ユーザ入力データの項目ごとの解釈結果データを含む解釈結果データの対応する組を生成する解釈工程であって、ユーザ入力データの項目の前記組の少なくとも１つの他の項目について得られた前記解釈結果データに関連する制約データに基づいてユーザ入力データの前記組の項目の解釈を制限するようにされた解釈工程と、
ユーザ入力データの項目の前記組における項目についての前記解釈結果データの解釈エラーの発生を検出する検出工程と、
ユーザ入力データの項目の前記組における項目について解釈エラーが検出された場合、修正された解釈結果データを生成するために、修正された制約データを使用してユーザ入力データの項目の組における少なくとも１つの他の項目を再解釈する再解釈工程と、
修正された解釈結果データの前記組に基づいてタスクの前記実行を容易にするために制御信号を提供する制御工程とを備えることを特徴とする装置の制御方法。
【請求項２２】
前記解釈工程は、前記ユーザ入力データの項目に関連するデータを含み前記制約データを提供するデータベースを使用して、前記ユーザ入力データの項目を解釈することを特徴とする請求項２１に記載の装置の制御方法。
【請求項２３】
前記ユーザ入力データの項目を供給することをユーザに促す工程を更に備えることを特徴とする請求項２１又は２２に記載の装置の制御方法。
【請求項２４】
タスクの実行に関してユーザとの対話を実行する装置の制御方法であって、
前記タスクを実行できるようにするタスク・データを取得するために、ユーザ入力データの項目の対応する組を供給することを前記ユーザに促すためのプロンプト・データの組を供給する供給工程と、
プロンプト・データの前記組に対する前記ユーザの応答を表すユーザ入力データの項目を受け取る受信工程と、
前記タスクを実行できるようにする前記タスク・データを提供するために、前記ユーザ入力データの項目を解釈し、解釈結果データの組を得る解釈工程であって、プロンプト・データの前記組に関連するデータを含むデータベースを使用して前記ユーザ入力データの項目を解釈し、当該解釈工程においてアクセスされた前記データベース内の前記データに基づいて、既に解釈された前記組の１以上のユーザ入力データの項目についての前記解釈結果データと一貫性を有する解釈結果データに、ユーザ入力データの項目の前記組の項目の解釈を制限する解釈工程と、
前記解釈結果データ及び前記データベース内の前記データの少なくとも１つに基づいてユーザ入力データの項目について前記解釈結果データにおける解釈エラーの発生を識別する識別工程と、
解釈エラー発生が識別された場合、修正された制約を使用して解釈エラーの発生が検出された前記ユーザ入力データの項目以外の前記組の少なくとも１つのユーザ入力データの項目を再解釈する再解釈工程と、
解釈結果データの前記修正された組に基づいて前記タスクの前記実行を指示する指示工程とを備えることを特徴とする装置の制御方法。
【請求項２５】
請求項１に記載の装置で使用される解釈装置であって、
ユーザ入力データの項目の前記組を解釈し、ユーザ入力データの項目ごとの解釈結果データを含む解釈結果データの対応する組を生成するように動作可能な解釈手段であって、ユーザ入力データの項目の前記組の少なくとも１つの他の項目について得られた前記解釈結果データに関連する制約データに基づいてユーザ入力データの前記組の項目の解釈を制限するように構成された解釈手段と、
ユーザ入力データの項目の前記組における項目についての前記解釈結果データの解釈エラーの発生を検出するように動作可能な制御手段であって、ユーザ入力データの項目の前記組における項目について解釈エラーが検出された場合、修正された解釈結果データを生成するために、修正された制約データを使用してユーザ入力データの項目の組における少なくとも１つの他の項目を前記解釈手段に再解釈させるように構成された制御手段とを備えることを特徴とする解釈装置。
【請求項２６】
ユーザ入力データを解釈する方法であって、
ユーザ入力データの項目の前記組を解釈し、ユーザ入力データの項目ごとの解釈結果データを含む解釈結果データの対応する組を生成する解釈工程であって、ユーザ入力データの項目の前記組の少なくとも１つの他の項目について得られた前記解釈結果データに関連する制約データに基づいてユーザ入力データの前記組の項目の解釈を制限するように構成された解釈工程と、
ユーザ入力データの項目の前記組における項目についての前記解釈結果データの解釈エラーの発生を検出する検出工程と、
ユーザ入力データの項目の前記組における項目について解釈エラーが検出された場合、修正された解釈結果データを生成するために、修正された制約データを使用してユーザ入力データの項目の組における少なくとも１つの他の項目が再解釈されるように構成された再解釈工程とを備えることを特徴とする方法。
【請求項２７】
請求項２１乃至２４又は２６のいずれか１項に記載の方法を実行するための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置及びデータ処理方法に関し、特に、タスクの実行を容易にするために、関連するユーザ入力データの項目の組を処理するデータ処理装置及びデータ処理方法に関する。
【背景技術】
【０００２】
例えば、チケットの電話予約や、あるいは銀行や料金支払いの取引の完了等を可能にする、ユーザや顧客との対話を自動的に実行する装置が、現在使用されている。これらの装置は、取引の完了に必要な情報を引き出すために、例えば、ユーザに一連の質問をする等、ユーザにプロンプトを出すことによって動作する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
このような装置では、対話の各段階で、ユーザの入力を処理・解釈しなければならない。したがって、例えば、入力が口頭の場合には音声認識処理を行わなければならない。ユーザとの対話の成功は、取引が効率的に、ユーザの望みに従って完了することを保証するために、装置がユーザの入力をすばやく正確に処理できることに依存する。したがって、装置は、通常は、ユーザの入力に従ってアクションを行うことを指示する前に、ユーザの入力の解釈が正しいことを確認するためにユーザに質問する。ユーザが、解釈が正しいと確認しない場合、装置は、ユーザの入力の処理で誤りが生じたと判定し、回答を繰り返すようにユーザに求める。これは、必然的にユーザとの対話を長引かせ、ユーザが必要な取引を完了するのに必要な時間を増やし、その結果、ユーザは、そのシステムが望ましくも効率的でもないとみなし、将来そのシステムを使用しなくなる可能性が高いだろう。また、ユーザは、複数回同一のプロンプトに回答しなければならないことによって落胆し、あるいは腹を立てる可能性もある。
【０００４】
このような状況を鑑みて、本発明は、ユーザ入力データを認識するのに使用される文法を他のユーザ入力データの解釈結果に従って制限することによって、タスクの実行を容易にするために関連するユーザ入力データの項目の組を処理するデータ処理装置を提供し、解釈エラーが検出される時にユーザ入力データの処理を再評価できるようにしている。
【０００５】
また、ある側面において、本発明は、前のプロンプトへの応答の認識結果に従って連続するプロンプトへの応答を認識するのに使用される文法を制限することによって、連続するプロンプトに対する応答の効率的な処理を可能にし、解釈エラーが検出される時にプロンプトに対するユーザ応答を再評価する処理を可能にする（これによって、ユーザへのプロンプトを繰り返す必要が減り、ユーザとの対話の長さを減らせるようになる可能性がある）ユーザとの対話を行う装置を提供する。
【０００６】
本発明の実施形態に係る対話装置は、ユーザがそのように情報を求められることを期待する順序でプロンプトのシーケンスを提示でき、なおかつ、あるプロンプトへの応答を、他のプロンプトへの応答より信頼性のある形で認識できるという事実を利用することができる。したがって、例えば、シリアル番号は会社名より信頼性のある形で認識することができる。というのは、シリアル番号は標準フォーマットに従う傾向があるからである。しかし、ユーザは、自然に、シリアル番号の前に会社名を質問されることを期待する可能性がある。本発明の実施形態に係る対話装置は、シリアル番号が会社名より正確に認識できるという事実を利用できるようにすると同時に、ユーザが最も自然と思うような順序で、プロンプトをユーザに提示できるようにする。
【０００７】
一実施形態においては、ユーザは、音声の使用によって装置と通信し、自動音声認識エンジンが、入力音声データの処理に使用される。自動音声認識エンジンは、特にユーザが話す途中で小休止する場合に、ユーザの音声データの真の終点を必ずしも検出できない。ユーザ応答データ・ファイルにデジタル音声データを記憶することは、小休止によって分離された音声データを再処理のために連結でき、その結果、終点検出エラーの可能性を考慮に入れられるという長所を有する。
【０００８】
この装置は、例えばジェスチャ入力データ、読唇入力データ、手書き入力データ、又はキーボード入力データなどの他の形のユーザ入力を受け取るように構成することができる。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明は、関連するユーザ入力データの項目の組を処理する装置であって、ユーザ入力データの項目を受信する受信手段と、  ユーザ入力データの項目の前記組を解釈し、ユーザ入力データの項目ごとの解釈結果データを含む解釈結果データの対応する組を生成するように動作可能な解釈手段であって、ユーザ入力データの項目の前記組の少なくとも１つの他の項目について得られた前記解釈結果データに関連する制約データに基づいてユーザ入力データの前記組の項目の解釈を制限するように構成された解釈手段と、  ユーザ入力データの項目の前記組における項目についての前記解釈結果データの解釈エラーの発生を検出するように動作可能な制御手段であって、ユーザ入力データの項目の前記組における項目について解釈エラーが検出された場合、修正された解釈結果データを生成するために、修正された制約データを使用してユーザ入力データの項目の組における少なくとも１つの他の項目を前記解釈手段に再解釈させるように構成され、修正された解釈結果データの前記組に基づいてタスクの前記実行を容易にするために制御信号を提供するように動作可能である制御手段とを備えることを特徴とする。
【発明を実施するための最良の形態】
【００１０】
本発明の実施形態を、添付図面を参照して例として、以下説明する。
【００１１】
図１を参照すると、ユーザがタスク又はアクションの実行を指示できるようにする対話を行う対話装置２００が示されている。ユーザが指示できるアクションは、対話装置が使用されているアプリケーションに応じて、例えば、選択されたショーのチケットを予約しユーザへ転送することや、銀行取引を完了すること、或いは、機器使用のログをデータベースに記録することといったユーザの望みを実行するために、例えば、別のコンピューティング装置、又は、同様の装置の別のモジュールに指示を発行することとしてもよい。
【００１２】
対話装置２００には、対話格納部２からプロンプトを選択し、ユーザ出力供給部３を介してユーザにプロンプトを出力するように構成された対話制御部１と、ユーザ出力供給部３を介してユーザに供給されるプロンプトへのユーザ応答を受け取るユーザ入力供給部４が含まれる。プロンプトは、質問の形をとってもよいし、或いは、単にユーザ入力が求められていることをユーザに示すステートメント又はコメントとしてもよい。
【００１３】
この装置は、解釈結果データを供給するために、ユーザ入力供給部４によって供給されるユーザ入力データを解釈する解釈部５００を有する。解釈部５００は、認識文法格納部６に記憶された文法を使用してユーザ入力データを処理又は認識するユーザ入力認識部５と、ユーザ入力認識部５の動作を制御する認識部制御部８を有する。
【００１４】
また、ユーザとの対話が満足に完了し、入力が正しく解釈されたことをユーザが確認した後に、ユーザによって要求されたアクションを実行させるために、ユーザ入力実行部（ａｃｔｉｏｎｅｒ）１１が設けられている。
【００１５】
また、ユーザ入力供給部４が受け付けたユーザ応答データを記憶するために、ユーザ応答データ格納部７が設けられている。更に、解釈部５００から提供される解釈結果データを記憶するために、解釈結果データ格納部９が設けられている。
【００１６】
また、対話制御部１によって供給されるプロンプトに対して期待される応答又は回答に関連する顧客情報データを記憶する、顧客情報データベース１０も設けられている。
【００１７】
図１に示された例において、ユーザ応答データ格納部７は、プロンプト１、２、…、Ｎのそれぞれについてユーザ応答データ・ファイル７ａ、７ｂ、…、７ｎを有しており、これらは対話中にユーザに出力され得る。同様に、解釈結果データ格納部９は、プロンプト１、２、…、Ｎのそれぞれについての解釈結果データ・ファイルを有し、顧客情報データベース１０は、プロンプト１、２、…、Ｎに関連する顧客情報データのそれぞれについて顧客情報データ・ファイル１０ａ、１０ｂ、…、１０ｎを有している。また、この例では、認識文法格納部６は、プロンプト１、２、…、Ｎのそれぞれに対する応答の認識に使用される、文法ファイル６ａ、６ｂ、…、６ｎを有している。
【００１８】
更に、装置の全体的な動作を制御し、対話制御部１、ユーザ入力認識部５、認識部制御部８、及びユーザ入力実行部１１の動作を調整する動作制御部１４が設けられている。
【００１９】
図２は、解釈結果データ・ファイル７ａの構造を特に概略的に示した図である。解釈結果データ・ファイル７ａは、ユーザ入力認識部５によって供給される解釈結果１、２、…、Ｍのそれぞれについて解釈結果データ・エントリ・フィールド７０ａ、７０ｂ、…、７０ｍを有する。解釈結果データ・エントリ・フィールド７０ａ、７０ｂ、…、７０ｍのそれぞれは、ユーザ入力認識部５によって判定された認識結果の信頼値を示すデータを含む信頼スコア・データ・エントリ・フィールド８０ａ、８０ｂ、…、８０ｍに関連づけられている。解釈結果データ・ファイル７ｂ、…、７ｎは、それぞれ、解釈結果データ・ファイル７ａと同様の構造を有する。
【００２０】
図３に、顧客情報タイプ１ファイル１０ａの構造を示す。このデータ・ファイルは、異なる顧客１、２、…、ｑのタイプ１顧客情報のフィールドとして、顧客情報タイプ１データ・エントリ・フィールド１２ａ、１２ｂ、…、１２ｑを有する。各顧客情報タイプ１データ・エントリ・フィールド１２ａ、１２ｂ、…、１２ｑは、その顧客情報タイプ１データ・エントリ・フィールド１２ａ、１２ｂ、…、１２ｑを他の顧客情報タイプの１以上の顧客情報エントリ・フィールドに関連付けるデータを含むように構成された、ＩＤデータ・エントリ・フィールド１３ａ、１３ｂ、…、１３ｑと関連づけられている。他の顧客情報タイプは、例えば、顧客名データ、郵便番号等の顧客住所データ、機器のシリアル番号データ等である。ＩＤデータを用いることによって、異なるタイプのデータを互いに関連付けることができる。すなわち、顧客名を、１以上の住所や１以上のシリアル番号に関連付けることができる。他の顧客情報ファイルは、顧客情報タイプ１ファイル１０ａに類似する構造を有する。
【００２１】
図４ａに概略的に示されるように、対話装置２００は、当該対話装置２００がネットワーク１６を介して複数のユーザ・デバイス１５と通信できるようにする通信システム３００に組み込まれるように構成される。ネットワーク１６は、陸線又はＰＯＴＳ（ｐｌａｉｎ  ｏｌｄ  ｔｅｌｅｐｈｏｎｅ  ｓｅｒｖｉｃｅ）網、ＧＰＲＳ遠隔通信網などのセルラ遠隔通信網、インターネット、イントラネット、ローカル・エリア・ネットワーク、又は広域ネットワーク（ワイド・エリア・ネットワーク）、あるいはこれらの組合せとすることができる。例として、図４ａに、固定電話機又は陸線電話機の形のユーザ・デバイス１５ａとセル電話機（「セルホン」又は移動体電話機）の形のユーザ・デバイス１５ｂの両方が対話装置２００と通信できるようにする施設を有するネットワーク１６を示す。図４ａからわかるように、通信システム３００には、通信システムの動作を管理するサービス供給者２０１も含まれる。対話装置２００は、サービス供給者２０１によって管理されてもよいし、或いは、サービス供給者２０１からは独立していてもよい。
【００２２】
図４ｂに、コンピューティング装置を設定して図１に示された対話装置２００を実現するためのプログラムモジュールを格納した、コンピューティング装置４００の機能ブロック図を示す。また、図４ｃに、図４ａに示されたセル電話機１５ｂ等のユーザ・デバイス１５の１例に対応する機能ブロック図を示す。
【００２３】
まず図４ｂを参照すると、コンピューティング装置４００は、図１に示された対話装置２００を実現するようにコンピューティング装置を設定するためのプログラム命令モジュールを記憶する、ＲＯＭ及び／又はＲＡＭを含むメモリ２０を有するプロセッサ３０を備える。図からわかるように、プログラム命令モジュールには、コンピューティング装置にユーザ入力供給部４及びユーザ出力供給部３としての機能を実行させる入力制御モジュール２１及び出力制御モジュール２２と、コンピューティング装置に、認識部制御部８、対話制御部１、ユーザ入力認識部５、及びユーザ入力実行部１１の機能をそれぞれ実行させる、認識部制御モジュール２３、対話モジュール２４、認識モジュール２５、ユーザ入力実行モジュール２６と、コンピューティング装置に動作制御部１４の機能を実行させる動作制御モジュール２７とが含まれる。
【００２４】
この例では、メモリ２０は、更に、ユーザ入力データ格納部７、解釈結果データ格納部９、及び認識文法格納部６を含むように構成されている。
【００２５】
プロセッサ３０は、この例では顧客情報データベース１０を含むハード・ディスク・ドライブなどの大容量記憶装置４０にも結合されている。しかし、もちろん、メモリ２０に記憶された１以上のデータ格納部及びモジュールは、プログラム命令モジュールとともに大容量記憶装置４０に記憶しておき、必要な時に実行のためにメモリ２０にアップロードするようにしてもよいことを理解されたい。
【００２６】
プロセッサ３０は、例えばフロッピー（登録商標）・ディスク、ＣＤ-ＲＯＭ、ＣＤ-Ｒ、ＣＤ-ＲＷ、ＤＶＤ等の取外し可能媒体（removable medium:ＲＭ）３２を受ける取外し可能媒体デバイス（removable medium device:ＲＭＤ）３１にも結合されている。更に、プロセッサ３０は、例えばモデム又はネットワーク・カードなど、ネットワーク１６を介する通信を可能にする通信（communication: ＣＯＭＭ）デバイス３３に結合されている。プロセッサ３０は、少なくともキーボード５３、マウス等のポインティング・デバイス５２、及び陰極線管（ＣＲＴ）又は液晶ディスプレイ（ＬＣＤ）等のディスプレイ５４を有するユーザ・インターフェース５０にも結合されている。ユーザ・インターフェースは、ラウドスピーカ５１、マイクロホン５６、ならびにおそらくはカメラ５５及びデジタルタブレット５７をも有することができる。
【００２７】
コンピューティング装置４００は、下記の１以上を用いることで、図１に示された対話装置２００を実現するようにプログラム命令及びデータを利用して構成することができる。
【００２８】
１．メモリ２０及び大容量記憶装置４０の少なくとも１つに事前に記憶されたプログラム命令及び／又はデータ、
２．取外し可能媒体３２からダウンロードされたプログラム命令及び／又はデータ、
３．ネットワークに結合された別のコンピューティング装置からネットワーク１６を介して信号Ｓとして供給されたプログラム命令及び／又はデータ、
４．ユーザ・インターフェース５０の１以上のユーザ入力デバイスを使用してユーザによって入力されたプログラム命令及び／又はデータ。
【００２９】
図４ｃに、図４ａに示されたセル電話機１５ｂ等の、ユーザ・デバイス１５の機能ブロック図を示す。ユーザ・デバイスは、ＲＯＭ及び／又はＲＡＭの形のメモリ６１と、モデム又は無線通信カードなどのネットワーク１６を介する通信を可能にする通信デバイス（ＣＯＭデバイス）６２と、この例ではラウドスピーカ７１、マイクロホン７６、キーパッド７３、ディスプレイ７４（一般にＬＣＤディスプレイ）、及びおそらくはカメラ７５を含むユーザ・インターフェース７０と、に関連するプロセッサ６０を備えている。ディスプレイ７４には、ユーザがスタイラスを使用してデータを入力できるようにする手書き入力区域（ＨＷ(handwriting)入力）７４ａを含めることができる。
【００３０】
図４ｃに関して説明したユーザ入力デバイス１５は、移動体電話機又はセル電話機である。この場合、ユーザ入力データは音声データであり、ユーザ入力認識部５には、例えばＩＢＭ社によって供給されるＶｉａＶｏｉｃｅ（登録商標）等の市販自動音声認識ソフトウェアによって供給される、自動音声認識エンジンが含まれる。他の可能性として、ユーザ・デバイス１５は、例えば、モバイル通信機能又は無線通信機能を有する携帯情報端末（ＰＤＡ）、パーソナル・コンピュータ、又はラップトップ機とすることができる。ここで、ユーザ・デバイスには、一般に、取外し可能媒体３２を受ける取外し可能媒体デバイス３１も含まれる（破線です）。また、ユーザ・インターフェース７０には、（図４ｃに破線で示すように）一般に、マウス又はタッチ・パッドなどのポインティング・デバイス７２や、デジタルタブレット７７も含めることができる。
【００３１】
以上、図１から図４ｃを参照して説明したシステムの動作において、対話装置２００によって提供されるサービスの利用を望むユーザは、まず、通常の形式でネットワーク１６を介して対話装置２００にアクセスする。対話装置２００へのアクセスは、例えば、ネットワークが遠隔通信網である場合には対話装置２００の電話番号をダイヤルすることによって、ネットワーク１６がインターネット、イントラネット、ローカル・エリア・ネットワーク、又は広域ネットワークである場合にはインターネット、イントラネット、又はネットワークのアドレスを入力することによって、それぞれ行う。
【００３２】
対話装置の動作を、図５から１１を参照して以下に説明する。
【００３３】
図５は、動作制御部１４による対話装置のローカル制御を示すフローチャートである。
【００３４】
動作制御部１４が、ユーザ入力供給部４からの入力に基づいて、ユーザ・デバイス１５（図４ａ）がネットワーク１６を介して対話装置２００との通信を確立したと判定した場合、図５のステップＳ１において、動作制御部１４は、対話制御部１に対して、ユーザ入力供給部４と通信しユーザ出力供給部３によってプロンプトの組の連続する１つがユーザに対して出力されるように指示する。このとき、先行するプロンプトに対するユーザ応答データがユーザ応答データ格納部７の対応するプロンプト・ユーザ応答データ・ファイル７ａ、７ｂ、…、７ｎに記憶されたことを、ユーザ入力供給部４が対話制御部１に対して確認した後に、組の次のプロンプトが出力されるようにする。
【００３５】
ステップＳ２では、ユーザ入力供給部４が、プロンプトの組の最後のプロンプトに対する応答が対応するユーザ応答データ・ファイルに記憶されたことを通知する場合に、対話制御部１は、この事実を動作制御部１４に通信し、動作制御部１４は、記憶されたユーザ応答データの認識及び解釈を開始するように解釈部５００に指示する。
【００３６】
ステップＳ３では、認識部制御部８から解釈結果を受け取った際に、解釈エラー、例えば解釈部５００が解決できないようなユーザ応答データの認識におけるエラー（認識エラー）があることを認識部制御部８が通知する場合、動作制御部１４は、対話制御部１にユーザに対して更なる情報を要求するように指示する。この要求は、例えば補足のプロンプトをユーザに出力するか、或いは、以前のプロンプトのうち１以上に対する応答を繰り返すようにユーザに要求することによって行われる。しかし、認識エラーがないことが認識部制御部８から通知される場合には、動作制御部１４は、ユーザ出力供給部３を介してユーザに確認プロンプトを出力するように対話制御部１に指示し、また、ユーザ応答データ格納部７の対応するプロンプト応答データ・ファイルにユーザ応答を記憶するようにユーザ入力供給部４に指示する。
【００３７】
ステップＳ４では、確認プロンプトへの応答が対応するユーザ応答データ・ファイルに記憶されたことがユーザ入力供給部４から通知されると、動作制御部１４は、記憶されたユーザ確認応答データの認識及び解釈を開始するように解釈部５００に指示する。
【００３８】
ステップＳ５では、認識部制御部８が、ユーザ応答により解釈結果が承認されたことを動作制御部１４に通知した場合、動作制御部１４は、ユーザの指示が実行されつつあることをユーザに通知するように対話制御部１に指示し、ユーザ入力実行部１１に、ユーザ入力に従って動作するように指示する。上で示したように、ユーザによって指示されるアクションは、対話装置が使用されているアプリケーションに応じて、例えば、選択されたショーのチケットを予約しユーザに転送することや、銀行取引を完了すること、又は機器使用のログをデータベースに記録すること等のユーザの願望を実行するために、別のコンピューティング装置又は同一の装置の別のモジュールに対して指示を発行することとすることができる。
【００３９】
しかし、認識部制御部８が、ユーザが解釈結果の正しさを確認しなかったと判定する場合、動作制御部は、さらなる情報を得るためにユーザ出力供給部３を介してユーザと通信するように対話制御部１に指示する。例えば、対話制御部１が、１以上のプロンプトの組への応答を繰り返すようにユーザに要求するようにしてもよい。
【００４０】
図６ａに、対話制御部１の動作を示すフローチャートを示す。
【００４１】
ステップＳ６で、対話制御部１が、対話を開始する指示を動作制御部１４から受け取った場合（ステップＳ６でＹＥＳ）、図６のステップＳ７へ進む。ステップＳ７において、対話制御部１は、対話格納部２内の対話ファイルにアクセスして、ウェルカム・メッセージ（ｗｅｌｃｏｍｅ  ｍｅｓｓａｇｅ）及び質問されるプロンプトの組の最初のものを取得し、ユーザ入力供給部４に、次のユーザ応答データが記憶される特定のプロンプト・ユーザ応答データ・ファイルを指示する。さらに、ユーザ出力供給部３が、ウェルカム・メッセージと、ユーザに入力を供給することを促す最初のプロンプトとを表すデータを、ネットワーク１６を介してユーザ・デバイス１５へ出力するようにさせる。
【００４２】
次に、ステップＳ８で、対話制御部１は、最初のプロンプトへのユーザ応答が受け取られ、ユーザ応答データ格納部７に記憶されたことの、ユーザ入力供給部４からの確認を待つ。この確認が受け取られた場合（ステップＳ８でＹＥＳ）、ステップＳ９へ進む。ステップＳ９において、対話制御部は、対話格納部にアクセスし、プロンプトの組の次のプロンプトの対話ファイルを選択する。さらに、次のユーザ応答データが記憶されている特定のプロンプト・ユーザ応答データ・ファイルをユーザ入力供給部４に指示し、ユーザ出力供給部３が、そのプロンプトをネットワーク１６を介してユーザ・デバイス１５に出力するようにさせる。そしてステップＳ１０へ進む。
【００４３】
ステップＳ１０で、対話制御部は、プロンプトの組の最後のプロンプトがユーザに質問されたかどうかを検査し、まだである場合（ステップＳ１０でＮＯ）には、組の最後のプロンプトが質問されるまで、ステップＳ８からステップＳ１０を繰り返す。最後のプロンプトが質問された場合（ステップＳ１０でＹＥＳ）はステップＳ１１へ進む。
【００４４】
次に、ステップＳ１１で、対話制御部は、動作制御部１４からの、さらなるプロンプトの出力要求を待つ（図５のステップＳ３に関して上で説明したように、確認プロンプト又はさらなる情報の要求である可能性がある）。そのような要求が受け取られた場合（ステップＳ１１でＹＥＳ）、ステップＳ１２へ進む。ステップＳ１２において、対話制御部は、対話格納部２の関連する対話ファイルにアクセスし、次のユーザ応答データが記憶される特定のプロンプト・ユーザ応答データ・ファイルをユーザ入力供給部４に示す。更に、ユーザ出力供給部３を介して対応するプロンプトをユーザに出力するよう制御する。次に、対話制御部は、ステップＳ１３で、対話が完了したか終了したことを動作制御部１４が確認したか否かを検査し、確認されていない場合（ステップＳ１３でＮＯ）には、ステップＳ１１からステップＳ１３を繰り返す。
【００４５】
図６ｂに、ユーザ入力供給部４によって実行される動作を示すフローチャートを示す。まず、ステップＳ１４において、ユーザ入力供給部４は、次に受け取られるユーザ応答を、特定のファイル、すなわち、ユーザに最後に尋ねられたプロンプトに対応するファイルに記憶するという、対話制御部１からの指示を待つ。次に、ステップＳ１５において、ユーザ入力供給部４が、ユーザ応答データを受信した場合、ユーザ入力供給部４は、特定のプロンプト・ユーザ応答データ・ファイルに受信したユーザ応答データを記憶制御し、データが記憶されたことを対話制御部１に通知する。これにより、対話制御部が、ユーザ出力供給部３へのプロンプトの組の次のプロンプトの出力に移ることができるようにする。
【００４６】
次に、ステップＳ１６において、ユーザ入力供給部４は、対話が終了したことを示す指示を動作制御部１４から受け取ったか否かを判定する。受け取っていない場合（ステップＳ１６でＮＯ）、ステップＳ１４及びステップＳ１５を繰り返す。
【００４７】
次に、図７及び８を参照して、解釈部５００の動作を説明する。図７及び８は、動作制御部１４からの記憶されたユーザ応答データを認識し解釈する要求に応答して、認識部制御部８が実行する動作、及び、ユーザ入力認識部５が実行する動作をそれぞれ示している。
【００４８】
まず図７を参照すると、ステップＳ２０で、認識部制御部８が、ユーザ応答データを解釈する要求を動作制御部１４から受け取った場合、ステップＳ２１へ進む。ステップＳ２１では、カウントｘに１をセットする。次に、ステップＳ２２で、認識部制御部８は、認識文法格納部６のプロンプトｘ文法を使用してプロンプトｘのユーザ応答データを処理するようにユーザ入力認識部５に要求する。
【００４９】
ステップＳ２３で、ユーザ入力認識部５が、プロンプトｘのユーザ応答データの処理が完了したことを通知した場合、認識部制御部８は、解釈結果データ格納部９のプロンプトｘ解釈結果にアクセスする。次に、ステップＳ２４で、図９を参照して後に詳細に説明するように、解釈結果を処理する。ステップＳ２５において、結果として、認識部制御部８が、解釈エラーが発生したと判定した場合（ステップＳ２５でＹＥＳ）、ステップＳ２６において、認識部制御部８は、図１０及び１１を参照して後に詳細に説明するように、解釈結果を再評価させる。
【００５０】
解釈結果の再評価の後、又はステップＳ２５で解釈エラーが発生したと判定されなかった場合（ステップＳ２５でＮＯ）、ステップＳ２７において、認識部制御部８は、ｘ＝ｚが成立するかどうか、すなわち、動作制御部１４によって識別されるプロンプトの数だけ解釈結果が処理されたか否かを検査する。ただし、ｚは後述するように、プロンプトの組のプロンプト数である。ｘ＝ｚが成立しない場合（ステップＳ２７でＮＯ）、ステップＳ２８においてｘ＝ｘ＋１をセットし、ステップＳ２７においてｘ＝ｚが成立するまでステップＳ２２からステップＳ２７の処理を繰り返す。尚、図５のステップＳ２において、動作制御部１４が、記憶されたユーザ応答データの認識及び解釈を要求した場合、Ｚはプロンプトの組のプロンプト数と等しくなるようにセットされ、その結果、これらのプロンプトのそれぞれについて、ステップＳ２２からステップＳ２７が繰り返されるようになる。一方、動作制御部が、記憶されたユーザ確認応答データの認識及び解釈を要求した場合、Ｚには１がセットされ、その結果、ステップＳ２２からステップＳ２７は、１回だけ実行されるようになる。
【００５１】
ステップＳ２７でｘ＝ｚが成立した場合（ステップＳ２７でＹＥＳ）、認識部制御部８は、認識及び解釈処理の結果について動作制御部１４に通知する。これにより、動作制御部１４は、認識及び解釈がプロンプトの組に関する応答データのものである場合には図５のステップＳ３の動作を実行でき、応答データが確認プロンプトに対する応答である場合には図５のステップＳ５に示された動作を実行することができる。
【００５２】
図８は、図１に示されたユーザ入力認識部５の動作を示すフローチャートである。
【００５３】
まず、ステップＳ３０において、ユーザ入力認識部５は、受け取られたプロンプトに関するユーザ応答データの処理要求を受信するまで待機する。
【００５４】
受け取られたユーザ応答データの処理要求を受信した場合（ステップＳ３０でＹＥＳ）、ユーザ入力認識部５は、ステップＳ３１で、受信した要求から識別されるユーザ入力データを、対応するプロンプト・ユーザ応答データ・ファイルから取り出す。
【００５５】
次に、ステップＳ３２において、ユーザ入力認識部５は、要求において指定された文法にアクセスし、その文法を使用してユーザ応答データを処理して、解釈結果の組を提供する。ここで、各解釈結果は、解釈結果の信頼性を示す信頼スコアに関連づけられており、この信頼スコアは、解釈結果が、ユーザが実際に入力したものを表している確度である。例えば、プロンプト１に対するユーザの応答が期待される場合、ユーザ入力認識部５は、ユーザ入力供給部４から受け取られたユーザ入力を処理するために、プロンプト１文法６ａを使用するように指示される。
【００５６】
ステップＳ３３で、ユーザ入力認識部５は、解釈結果データ格納部９の対応するファイルに、解釈結果を信頼スコアと共に記憶し、ステップＳ３４へ進む。ステップＳ３４においては、処理すべきユーザ応答データに関する指示が更に存在するかを検査する。ユーザ入力認識部５は、ステップＳ３４でＮＯになるまで、すなわち、対話が完了したことを動作制御部１４が通知するまで、ステップＳ３０からステップＳ３４を繰り返す。
【００５７】
図９に、図７のステップＳ２４で認識部制御部８によって実行される動作を示す流れ図を示す。
【００５８】
まず、ステップＳ４０で、認識部制御部８は、解釈結果のいずれかの信頼スコアが、所定の最小閾値を超えるか否かを判定する。超えない場合（ステップＳ４０でＮＯ）、認識部制御部は、ステップＳ４１で解釈エラーが発生したと判定する。
【００５９】
しかし、ステップＳ４０で閾値を超える場合（ステップＳ４０でＹＥＳ）には、ステップＳ４２へ進む。ステップＳ４２において、認識部制御部８は、解釈結果が、プロンプトの組の１つに対する応答を表すかどうかを判定し、そうである場合（ステップＳ４２でＹＥＳ）に、ステップＳ４３に進む。しかし、認識部制御部８が、解釈結果がプロンプトの組の１つに対する応答を表さない（すなわち、解釈結果が、確認プロンプト又はさらなるプロンプトに対する応答である）と判定する場合（ステップＳ４２でＮＯ）には、認識部制御部は、ステップＳ４４に進む。
【００６０】
応答が、プロンプトの組の１つに対する応答である場合（ステップＳ４２でＹＥＳ）、ステップＳ４３において、認識部制御部８は、現在のプロンプトに関する信頼値の高い上位Ｎ個の解釈を選択し、顧客情報データベース１０にアクセスする。そして、プロンプトの組の次のプロンプトに対応する顧客情報タイプ・データ・ファイルを判定し、そのデータ・ファイル内で、この信頼値の高い上位Ｎ個の結果との一貫性を有するデータを識別する。さらに、認識文法格納部６の次のプロンプトについて文法を制限し、その結果、ユーザ入力認識部５が、次のプロンプトのユーザ応答データを処理する時に、ユーザ入力認識部５が、前のプロンプトに対する信頼値の高い上位Ｎ個の結果との一貫性を有するプロンプトに対応するタイプの顧客情報だけを認識できるようにする。
【００６１】
したがって、例えば、解釈結果が、プロンプトの組の最初のプロンプトに関する場合に、認識部制御部８は、解釈結果データ・ファイルに記憶された信頼スコア（図２参照）から、信頼値の高い上位Ｎ個の解釈結果を識別し、次に、この上位Ｎ位の解釈結果に対応する顧客情報タイプ１データ・ファイル内の顧客情報を識別する。その後、ＩＤフィールド（図３参照）を使用して、認識部制御部８は、最初のプロンプトの信頼値の高い上位Ｎ個の結果と同一のＩＤを有する顧客情報タイプ２タイプ・データ・ファイル内のデータ・エントリを判定する。次に、認識部制御部８は、プロンプト２文法を制限する。これにより、顧客情報に固有でない共通で一般的な単語に加えて、その文法は、認識部制御部８が最初のプロンプトの信頼値の高い上位Ｎ個の結果と一貫性を有すると判定した、タイプ２の顧客情報だけを認識できるようになる。この手順は、さらなるプロンプトについても繰り返す。これにより、プロンプト３文法は、プロンプト２の信頼値の高い上位Ｎ個の結果と一貫性を有する顧客情報に制限される。これ以降のプロンプト文法についても以下同様である。
【００６２】
連続するプロンプトについて文法を制限する手順によって、ユーザ応答データを処理する時にユーザ入力認識部５が検査しなければならない可能性の数をかなり削減することができ、したがって、これは、解釈処理を高速化するという長所を有する。しかし、ユーザ入力認識部５が、あるプロンプトについてユーザ応答データを誤って解釈した場合に、連続するプロンプトの文法が、誤って制限され、したがって、解釈エラーが伝搬し、おそらくは更に状況を悪化させる。認識部制御部は、ステップＳ２５で解釈エラーについて検査し、ステップＳ２６で、解釈エラーを検出した場合に、下で説明するように、解釈結果を再評価することによって、この問題に対処する。
【００６３】
ステップＳ４２において、応答がプロンプトの組の１つに対する応答ではない場合（ステップＳ４２でＮＯ）には、ステップＳ４４へ進む。ステップＳ４４において、認識部制御部８は、プロンプトが確認プロンプトであったと仮定し、確認プロンプトの解釈結果が、プロンプトの組に対するユーザの入力が不正であったことを示した場合、解釈エラーが発生したと判定する。そうでない場合には、認識部制御部８は、解釈が完全であり、正しいことを動作制御部１４に指示する。
【００６４】
図１０に、解釈エラーが検出された場合に認識部制御部８が解釈結果の再評価を引き起こすことができる１つの形を示す。
【００６５】
まず、図１０のステップＳ５０で、認識部制御部８は、解釈エラーが発生したと判定された応答を促したプロンプトを識別する。即ち、認識部制御部８は、プロンプトの組のうちのどれが解釈エラーをもたらしたかを識別するか、確認プロンプトから解釈エラーが発生した場合に、プロンプトの組のうちで確認動作に関連するプロンプトを識別する。
【００６６】
次に、ステップＳ５１で、認識部制御部８の認識結果決定部は、識別されたプロンプトが組の最初のプロンプトであるかどうかを判定する。最初のプロンプトである場合（ステップＳ５１でＹＥＳ）には、その解釈エラーは、解釈結果のどれもが、十分に高い信頼スコアを有しなかったので発生した（これは、例えば、認識処理中のデータ破壊、ソフトウェア障害、又はハードウェア障害のゆえに生じる可能性がある）ことを意味する。このため、ステップＳ５２へ進み、認識部制御部８は、ユーザ入力認識部５に、新しい解釈結果を生成するためにユーザ応答データを再処理するように要求する。その後、ステップＳ５５へ進み、認識部制御部８は、新しい解釈結果データを評価する。
【００６７】
しかし、ステップＳ５１において、識別されたプロンプトが組の最初のプロンプトではない場合（ステップＳ５１でＮＯ）、ステップＳ５３へ進み、認識制御部８は、前のプロンプトに関する信頼スコアの上位Ｎ個の結果と一貫性を有するデータへの文法の制限したことが、ユーザ入力認識部５が十分に高い信頼スコアを有する認識結果を作れなかったことを意味するものと判断する。そこで、ステップＳ５３において、認識部制御部８は、識別されたプロンプトの前のプロンプトの信頼スコアの次の上位Ｍ個の結果が、決定された信頼スコア閾値を超えるか否かを判定する。閾値を超えない（ステップＳ５３でＮＯ）場合、認識部制御部８は、認識処理中のデータ破壊、ソフトウェア問題、又はハードウェア問題のゆえに解釈エラーが発生したと仮定し、ステップＳ５２へ進む。ステップＳ５２では、ユーザ入力認識部に対して、前のプロンプトのユーザ応答データを再処理し、新しい上位Ｎ位の結果を選択し、前のプロンプトの再処理された応答データについて新しい上位Ｎ位の結果に従って制限された文法を使用して、識別されたプロンプトの応答データを再処理するように要求する。
【００６８】
しかし、ステップＳ５３で閾値を超える場合（ステップＳ５３でＹＥＳ）には、ステップＳ５４へ進み、認識部制御部８は、２つのプロンプトの顧客情報データ・タイプを検査して、前のプロンプトの信頼スコアの次の上位Ｍ個が、識別されたプロンプトの解釈結果と一貫性を有するか否かを判定する。一貫性を有しない場合（ステップＳ５４でＮＯ）には、ステップＳ５２へ進み、認識部制御部８は、ユーザ入力認識部５に対して、前のプロンプトのユーザ応答データを再処理するように要求する。しかし、一貫性を有する場合（ステップＳ５４でＹＥＳ）には、ステップＳ５６へ進み、認識部制御部８は次の上位Ｍ個の解釈結果を選択する。
【００６９】
したがって、最初のプロンプト以外に対する応答で解釈エラーが発生した場合に、認識部制御部は、前のプロンプトの解釈結果まで遡り（ｂａｃｋ  ｔｒａｃｋ）、次の上位Ｍ個の解釈結果を検査して、そのいずれかが、識別されたプロンプトの解釈結果と一貫性を有するか否かを判定する。一貫性を有する場合は、その次の上位Ｍ個の結果を選択する。したがって、認識部制御部８は、解釈エラーが検出された場合、前のプロンプトの解釈結果まで遡り、前のプロンプトの解釈結果の評価を修正することによって、連続するプロンプトへの解答を介する解釈エラーの伝搬を防止することができる。
【００７０】
図１０ａに、解釈エラーが検出された場合に認識部制御部８が解釈結果を再解釈させることができるもう１つの形を示す。
【００７１】
図１０ａは、ステップＳ５４及びステップＳ５６がステップＳ５６ａに置換されていることが図１０と異なる。したがって、この場合に、ステップＳ５３でＹＥＳの場合、認識部制御部８は、次の上位Ｍ位の結果を選択し、この上位Ｍ位の結果に従って次のプロンプトに使用される文法を再び制限し、次のプロンプトのユーザ入力データを再処理するようにユーザ入力認識部５に要求して、これが行われた時に、次のプロンプトの解釈結果を再評価する。したがって、この場合に、上位Ｎ個ではなく上位Ｍ個の結果を選択することにより、次のプロンプトのユーザ入力データを認識するのに使用される文法を制限することができるという事実を考慮されたい。
【００７２】
図１１に、認識部制御部８が、解釈エラーが検出された場合に、解釈結果を再解釈させることができるもう１つの形を示す。
【００７３】
この場合に、認識部制御部８は、上で説明したステップＳ５０、５１、５２、及び５５を実行する。しかし、ステップＳ５１でＮＯの場合、すなわち、解釈エラーがプロンプトの組の最初のプロンプト以外のプロンプトで発生した場合は、ステップＳ５７へ進む。ステップＳ５７において、認識部制御部８は、プロンプトの組のプロンプトを並べ換え、ユーザ入力認識部５に対して、そのプロンプトの完全な即ち制限されていない文法を使用して、新しい最初のプロンプトのユーザ応答データを再び認識し、そのプロンプトの新しい解釈結果データを生成するように指示することによって、認識解釈処理を再び開始する。次に、ステップＳ５５へ進み、図９を参照して説明したステップを実行して、解釈結果データの再解釈を実行する。
【００７４】
即ち、図１１に示された例では、解釈エラーが発生した場合に、認識部制御部８は、プロンプトの組の別のプロンプトへの応答から認識解釈処理を開始する場合によりよい認識結果を達成できると判断し、したがって、並べ換えられたプロンプトに関する応答データの再認識及び解釈を開始する。認識部制御部８が、解釈エラーが発生しなかったと判定した場合、或いは、解釈エラーを除去するために認識結果を再評価した場合、認識部制御部は、ユーザの入力の正しい認識として、プロンプトの組の最も信頼スコアの高い認識結果を選択する。そして、図７のステップＳ２９で、これが実際にユーザが入力したものであることをユーザに確認するプロンプトをユーザ出力供給部３に出力させるよう対話制御部に対して指示するように動作制御部に要求する。
【００７５】
しかし、認識部制御部８が、対話装置が解決できない解釈エラーがあると判定した場合には、図７のステップＳ２９で、認識部制御部８は、解釈エラーを解決するために、ユーザ出力供給部３を介してユーザにさらなる情報を要求するためのプロンプトをさらに出力する（例えば、さらなるプロンプトによって、解釈エラーが検出されたプロンプトの前のプロンプトへの回答を繰り返すようにユーザに要求することができる）ように対話制御部１に対して要求するように動作制御部１４へ通知する。
【００７６】
上記から理解されるように、各プロンプトの受け取られたユーザ入力データがユーザ応答データ格納部７に記憶され、各プロンプトの解釈結果データが解釈結果データ格納部９に記憶されることによって、解釈エラーが検出される時に認識部制御部８が認識結果を再査定し、かつ／又は補足プロンプトを質問させることによって、あるいは、再査定の結果が信頼されない場合又は残りの認識結果の信頼スコアが十分に高くない場合に、受け取ったユーザ入力データを再処理するようにユーザ入力認識部５に要求することによって、認識結果を再評価することができるようになる。これは、解釈エラーが発生したことを認識部制御部８が識別した時に、ユーザにプロンプトへの応答を繰り返すように要求する必要がないことを意味する。これによって、ユーザとの長い対話が回避され、あるいは、少なくとも、プロンプトへの回答を繰り返すように１回以上要求されるのでユーザがくじけるか、システムに満足しなくなることが回避される。
【００７７】
現在の請求期間にコピーされたページ数を写真コピー機供給者のログに記録するために、顧客が電話インターフェースを使用できるようにするのに使用される、対話装置の特定の実施形態の例を、これから説明する。
【００７８】
この例では、対話装置２００が、顧客の名前、コピーされたページ数をログに記録する写真コピー機のシリアル番号、及びログに記録されるページ数を確認する必要がある。
【００７９】
この場合には、３つの顧客情報タイプ・データ・ファイルがある。顧客情報タイプ１ファイル１０ａには、顧客情報フィールド１２ａ、１２ｂ、…、１２ｑに、電話ロギング・サービス（ｌｏｇｇｉｎｇ  ｓｅｒｖｉｃｅ）の使用設備を有する顧客の名前が記憶され、顧客情報タイプ２データ・ファイル１０ｂには、写真コピー機供給者によって供給される写真コピー機のシリアル番号が記憶され、顧客情報タイプ３データ・ファイルには、確認プロンプトとして使用することができる住所データ（通常は郵便番号）が記憶される。この場合に、この顧客情報タイプ・データ・ファイルのＩＤフィールドに記憶されるＩＤデータは、顧客を識別する識別コードであり、その結果、顧客情報タイプ２データ・ファイルで、各シリアル番号が、対応する顧客情報タイプ１データ・エントリを識別する識別コードに関連付けられる。
【００８０】
この例では、動作制御部１４が、ユーザが対話装置にログ・オンしたと判定し、動作制御部１４が対話制御部１に対話を開始するように指示する（図５のステップＳ１）時に、対話制御部１はユーザ出力供給部３に、下記のようなウェルカム・メッセージをユーザへ表示させる（図６ａのステップＳ７）。
【００８１】
「Ｗｅｌｃｏｍｅ  ｔｏ  ｔｈｅ  Ｃａｎｏｎ  ｔｅｌｅｐｈｏｎｅ  ｐｈｏｔｏｃｏｐｉｅｒ  ｃｈａｒｇｅ  ｌｏｇｇｉｎｇ  ｓｅｒｖｉｃｅ（キャノン電話写真コピー機料金ログ記録サービスにようこそ）」
これに、会社名を入力することをユーザに促す、対話格納部２からの第１プロンプトが続く。このプロンプトは、例えば下記とすることができる。
【００８２】
「Ｐｌｅａｓｅ  ｔｅｌｌ  ｍｅ  ｙｏｕｒ  ｃｏｍｐａｎｙ  ｎａｍｅ（会社名を言ってください）」
例えば、顧客が、次のように言って回答する。
【００８３】
「Ｒｏｙａｌ  Ｂａｎｋ  ｏｆ  Ｗｅｓｔｌａｎｄ」
このユーザ音声データが、ネットワーク１６によってユーザ入力供給部４に供給され、ユーザ入力供給部４は、格納部７のプロンプト１ユーザ応答データ・ファイル７ａにデジタル形式でこの音声データを記憶する（図６ａのステップＳ１５）。
【００８４】
次に（図６ＡのステップＳ８）、対話制御部１は、ユーザ出力供給部３が、２つのプロンプトの組のうち次のものを通知するように制御する。例えば、
「Ｐｌｅａｓｅ  ｔｅｌｌ  ｍｅ  ｙｏｕｒ  ｓｅｒｉａｌ  ｎｕｍｂｅｒ（あなたのシリアル番号を教えてください）」
とユーザに通知するように制御する。そして、入力供給部４に、プロンプトで受け取った音声データをユーザ応答データ・ファイル７ｂに記憶するように通知する。
【００８５】
ユーザ入力供給部４がユーザ応答を受け取ると、ユーザ入力供給部４は、プロンプトのその応答を応答データ・ファイル７ｂに記憶する（図６ｂのステップＳ１５）。
【００８６】
この例では、ユーザが、
「ＱＦＥ１０５１５」
と言って応答する。この例では、これがプロンプトの組における最後のプロンプトなので、動作制御部１４は、ユーザ入力認識部５及び認識部制御部８に、記憶された音声データの認識及び解釈を開始するように指示する（図５のステップＳ２）。
【００８７】
認識部制御部８は、ユーザ入力認識部５に、プロンプト１文法６ａを使用してプロンプト１応答データ・ファイル７ａに記憶された音声データを処理するように要求する（図７のステップＳ２２）。ユーザ入力認識部５は、図８のステップＳ３１及びステップＳ３２を実行し、解釈結果を、信頼スコアと共にプロンプト１解釈結果データ・ファイル９ａに記憶する（図８のステップＳ３３）。この例では、ユーザ入力認識部５が、下記の解釈結果を供給する。
【００８８】
解釈結果                                      信頼スコア
Ｒｏｙａｌ  Ｂａｎｋ  ｏｆ  Ｗｅｓｔｌａｎｄ  ８０％
Ｂａｎｋ  ｏｆ  Ｗｅｓｔｌａｎｄ              ７０％
Ｒｏｙａｌ  Ｂａｎｋ  ｏｆ  Ｅａｓｔｌａｎｄ  ４０％
Ｂａｎｋ  ｏｆ  Ｅａｓｔｌａｎｄ              ３０％
次に、図７のステップＳ２４において、認識部制御部８は、図９に関して上で説明したように、プロンプト１の解釈結果を評価する。したがって、図９のステップＳ４０において、認識部制御部８は、まず信頼スコアのいずれかが閾値（この例では５０％）を超えるかどうかを調べるために検査し、超えている場合は、応答がプロンプトの組の１つ（確認又はさらなるプロンプトではなく）に対する応答であるかどうかの検査に進む。この例では、応答がプロンプトの組の１つに対する応答であるので、ステップＳ４３において、認識部制御部８は、上位Ｎ位の信頼できる結果（この例では５０％を超える信頼スコアを有する２つの解釈結果）を選択し、顧客情報データベースにアクセスし、顧客名に関連するＩＤから、会社名Ｒｏｙａｌ  Ｂａｎｋ  ｏｆ  Ｗｅｓｔｌａｎｄ及びＢａｎｋ  ｏｆ  Ｗｅｓｔｌａｎｄとの一貫性を有する、顧客情報タイプ２データ・ファイル１０ｂ内のシリアル番号を判定する。
【００８９】
次の表１に、顧客情報タイプ２データ・ファイル１０ｂに含まれる可能性がある、上でリストした４つの会社名のそれぞれのシリアル番号の例を示す。
【００９０】
【表１】
2005266769.tif 000003
【００９１】
したがって、この例では、認識部制御部８は、プロンプト２文法を、ＱＦＥとそれに続く５桁の番号のフォーマットとを有し、最初と２番目の数字が１と０であるシリアル番号に制限する。
【００９２】
第２プロンプトに対するユーザの応答が、
「ＱＦＥ  １０５１５」
であったとする。しかし、ユーザ入力認識部５は、信頼スコアの順で下記の解釈結果を返したとする。
【００９３】
１    ＱＦＥ  １０６１５    ９０％
２    ＱＦＥ  １０５１５    ６０％
３    ＱＦＥ  １０５１５    ６０％
４    ＱＦＥ  １０６１６    ５０％
この場合、認識部制御部８は、最初のプロンプトに対する応答の上位Ｎ位（この例では第１位及び第２位）の解釈結果の信頼スコア及び第２のプロンプトに対する応答の上位Ｎ位（この例では第１位及び第２位）の解釈結果の信頼スコアを判定する。そして、その結果、顧客情報タイプ１データ・ファイル１０ａ及び顧客情報タイプ２データ・ファイル１０ｂに記憶された顧客情報との一貫性を有するユーザの入力の最もありそうな解釈が、ユーザが
「Ｂａｎｋ  ｏｆ  Ｗｅｓｔｌａｎｄ」及び「ＱＦＥ１０６１５」
と言って応答したことであると判定する。
【００９４】
したがって、認識部制御部８は、顧客情報データベース内のデータと矛盾しない、十分に高い信頼スコアを有する解釈結果の組合せがあることを確証している。それゆえ、動作制御部に通知を行う（図７のステップＳ２９）。
【００９５】
動作制御部１４は、ユーザ出力供給部３が確認プロンプトを出力するように対話制御部１を指示し、対応する応答をユーザ応答データ格納部の対応する確認プロンプト応答データ・ファイルに記憶するようにユーザ入力供給部に指示する（図５のステップＳ３）。確認プロンプトは、次のようなものである。
【００９６】
「Ａｒｅ  ｙｏｕ  ｃａｌｌｉｎｇ  ｆｒｏｍ  ｔｈｅ  Ｂａｎｋ  ｏｆ  Ｗｅｓｔｌａｎｄ  ｉｎ  ｃｏｎｎｅｃｔｉｏｎ  ｗｉｔｈ  ｓｅｒｉａｌ  ｎｕｍｂｅｒ  ＱＦＥ  １０６１５  ？（Ｂａｎｋ  ｏｆ  Ｗｅｓｔｌａｎｄからシリアル番号ＱＦＥ  １０６１５に関して電話していますか）」
ユーザ入力認識部５が、確認プロンプトに対する応答が記憶されたことを通知する時に、動作制御部１４は、ユーザ入力認識部５及び認識部制御部８に、記憶されたユーザ確認応答データの認識及び解釈を開始するように指示し、ユーザ入力認識部５に、「ｙｅｓ（はい）」又は「ｎｏ（いいえ）」あるいは「ｔｈａｔ  ｉｓ  ｃｏｒｒｅｃｔ（それは正しい）」又は「ｔｈａｔ  ｉｓ  ｉｎｃｏｒｒｅｃｔ（それは正しくない）」などの単語を含む、ユーザ入力として期待する確認プロンプト文法を使用するように指示する。
【００９７】
この例では、ユーザが実際には「Ｒｏｙａｌ  ｂａｎｋ  ｏｆ  Ｗｅｓｔｌａｎｄ」及び「ＱＦＥ  １０５１５」を言ったので、ユーザの入力が、誤って解釈されている。
【００９８】
したがって、ユーザは、例えば単語「ｎｏ」を含む句を言うことによって応答し、その結果、確認プロンプト解釈結果データ・ファイルにアクセスした時に、認識部制御部８は、図９のステップＳ４４において、解釈エラーが発生したと判定する。この例では、認識部制御部は（第２のプロンプトに対する応答が認識及び解釈の対象になった後に認識エラーが生じたので）、プロンプトの組のプロンプトを並べ換え、その結果、シリアル番号である第２のプロンプトのユーザ応答データが先に処理され、解釈されるようにする。これによって、ユーザ入力認識部５がユーザ入力「Ｒｏｙａｌ  Ｂａｎｋ  ｏｆ  Ｗｅｓｔｌａｎｄ」を誤って「Ｂａｎｋ  ｏｆ  Ｗｅｓｔｌａｎｄ」と認識したという事実から生じる解釈エラーの連鎖的な影響を防いでおり、図１１を参照して説明した形で解釈結果を再評価するように構成されている。
【００９９】
ユーザが、解釈結果を正しいと確認できなかった場合に、動作制御部１４は、作業を繰り返さなければならないとユーザが感じないようにするために、前にユーザによって与えられていない答を求める補足プロンプトを出力するように対話制御部に指示することができる。したがって、例えば、ユーザに郵便番号を促す次のような補足プロンプトを出力するようにすることができる。
【０１００】
「ｐｌｅａｓｅ  ｔｅｌｌ  ｍｅ  ｙｏｕｒ  ｐｏｓｔｃｏｄｅ（郵便番号を教えてください）」
さらなるプロンプト又は補足プロンプトに対する応答が対応するユーザ応答データ・ファイルに記憶されたと、ユーザ入力供給部が助言したならば、動作制御部は、ユーザ入力認識部及び認識部制御部に、記憶されたユーザ応答の認識及び解釈を開始するように指示して、郵便番号フォーマットの英数字文字の組合せを期待する認識文法格納部内の郵便番号文法を使用して応答データを確認する。認識部制御部は、図１１のステップＳ５７に従って、プロンプトの組を並べ換え、郵便番号解釈結果データを最初に処理する。
【０１０１】
図１１に関して説明した再評価手順の使用の代替として、図１０に関して説明した再評価手順を使用することができる。この場合、解釈結果の低い信頼レベルの組合せが、郵便番号解釈結果データとの一貫性についてテストされる。
【０１０２】
もう１つの実施形態では、ユーザの入力を確認する試みを行う前にユーザに尋ねるプロンプトの組に郵便番号プロンプトを含めることができ、解釈エラーが生じたと判定される時に、図１０及び図１１に関して説明した再評価手順の一方又は他方を使用することができる。もう１つの可能性として、図１０に関して説明した再評価処理を使用し、ユーザが、再評価処理の結果を確認しない場合に、図１１に示された再評価処理を試行するように対話装置を構成することができる。これらの再評価処理の両方が、ユーザからの確認の応答をもたらさない場合に、プロンプトの組の１以上に対する応答を繰り返すようにユーザに要求させるように対話装置を構成することができる。
【０１０３】
会社名及びシリアル番号が正しいことのユーザによる確認の受取に続いて、動作制御部１４は、対話制御部１が、変化するログ・データすなわち、コピーされたページの数を入力するようにユーザにプロンプトを出すよう制御する。対話制御部１は、ユーザ入力認識部５に、数字だけの文法を使用して、その後に受け取られる音声データを処理するように指示する。そして、ユーザ入力認識部５が、受け取った音声データを解釈した時に、認識部制御部８が、動作制御部１４と通信し、動作制御部１４が、対話制御部１に、例えば
「Ｐｌｅａｓｅ  ｃｏｎｆｉｒｍ  ｔｈａｔ  ｔｈｅ  ｎｕｍｂｅｒ  ｏｆ  ｃｏｐｉｅｓ  ｉｓ  ２２６（コピーの数が２２６であることを確認してください）」
というような、コピーの数の確認を要求するプロンプトを出力させるように指示する。更に、ユーザ入力認識部５に、次に受け取る音声データの処理に確認プロンプト文法を使用するように指示する。
【０１０４】
ユーザが、ｙｅｓと言って応答する場合、認識部制御部８は、動作制御部１４と通信する。動作制御部１４は、現在の請求期間にとられたコピーの数を挿入するために、ユーザ入力実行部１１に顧客のアカウントにアクセスさせる。
【０１０５】
上で説明したように、ユーザは、コピーの数を言葉で入力する。もう１つの可能性として、ユーザが、ユーザの電話機のキー・パッドに関連するＤＴＭＦ（デュアル・トーン・マルチ・フリーケンシ）トーン・ダイヤリング・コードを使用して、コピーの数を入力することができ、ユーザの入力の正しい解釈としての解釈結果データ格納部９内で識別された会社名及びシリアル番号と共に、そのようなデータをユーザ入力供給部４からユーザ入力実行部１１に直接に渡すように動作制御部１４を構成することができる。
【０１０６】
上で説明した例では、認識部制御部８が、第２及び後続のプロンプトの認識に使用される文法を、顧客情報データベース１０に記憶された情報に従って、第２及び後続のプロンプトの認識処理を高速化するために第１のプロンプトの解釈結果との一貫性を有するデータに制限する。これによって、第１のプロンプトに対するユーザの応答の処理で解釈エラーが発生した場合に、後続の解釈エラーの可能性を増加するかもしれないという事実を補償するために、対話装置は、前のプロンプトの解釈結果を再評価できるようにするか、或いは、解釈エラーの伝搬を防ぐためにプロンプトを並べ換えて解釈処理を再実行できるようにする。
【０１０７】
上からわかるように、認識部制御部８は、解釈エラーが下記の状況の１以上で発生したことを判定するように構成される。
【０１０８】
１．ユーザが、確認プロンプトに応答して否定的な回答を供給する（例えばｎｏと言う）。
【０１０９】
２．十分に高い信頼スコアを有する解釈結果又は解釈結果の組合せがない。
【０１１０】
３．顧客情報データベースのデータを考慮に入れた時に、異なるプロンプトの解釈結果が矛盾する。
【０１１１】
上で述べたように、認識部制御部８は、下記の再評価オプションを提供するように構成される。
【０１１２】
１．既に尋ねたプロンプトの解釈結果を再評価し、２番目に高い信頼スコアを有する解釈結果の組合せを選択する、
２．プロンプトを並べ換え、記憶されたユーザ応答を再処理するようにユーザ入力認識部５に要求し、その結果、制限されないグローバル文法が、プロンプトの組の異なる１つに対する応答のために生成されるようにする。
【０１１３】
他の可能性として、又は更に加えて、認識部制御部８は、解釈エラーを検出した場合に、ユーザ入力認識部５によって供給される結果の信頼レベルが信頼されると考えられる閾値を調整することができる。例えば、認識部制御部８は、信頼レベル閾値を下げ、その結果、より低い信頼レベルを有する結果も考慮されるようにすることができる。
【０１１４】
上述の実施形態では、ユーザは、陸線電話機又は移動体電話機を使用して、対話装置と通信する。もちろん、ユーザ・デバイス１５を、有線通信リンク又は無線通信リンクのいずれかによってネットワークに結合されるように構成された、パーソナル・コンピュータ、ラップトップ機、又は携帯情報端末（ＰＤＡ）とすることができることを理解されたい。
【０１１５】
上述の実施形態では、ユーザは、連続するプロンプトに応答してユーザ入力データ又は応答を供給する。しかし、これは必ずしも必要がない。例えば、必要な情報のすべてをユーザに促す単一のプロンプトを出力することができる。もう１つの可能性として、ユーザが、どの情報が必要かを知っている場合に、対話装置がプロンプトを提供せずに、ユーザが、単に必要なユーザ入力データを供給するようにすることができる。
【０１１６】
また、上で説明したように、少なくとも当初は、解釈部５００が、入力された順序でユーザ入力データを解釈する。他の実施形態では、解釈部５００が、異なる順序でユーザ入力データを処理することができる。これによって、解釈部５００が、解釈される最初のユーザ入力データの項目として、正しく解釈される可能性が最も高いユーザ入力データを選択できると同時に、ユーザがより自然な順序でデータを入力できるようになる。したがって、上で示した例では、ユーザが最初のユーザ入力データの項目として会社名を自然に提供する場合であっても、郵便番号データが、非常に固有のフォーマットを有し、より簡単に解釈できるので、解釈部５００は、まず郵便番号データを解釈するように構成することができる。
【０１１７】
他の実施形態では、解釈部が、ユーザ入力データの項目の組のすべてが受け取られるのを待つ必要があるのではなく、受け取られた時にユーザ入力データの項目を解釈するように構成することができる。
【０１１８】
上述の実施形態では、ユーザが、音声の形でユーザ入力データを供給する。ユーザ・デバイスのユーザ・インターフェースによって提供されるユーザ入力オプションに応じて、他の形のユーザ入力を供給することができる。したがって、ユーザ・デバイスが、手書き入力を有する場合には、手書きデータの形でユーザ入力を供給することができ、この場合、ユーザ入力認識部５には手書き認識エンジンが含まれる。同様に、ユーザ・インターフェースにカメラが含まれる場合に、ユーザ入力を、ジェスチャ及び／又は読唇データの形とすることができ、この場合に、ユーザ入力認識部５は、ジェスチャ認識部及び／又は読唇データ認識部を有する。ユーザ入力認識部５が、上で述べたモーダリティのうちの複数でユーザ入力データを認識できる場合、ユーザ入力認識部５には、一般に、異なるモーダリティからの入力を単一のプロンプトへの回答を表すものとして組み合わせなければならない状況（例えば、異なるモーダリティでの入力の相対的なタイミング）を判定する論理ルールの組に従って、異なるモーダリティからの入力を可能にするモーダリティ・インテグレータが含まれる。
【０１１９】
更に、ユーザ入力認識部５及び認識部制御部８が、タイピング・エラーを補償できるかもしれないため、対話装置の使用は、ユーザ入力がキーストローク・データの形である場合でも有利になる可能性がある。
【０１２０】
上で説明したように、対話装置２００は、単一の物理的実体として提供される。しかし、対話装置の機能コンポーネントを、ネットワーク上で分散し、各機能コンポーネントがネットワークを介して通信するようにすることができることを理解されたい。したがって、例えば、ユーザ入力実行部１１を、対話装置の残りの部分と異なるネットワークの部分に配置することができる。同様に、ユーザ入力認識部５を、動作制御部１４及び対話制御部１と同様に、認識部制御部８と異なるネットワークの部分に配置することができる。更に、顧客情報データベース１０を、ネットワークの異なる位置に配置することができ、認識部制御部８を、ネットワークを介して顧客情報データベース１０にアクセスするように構成することができる。同様に、対話格納部２、認識文法格納部６、ユーザ応答データ格納部７、及び解釈結果データ格納部９の１以上に、ネットワークを介してアクセス可能に構成することができる。
【０１２１】
上述の実施形態では、ユーザは、ネットワークを介して対話装置と通信する。これは、必ずしもそうであることを必要とせず、例えば、ユーザは、図４ｂに示されたユーザ・インターフェースを使用して対話装置と直接に通信可能にすることができる。もう１つの可能性として、対話装置を、独立した装置とすることができ、ユーザが、対話装置と直接に、又は、対話装置に結合されたユーザ・デバイス１５を介し、有線又は無線の通信リンクを介して通信可能に構成することができる。
【０１２２】
上述の実施形態では、対話装置を使用して完了することができる取引の例を示した。しかし、顧客情報データベースが修正可能で、ユーザの指示を実施可能とするための情報を引き出すためにユーザに複数のプロンプトを尋ねる必要があるあらゆる状況において、対話装置を使用できることを理解されたい。
【０１２３】
ユーザにプロンプトを繰り返すことを要求しなければならない可能性を回避或いは減らすことに加えて、上で説明した対話装置は、さらなる長所を有している。したがって、ユーザの便宜のために、ユーザが情報について尋ねられることを期待する順序で、一連のプロンプトを調整することができる。しかし、あるプロンプトに対する応答を、他のプロンプトに対する応答より信頼性のある形で認識できる場合がある。したがって、例えば、上で説明した電話写真コピー機使用状況ログ記録システムでは、シリアル番号のすべてが標準フォーマットに従うので、シリアル番号の認識結果が、会社名の認識結果よりよくならなければならない。しかし、ユーザは、自然に、シリアル番号の前に会社名を尋ねられることを期待する。上で説明した対話装置２００を使用することによって、シリアル番号が会社名より正確に認識できるという事実を利用できるようにしながら、ユーザに最も自然と思われる順序でユーザにプロンプトを提示できるようになる。
【０１２４】
更に、自動音声認識エンジンは、特にユーザが話している間に不自然に小休止する場合に、必ずしもユーザの音声データの真の終点を検出できない。デジタル音声データをユーザ応答データ・ファイルに記憶することは、小休止によって分離された音声データを連結でき、その結果、終点検出エラーの可能性を考慮に入れることができるようになるという長所を有する。
【図面の簡単な説明】
【０１２５】
【図１】ユーザとの対話を行うために本実施形態に対応した対話装置を示す機能ブロック図である。
【図２】図１に示された解釈結果データ格納部の解釈結果データ・ファイルを非常に概略的に示した図である。
【図３】図１に示された顧客情報データベースの顧客情報データ・ファイルを非常に概略的に示した図である。
【図４ａ】図１に示された装置がネットワークを介して複数のユーザ・デバイスに結合された通信システムを非常に概略的に示した図である。
【図４ｂ】図１に示された装置を提供するためにプログラム命令及びデータによって構成できるコンピューティング装置を示す機能ブロック図である。
【図４ｃ】図４ａに示されたユーザ装置の１つを提供するためにプログラム命令及びデータによって構成できるコンピューティング装置を示す機能ブロック図である。
【図５】図１に示された対話装置の動作制御部の動作を示すフローチャートである。
【図６ａ】図１に示された対話装置の対話制御部の動作を示すフローチャートである。
【図６ｂ】図１に示された対話装置のユーザ入力供給部の動作を示すフローチャートである。
【図７】図１に示された装置の認識部制御部の動作を示すフローチャートである。
【図８】図１に示されたユーザ入力認識部の動作を示すフローチャートである。
【図９】ユーザ入力データを解釈する１つの形を示すフローチャートである。
【図１０】解釈結果の再評価の工程を行うことができる１つの形を示すフローチャートである。
【図１０ａ】認識の再評価の工程を行うことができるもう１つの形を示すフローチャートである。
【図１１】解釈結果の再評価の工程を行うことができるもう１つの形を示すフローチャートである。
【図１】
2005266769.tif 000004
【図２】
2005266769.tif 000005
【図３】
2005266769.tif 000006
【図４ａ】
2005266769.tif 000007
【図４ｂ】
2005266769.tif 000008
【図４ｃ】
2005266769.tif 000009
【図５】
2005266769.tif 000010
【図６ａ】
2005266769.tif 000011
【図６ｂ】
2005266769.tif 000012
【図７】
2005266769.tif 000013
【図８】
2005266769.tif 000014
【図９】
2005266769.tif 000015
【図１０】
2005266769.tif 000016
【図１０ａ】
2005266769.tif 000017
【図１１】
2005266769.tif 000018
【外国語明細書】
A DATA PROCESSING APPARATUS AND METHOD 
This invention relates to a data processing apparatus and method, in particular a data processing apparatus and method for processing a set of items of related user input data to facilitate the carrying out of a task.
Apparatus for automatically conducting dialogues with users or customers are currently in use that enable, for example, telephone booking of tickets or completion of banking or bill paying transactions. These apparatus operate by prompting the user, for example by asking the user a sequence of questions, to elicit the information necessary to complete the transaction. 
At each stage in the dialogue, the apparatus has to process or interpret the user=s input.  Thus, for example, in the case of spoken input, the apparatus has to conduct speech recognition processing on the user=s input.  The success of the dialogue with the user is dependent upon the apparatus being able to process the user=s input quickly and accurately to ensure that a transaction is completed efficiently and in accordance with the user=s wishes.  Accordingly, the apparatus will normally ask the user to confirm that the interpretation of the user=s input is correct before instructing action to be taken in accordance with the user=s input. If the user does not confirm that the interpretation is correct, the apparatus determines that an error has arisen in processing the user=s input and will ask the user to repeat their answers. This, necessarily, lengthens the dialogue with the user and inevitably increases the time required for the user to complete the required transaction so that the user views the system as less than desirable or efficient and is less likely to make use of it in future.  Also, the user may well be frustrated or irritated by having to answer the same prompt more than once.
In one aspect, the present invention provides data processing apparatus for processing a set of items of related user input data to facilitate the carrying out of a task by constraining the grammars used for recognising user input data in accordance with the interpretation results for other user input data and enables the processing of user input data to be re-evaluated when an interpretation error is detected.
In one aspect, the present invention provides apparatus for conducting a dialogue with a user that enables efficient processing of responses to successive prompts by constraining the grammars used for recognising responses to successive prompts in accordance with the recognition results for responses to previous prompts and enables the processing of user responses to prompts to be re-evaluated when an interpretation error is detected which should reduce the need to repeat prompts to the user and may enable the length of the dialogue with the user to be reduced.
Dialogue apparatus embodying the invention enables the sequence of prompts to be presented in the order in which the user would expect to be asked for information yet still allows advantage to be taken of the fact that responses to certain prompts may be recognised more reliably than responses to other prompts. Thus, for example, serial numbers may be more reliably recognised than company names because serial numbers tend to conform to a standard format. A user, however, may naturally expect to be asked their company name before the serial number. Dialogue apparatus embodying the invention enables advantage to be taken of the fact that the serial numbers can be more accurately recognised than the company names while still enabling the prompts to be presented to the user in the order that seems most natural to users.
In an embodiment, the user communicates with the apparatus by use of speech and an automatic speech recognition engine is used to process input speech data. Automatic speech recognition engines cannot necessarily always detect the true end point of user=s speech data particularly if the user pauses whilst speaking. Storing the digital speech data in the user response data files has the advantage that speech data separated by pauses can be concatenated for re-processing so that account can be taken of the possibility of an end point detection error. 
The apparatus may be arranged to receive other forms of user input such as, for example, gesture input data, lip reading input data, handwriting input data or keyboard input data.
Embodiments of the present invention will now be described, by way of example, with reference to the accompanying drawings, in which:
Figure 1 shows a functional block diagram of dialogue apparatus embodying the invention for conducting a dialogue with a user;
Figure 2 shows very diagrammatically an interpretation results data file of an interpretation results data store shown in Figure 1;
Figure 3 shows very diagrammatically a customer information data file of a customer information database shown in Figure 1;
Figure 4a shows a very diagrammatic representation of a communications system in which the apparatus shown in Figure 1 is coupled to a number of user devices over a network;
Figure 4b shows a functional block diagram of computing apparatus that may be configured by program instructions and data to provide the apparatus shown in Figure 1;
Figure 4c shows a functional block diagram of computing apparatus that may be configured by program instructions and data to provide one of the user devices shown in Figure 4a;
Figure 5 shows a flow chart for illustrating operation of an operations controller of the dialogue apparatus shown in Figure 1;
Figure 6a shows a flow chart for illustrating operation of a dialogue controller of the dialogue apparatus shown in Figure 1;
Figure 6b shows a flowchart for illustrating operation of a user input provider of the dialogue apparatus shown in Figure 1;
Figure 7 shows a flow chart for illustrating operation of a recogniser controller of the apparatus shown in Figure 1;
Figure 8 shows a flow chart for illustrating operation of a user input recogniser shown in Figure 1;
Figure 9 shows a flow chart for illustrating one way of interpreting user input data;
Figure 10 shows a flow chart for illustrating one way in which a step of re-evaluating interpretation results may be conducted; 
Figure 10a shows a flow chart for illustrating another way in which a step of re-evaluating recognition may be conducted; and
Figure 11 shows a flow chart for illustrating another way in which a step of re-evaluating interpretation results  may be conducted.
Referring now to Figure 1, there is shown dialogue apparatus 200 for conducting a dialogue to enable the user to instruct the carrying out of a task or action. The action instructed by the user may be, for example, to issue instructions to another computing apparatus or another module of the same apparatus to carry out the user=s wishes, for example to book and forward to the user tickets for a selected show, to complete a banking transaction or to log equipment usage in a database, depending upon the application for which the dialogue apparatus is being used.
The dialogue apparatus 200 comprises a dialogue controller 1 arranged to select prompts from a dialogue store 2 and to output these prompts to a user via a user output provider 3 and a user input provider 4 for receiving user responses to prompts supplied to the user via the user output provider 3. The prompts may be in the form of questions or may simply be statements or comments that indicate to the user the user input required.
The apparatus has an interpreter 500 for interpreting user input data provided by the user input provider 4 to provide interpretation results data.  The interpreter 500 has a user input recogniser 5 for processing or recognising the user input data using grammars stored in a recognition grammar store 6 and a recogniser controller 8 for controlling operation of the user input recogniser 5.
A user input actioner 11 is provided for causing the action required by the user to be carried out once the dialogue with the user has been satisfactorily completed and the user has confirmed that their input has been interpreted correctly.
A user input or response data store 7 is provided for storing the user response data received by the user input provider 4 and an interpretation results data store 9 is provided to store interpretation results data provided by the interpreter 500.
A customer information database 10 is also provided which stores customer information data pertinent to the expected responses or answers to the prompts supplied by the dialogue controller 1.
In the example shown in Figure 1, the user response data store 7 has respective user response data files 7a, 7b ... 7n for prompts 1, 2 ... N, respectively, that may be output to a user during a dialogue. Similarly, the interpretation results data store 9 has respective interpretation results data files for the prompts 1, 2 ... N and the customer information database 10 respective customer information data files 10a, 10b ... 10n for customer information data pertinent to the prompts 1, 2 ... N. The recognition grammar 6 has, in this example, a respective grammar file 6a, 6b ... 6n for use in recognition of responses to each of the prompts 1, 2 ... N.
An operations controller 14 is provided to control overall operation of the apparatus and to coordinate the operation of the dialogue controller 1, the user input recogniser 5, the recogniser controller 8 and the user input actioner 11.
Figure 2 shows very diagrammatically the structure of the interpretation results data file 7a.  The interpretation results data file 7a has a respective interpretation result data entry field 70a, 70b ... 70m for each interpretation result 1, 2 ... M provided by the user input recogniser 5.  Each interpretation result data entry field 70a, 70b ... 70m is associated with a confidence score data entry field 80a, 80b ... 80m for containing data indicating a confidence value for that recognition result determined by the user input recogniser 5. The interpretation results data files 7b ... 7n will each have the same structure as the interpretation results data file 7a.
Figure 3 shows the structure of the customer information type 1 file 10a. This data file has customer information type 1 data entry fields 12a, 12b ... 12q for type 1 customer information  for different customers 1, 2 ... q. Each customer information  type 1 data entry field 12a, 12b ... 12q is associated with an ID data entry field 13a, 13b ... 13q configured to contain data associating that customer information  type 1 data entry field 12a, 12b ... 12q with one or more customer information  entry fields of the other customer information  types.  Examples of different customer information  types are customer name data, customer address data such as post codes (zip codes), equipment serial number data. The ID data enables the different types of data to be associated with one another, that is a customer name can be associated with one or more addresses and one or more serial numbers. The other customer information  files will have a similar structure to the customer information type 1 file 10a.
As illustrated very diagrammatically by Figure 4a, the dialogue apparatus 200 is arranged to be incorporated in a communication system 300 that enables the dialogue apparatus 200 to communicate with a number of user devices 15 via a network 16. The network 16 may be a land-line or plain old telephone service (POTS) network or a cellular telecommunications network such as a GPRS telecommunications network, the Internet, an intranet or a local area or wide area network or a combination of these. As an illustration, Figure 4a shows a network 16 having facilities for enabling both a user device 15a in the form of a fixed or land-line telephone and a user device 15b in the form of a cellular telephone (Acell phone@ or mobile telephone) to communicate with the dialogue apparatus 200. As shown in Figure 4a, the communications system 300 also includes a service provider 201 which administers operation of the communications system. The dialogue apparatus 200 may be administrated by the service provider or independently of the service provider.
Figure 4b shows a functional block diagram of computing apparatus 400 storing program modules for configuring the computing apparatus to form the dialogue apparatus 200 shown in Figure 1 while Figure 4c shows a functional block diagram of one example of a user device 15 such as the cell phone 15b shown in Figure 4a.
Referring firstly to Figure 4b, the computing apparatus 400 comprises a processor 30 having a memory 20 comprising ROM and/or RAM storing program instruction modules for configuring the computing apparatus to form the dialogue apparatus 200 shown in Figure 1. As shown, the program instruction modules include input and output control modules 21 and 22 for causing the computing apparatus to carry out the functions of the user input provider 4 and user output provider 3, a recogniser controller module 23, a dialogue module 24, a recogniser module 25 and a user input actioner module 26 for causing the computing apparatus to carry out the functions of the recogniser controller 8, dialogue controller 1, user input recogniser 5 and user input actioner 11, respectively, and a operations control module 27 for causing the computing apparatus to carry out the functions of the operations controller 14. 
In this example, the memory 20 is also configured to contain the user input data store 7, the interpretation results data store 9 and the recognition grammar store 6.
The processor 30 is also coupled to a mass storage device 40 such as a hard disc drive which, in this example, contains the customer information database 10. It will, however, of course be appreciated that any one or more of the data stores and modules stored in the memory 20 may be stored in the mass storage device 40 with the program instruction modules being uploaded into the memory 20 for execution when required. 
The processor 30 is also coupled to a removable medium device (RMD) 31 for receiving a removable medium (RM) 32 such as, for example, a floppy disc, a CDROM, CDR, CDRW, DVD and so on. In addition, the processor 30 is coupled to a communications (COMM) device 33 such as, for example, a MODEM or network card for enabling communication over the network 16. The processor 30 is also coupled to a user interface 50 which has at least a keyboard 53, a pointing device 52 such as a mouse and a display 54 such as a cathode ray tube (CRT) or liquid crystal display (LCD). The user interface may also have a loudspeaker 51, a microphone 56 and possibly also a camera 55 and a digitising tablet 57.
The computing apparatus 400 may be configured by program instructions and data to form the dialogue apparatus 200 shown in Figure 1 by any one or more of the following:
1. program instructions and/or data pre-stored in at least one of the memory 20 and the mass storage device 40;
2. program instructions and/or data downloaded from a removable medium 32;
3. program instructions and/or data supplied as a signal S via the network 16 from another computing apparatus coupled to the network;
4. program instructions and/or data input by a user using one or more of the user input devices of the user interface 50.
Figure 4c shows a functional block diagram of a user device 15, such as the cell phone 15b shown in Figure 4a. This user device comprises a processor 60 associated with memory 61 in the form of ROM and/or RAM, a communications device (COMM DEVICE) 62 such as a MODEM or wireless communications card for enabling communication over the network 16 and a user interface 70 which, in this example, comprises a loudspeaker 71, a microphone 72, a keypad 73, a display 74 (generally an LCD display), and possibly also a camera 75. The display 74 may include a handwriting input area (HW INPUT) 74a for enabling the user to input data using a stylus.
The user input device 15 described with reference to Figure 4c is a mobile telephone or cell phone. In this case, the user input data is speech data and the user input recogniser 5 comprises an automatic speech recognition engine which may be, for example, provided by commercially available automatic speech recognition software such as, for example, ViaVoice (trade mark) supplied by IBM.  As other possibilities, the user device 15 may be, for example, a personal digital assistant (PDA) or personal computer or laptop having mobile or wireless communication facilities in which case the user device will generally also include a removable medium drive 31 for receiving a removable medium 32 (as shown in phantom lines) and the user interface 70 will generally include a pointing device 72 such as a mouse or touch pad and may also include a digitizing tablet 76(as shown in phantom lines in Figure 4c).
In operation of the system described with reference to Figures 1 to 4c above, a user wishing to use the service provided by the dialogue apparatus 200 first of all accesses the dialogue apparatus 200 via the network 16 in normal manner, for example by dialling the telephone number of the dialogue apparatus 200 where the network is a telecommunications network or inputting the Internet, intranet or network address where the network 16 is the Internet, an intranet or a local or wide area network, respectively.
Operation of the dialogue apparatus will now be described with the aid of Figures 5 to 11.
Figure 5 shows a flowchart for illustrating the local control of the dialogue apparatus by the operations controller 14.
Thus, when the operations controller 14 determines from the user input provider 4 that a user device 15 (Figure 4a) has established communication with the dialogue apparatus 200 via the network 16, then, at S1 in Figure 5, the operations controller 14 instructs the dialogue controller 1 to communicate with the user input provider 4 and to cause successive ones of a set of prompts to be output to the user by the user output provider 3 such that the next prompt of the set is output after the user input provider 4 confirms to the dialogue controller 1 that the user response data for the preceding prompt has been stored in the corresponding prompt user response data file 7a, 7b … 7n of the user response data store 7.
When the user input provider 4 advises at S2 that the response to the final prompt of the set of prompts has been stored in the corresponding user response data file, then the dialogue controller 1 communicates this fact to the operations controller 14 which then instructs the interpreter 500 to commence recognition and interpretation of the stored user response data.
Upon receipt of the interpretation results from the recogniser controller 8 at S3, if the recogniser controller 8 advises that there is an interpretation error, for example an error in the recognition of the user response data (a recognition error) that the interpreter 500 cannot resolve, then the operations controller 14 instructs the dialogue controller 1 to request further information from the user, for example by outputting to the user a supplementary prompt or asking the user to repeat the response to one or more of the previous prompts.  If, however, the recogniser controller 8 advises that there is no such recognition results error, then the operations controller 14 instructs the dialogue controller 1 to cause a confirmatory prompt to be output to the user via the user output provider 3 and instructs the user input provider 5 to store the user response in the corresponding prompt response data file of the user response data store 7.
When the user input provider 4 advises that the response to the confirmatory prompt has been stored in the corresponding user response data file at S4, then the operations controller 14 instructs the interpreter 500 to commence recognition and interpretation of the stored user confirmatory response data at S4.
If, at S5, the recogniser controller 8 advises the operations controller 14 that the user response confirms the interpretation result, then the operations controller 14 instructs the dialogue controller 1 to advise the user that their instructions are being actioned and instructs the user input actioner 11 to act in accordance with the user input.  As set out above, the action instructed by the user may be, for example, to issue instructions to another computing apparatus or another module of the same apparatus to carry out the user=s wishes, for example to book and forward to the user tickets for a selected show, to complete a banking transaction or to log equipment usage in a database, depending upon the application for which the dialogue apparatus is being used.
If, however, the recogniser controller 8 determines that the user has not confirmed the correctness of the interpretation result, then the operations controller instructs the dialogue controller 1 to communicate with the user via the user output provider 3 to obtain further information, for example the dialogue controller 1 may ask the user to repeat the response to one or more of the set of prompts.
Figure 6a shows a flow chart for illustrating operation of the dialogue controller 1. 
Thus, when the dialogue controller 1 receives from the operations controller 14 at S6 instructions to commence the dialogue, the dialogue controller 1, at S7 in Figure 6, accesses the dialogue file for a welcome message and the first of a set of prompts to be asked in the dialogue store 2, indicates to the user input provider 4 the particular prompt user response data file in which the next user response data is to be stored, and causes the user output provider 3 to output to the user device 15 via the network 16 data representing the welcome message and the first prompt prompting the user to supply user input.
The dialogue controller 1 then waits at S8 for confirmation from the user input provider 4 that a user response to the first prompt has been received and stored in the user response data store 7.  When this confirmation is received, then at S9, the dialogue controller accesses the dialogue store and selects the dialogue file for the next prompt of the set of prompts, indicates to the user input provider 4 the particular prompt user response data file in which the next user response data is to be stored, and then causes the user output provider 3 to output that prompt to the user device 15 via the network 16.
At S10 the dialogue controller checks whether the final prompt of the set of prompts has been asked of the user and, if not, repeats steps S8 to S10 until the last prompt of the set has been asked.
Then, at S11, the dialogue controller waits for a request from the operations controller 14 to output a further prompt (which as explained above with reference to S3 in Figure 5 may be a confirmatory prompt or a request for further information).  When such a request is received, then the dialogue controller accesses, at S12, the relevant dialogue file in the dialogue store 2, indicates to the user input provider 4 the particular prompt user response data file in which the next user response data is to be stored, and causes the corresponding prompt to be output to the user via the user output provider 3.  The dialogue controller then checks at S13, whether the operations controller 14 has confirmed that the dialogue has been completed or finished and if the answer is no repeat steps S11 to S13.
Figure 6b shows a flowchart illustrating the operations carried out by the user input provider 4.  Thus, at S14, the user input provider 4 waits for instructions from the dialogue controller 1 to store the next received user response in a specified file, that is the file corresponding to the prompt last asked of the user.  Then, when, at S15, the user input provider 4 receives user response data, then the user input provider 4 stores that user response data in the specified prompt user response data file and advises the dialogue controller 1 that the data has been stored so that the dialogue controller can proceed to output the next prompt of the set of prompts to the user output provider 3.
The user input provider 4 then checks at S16 to determine whether an instruction has been received from the operations controller 14 that the dialogue is finished and, if not, repeats steps S14 and S15.
Operation of the interpreter 500 will now be described with the aid of Figures 7 and 8 which illustrate the operations carried out by the recogniser controller 8 and the user input recogniser 5, respectively, in response to a request to recognise and interpret stored user response data from the operations controller 14.
Referring firstly to Figure 7, when, at S20, the recogniser controller 8 receives a request from the operations controller 14 to interpret user response data then, at S21, a count x is set to 1 and at S22, the recogniser controller 8 requests the user input recogniser 5 to process the user response data for prompt x using the prompt x grammar in the recognition grammar store 6.
When, at S23, the user input recogniser 5 advises that the processing of the user response data for prompt x is completed, then the recogniser controller 8 accesses the prompt x interpretation results in the interpretation results data store 9 and at S24 processes the interpretation results as will be described in greater detail below with reference to Figure 9.  If, as a result, the recogniser controller 8 determines that an interpretation error has occurred at S25 then, at S26, the recogniser controller 8 causes the interpretation results to be re-evaluated as will be described in greater detail below with reference to Figures 10 and 11.
After re-evaluation of the interpretation results, or if the answer at S25 is no, then the recogniser controller 8 checks to see whether x = z, that is whether the interpretation results for the number of prompts identified by the operations controller 14 has been processed and, if not, at S28 sets x=x+1 and repeats steps S22 to S27 until the answer at S27 is yes.  Thus, when the operations controller 14 requests recognition and interpretation of the stored user response data at S2 in Figure 5, Z will be set equal to the number of prompts in the set of prompts so that S22 to S27 are repeated for each of those prompts whereas when the operations controller requests recognition and interpretation of stored user confirmatory response data Z will be set to 1 so that steps S22 to S27 are repeated only once.
When the answer at S27 is yes, then the recogniser controller 8 advises the operations controller 14 of the results of the recognition and interpretation process so that the operations controller 14 can then carry out the operations of S3 in Figure 5 if the recognition and interpretation was of the response data for the set of prompts or the operations set out in S5 of Figure 5 when the response data was a response to a confirmatory prompt.
Figure 8 shows a flow chart for illustrating operation of the user input recogniser 5 shown in Figure 1. 
Thus, at S30, the user input recogniser 5 waits for a request to process received user response data for a prompt.
When a request is received to process received user response data, then the user input recogniser 5 retrieves the user input data identified in the request from the corresponding prompt user response data file at S31. 
Then, at S32, the user input recogniser 5 accesses the grammar specified in the request and processes the user response data using that grammar to provide a set of interpretation results in which each interpretation result is associated with a confidence score indicating the reliability of the interpretation result, that is the likeliness that that interpretation result represents  what the user actually input.  For example, where the user=s response to prompt 1 is expected, the user input recogniser 5 is instructed to use the prompt 1 grammar 6a to process user input received from the user input provider 4. 
At S33, the user input recogniser 5 stores the interpretation results together with the confidence scores in the corresponding file of the interpretation results data store 9 and then, at S34, checks for instructions  regarding further user response data to be processed. The user input recogniser 5 repeats steps S30 to S34 until the answer at S34 is no, that is until the operations controller 4 advises that the dialogue has been completed.
Figure 9 shows a flow chart illustrating the operation carried out by the recogniser controller 8 at S24 in Figure 7. 
Thus, at S40, the recogniser controller 8 checks to see whether the confidence scores of any of the interpretation results are above a predetermined minimum threshold. If the answer is no then the recogniser controller determines that an interpretation error has occurred at S41.
If, however, the answer at S40 is yes, then at S42, the recogniser controller 8 determines whether the interpretation results represent a response to one of the set of prompts and, if so, proceeds to step S43. If, however, the recogniser controller 8 determines that the interpretation results do not represent a response to one of the sets of prompts (that is the interpretation results represent a response to a confirmatory prompt or a further prompt), then the recogniser controller proceeds to step S44.
Assuming that the response is the response to one of a set of prompts, then at S43, the recogniser controller 8 selects the N highest confidence interpretation results for the current prompt, then accesses the customer information database 10, determines the customer information  type data file corresponding to the next prompt in the set of prompts and identifies in that data file the data that is consistent with those N highest confidence results and then constrains the grammar for the next prompt in the recognition grammar store 6 so that, when the user input recogniser 5 processes the user response data for that next prompt, the user input recogniser 5 can only recognise customer information  of the type corresponding to that prompt that is consistent with the N highest confidence results to the previous prompts.  
Thus, to take an example, if the interpretation results are for the first prompt of the set of prompts, then the recogniser controller 8 will identify from the confidence scores stored in the interpretation results data file (see Figure 2), the N highest confidence interpretation results and will then identify the customer information  in the customer information  type 1 data file corresponding to those N highest interpretation results. Then, by using the ID fields (see Figure 3), the recogniser controller 8 will determine the data entries in the customer information  type 2 type data file having the same IDs as the N highest confidence results for the first prompt. The recogniser controller 8 then constrains the prompt 2 grammar so that, in addition to common general words that are not specific to customer information, the grammar can only recognise customer information  of type 2 that the recogniser controller 8 has determined is consistent with the N highest confidence results for the first prompt. This procedure is then repeated for any further prompts so that the prompt 3 grammar is constrained to customer information  consistent with the N highest confidence results for prompt 2 and so on.
The procedure of constraining the grammar for successive prompts significantly reduces the number of possibilities that the user input recogniser 5 has to check when processing user response data and thus has the advantage of speeding up the interpretation process.  However, if the user input recogniser 5 incorrectly interprets user response data for one prompt, then the grammars for successive prompts will be incorrectly constrained and accordingly interpretation errors will be propagated and probably made worse.  The recogniser controller addresses these problems by checking for interpretation errors at S25 and re-evaluating interpretation results at S26 as will be described below in the event of a detection of an interpretation error.
If the answer at S42 is no, then the recogniser controller 8 assumes that the prompt was a confirmatory prompt and determines that an interpretation error has occurred if the interpretation results for the confirmatory prompt indicate that the interpretation of the user’s input to the set of prompts was incorrect.  Otherwise the recogniser controller 8 instructs the operations controller 14 that the interpretation is complete and correct.
Figure 10 shows one way in which the recogniser controller 8 may cause interpretation results to be re-evaluated in the event of an interpretation error being detected.
Thus, at S50 in Figure 10, the recogniser controller 8 identifies the prompt which prompted the response at which the interpretation error was determined to have occurred.  Thus, the recogniser controller 8 identifies which one of the set of prompts resulted in an interpretation error or, in the case of an interpretation error arising from a confirmatory prompt, a prompt of the set of prompts related to the confirmation operation.
Then, at S51, the recognition results determiner 8 determines whether the identified prompt is the first prompt of the set.  If the answer is yes, then the interpretation error will have occurred because none of the interpretation results had a sufficiently high confidence score (this may have arisen because of, for example, data corruption or  a software or hardware fault during the recognition process).  Accordingly, at S52, the recogniser controller 8 requests the user input recogniser 5 to re-process the user response data to produce new interpretation results and then, at S55, the recogniser controller 8 evaluates the  new interpretation results data. 
If, however, the answer at S51 is no, then at S53, the recognition controller 8 assumes that the constraining of the grammar to data consistent with the N best confidence score results for the previous prompt meant that the user input recogniser 5 was not capable of producing recognition results with sufficiently high confidence scores.  Accordingly, at S53, the recogniser controller 8 determines whether the next M best confidence score results for the prompt preceding the identified prompt are above the determined confidence score threshold. If the answer at S53 is no, then the recogniser controller 8 assumes that the interpretation error arose because of data corruption or a software or hardware problem during the recognition process and, at S52, requests the user input recogniser to re-process the user response data for that preceding prompt, to select the new N best results and then re-process the response data for the identified prompt using the grammar constrained in accordance with the new N best results for the re-processed response data for the preceding prompt.
If, however, the answer at S53 is yes, then at S54 the recogniser controller 8 checks the customer information data type files for the two prompts to determine whether any of the next M best confidence score results for the preceding prompt are consistent with the interpretation results for the identified prompt. If the answer is no, then the recogniser controller 8 requests the user input recogniser 5 to re-process the user response data for the preceding prompt at S52.  If, however, the answer is yes then the recogniser controller 8 selects those next M best interpretation results at S56.
Thus, in the event an interpretation error occurs in the response to other than the first prompt, the recogniser controller back tracks to the interpretation results for the previous prompt, checks the next M best  interpretation results to determine whether any of those are consistent with the interpretation results for the identified prompt and, if so, selects those next M best results.  Accordingly, the recogniser controller 8 can avoid propagation of interpretation errors through the recognition of the answers to successive prompts by back tracking and modifying its evaluation of the interpretation results for a proceeding prompt in the event that an interpretation error is detected.
Figure 10a shows another way in which the recogniser controller 8 may cause interpretation results to be re-interpreted in the event of an interpretation error being detected.
Figure 10a differs from Figure 10 in that steps S54 and S56 are replaced by step S56a.  Thus, in this case, when the answer at S53 is yes, the recogniser controller 8 selects the next M best results, reconstrains the grammar to be used for the next prompt in accordance with those M best results, requests the user input recogniser 5 to reprocess the user input data for that next prompt and, when this has been done, re-evaluates the interpretation results for that next prompt.  Thus is this case, account is taken of the fact that selecting the M best results rather than  the N best results may affect the way in which the grammar to be used for recognising the user input data for the next prompt should be constrained.
Figure 11 shows another way in which the recogniser controller 8 may cause interpretation results to be re-interpreted in the event of an interpretation error being detected.
In this case, the recogniser controller 8 carries out steps S50, 51, 52 and 55 as described above. However, if the answer at S51 is no, that is the interpretation error occurs in the prompt other than the first prompt of the set of prompts, then at S57, the recogniser controller 8 re-orders the prompts of the set of prompts and re-starts the recognition and interpretation process by instructing the user input recogniser 5 to re-recognise the user response data for the new first prompt using the complete, that is the unconstrained, grammar for that prompt to produce new interpretation results data for that prompt and then proceeds to re-interpret the interpretation results data at S55 by carrying out the steps described above with reference to Figure 9.
Thus, in the example shown in Figure 11, if an interpretation error occurs, the recogniser controller 8 assumes that better recognition results may be achieved if the recognition and interpretation process is started from the response to another one of the set of prompts and thus initiates re-recognition and interpretation of the response data with the prompts re-ordered.
If the recogniser controller 8 determines that no interpretation error has occurred or has re-evaluated the recognition results to remove an interpretation error, then the recogniser controller selects the highest confidence score recognition results for the set of prompts as being the correct recognition of the user’s input and requests the operations controller at S29 in Figure 7 to instruct the dialogue controller to cause the user output provider 3 to output a prompt requesting the use the confirm that this is actually what the user input. 
If, however, the recogniser controller 8 determines that there is an interpretation error that the dialog apparatus cannot resolve, then at S29 in Figure 7, the recogniser controller 8 advises the operation controller 14 to request the dialogue controller 1 to output a further prompt to the user via the user output provider 3 requesting further information in an attempt to resolve the interpretation error, for example the further prompt may request the user to repeat their answer to the prompt preceding the prompt for which the interpretation error was detected.  
As will be appreciated from the above, the fact that the received user input data for each prompt is stored in the user response data store 7 and the interpretation results data for each prompt is stored in the interpretation results data store 9 enables the recognition results to be re-evaluated when an interpretation error is detected either by the recogniser controller 8 re-assessing the recognition results and/or causing  a supplementary prompt to be asked or, where the results of that re-assessment are not reliable or the confidence scores of the remaining recognition results are not sufficiently high, requesting the user input recogniser 5 to re-process the received user input data. This means that, when the recogniser controller 8 identifies that an interpretation error has occurred, it is not necessary for the user to be asked to repeat the response to a prompt. This should avoid a lengthy dialogue with the user or at least avoid the user becoming frustrated or dissatisfied with the system because they are asked one or more times to repeat their answer to a prompt.
An example of a specific implementation of the dialogue apparatus will now be described where the dialogue apparatus is being used to enable a customer to use a telephone interface to log with a photocopier provider the number of pages copied in a current charging period.
In this example, the dialogue apparatus 200 needs to ascertain the name of the customer and the serial number of the photocopier for which the numbered pages copied is to be logged and the number of pages to be logged.
In this case, there are three customer information  type data files.  The customer information  type 1 data file 10a stores in the customer information  fields 12a, 12b ... 12q the names of the customers who have the facility to use the telephone logging service while the customer information  type 2 data file 10b stores the serial numbers of the photocopiers provided by the photocopier provider and the customer information  type 3 data file stores address data, typically a postcode (zip code), that may be used as a confirmatory prompt. In this case, the ID data stored in the ID fields of these customer information  type data files is an identity code identifying the customer so that, in the customer information  type 2 data file, each serial number is associated with an identity code identifying the corresponding customer information  type 1 data entry.
In this example, when the operations controller 14 determines that a user has logged onto the dialogue apparatus and the operations controller 14 instructs (S1 in Figure 5) the dialogue controller 1 to commence the dialogue, the dialogue controller 1 causes (S7 in Figure 6a) the user output provider 3 to output to the user a welcome message such as:
AWelcome to the Canon telephone photocopier charge logging service@
followed by the first prompt from the dialogue store 2 which prompts the user to input their company name. For example this prompt may be:
APlease tell me your company name@.
In this example, the customer answers by saying:
ARoyal Bank of Westland@.
This user speech data is supplied by the network 16 to the user input provider 4 which stores the speech data in digital form in the prompt 1 user response data file 7a of store 7 (S15 in Figure 6a).
Then (S8 in Figure 6a) the dialogue controller 1 causes the user output provider 3 to output the next of the set of two prompts to the user, in this example:
“Please tell me your serial number”
and advises the input provider 4 to store any received speech data in the prompt to user response data file 7b.
When the user input provider 4 receives the user response then (S15 in Figure 6b) the user input provider 4 stores that response in the prompt to response data file 7b.
In this example, the user responds by saying:
“QFE10515”
As, in this example, this is the last of the set of prompts, the operations controller 14 (S2 in Figure 5) then instructs the user input recogniser 5 and recogniser controller 8 to commence recognition and interpretation of the stored speech data.
The recogniser controller 8 then (S22 in Figure 7) requests the user input recogniser 5 to process the speech data stored in the prompt 1 response data file 7a using the prompt 1 grammar 6a.  The user input recogniser 5 then carries out steps S31 and S32 in Figure 8 and then stores (S33 in Figure 8) the interpretation results together with confidence scores in the prompt 1 interpretation results data file 9a.  In this example, the user input recogniser 5 provides the interpretation results:
INTERPRETATION RESULT   CONFIDENCE SCORE
Royal Bank of Westland  80%
Bank of Westland        70%
Royal Bank of Eastland  40%
Bank of Eastland        30%
Then, at S24 in Figure 7, the recogniser controller 8 evaluates the interpretation results for prompt 1 as described above with reference to Figure 9.  Thus, at S40, Figure 9, the recogniser controller 8 first checks to see whether any of the confidence scores are over a threshold, in this example 50% and, as the answer is yes, proceeds to check whether a response is a response to one of the set of prompts (rather than a confirmatory or further prompt).  As, in this case, the answer is yes, then at S43 the recogniser controller 8 selects the N highest confidence results, in this case the case the two interpretation results having a confidence score over 50%, accesses the customer information database and determines from the IDs associated with the customer names the serial numbers in the customer information  type 2 data file 10b that are consistent with the company names Royal Bank of Westland and Bank of Westland.
The following table 1 shows examples of the serial numbers that the customer information  type 2 data file 10b may contain for each of the four company names listed above.
TABLE 1
2005266769.tif 000019
Thus, in this example, the recogniser controller 8 constrains the prompt 2 grammar to serial numbers having a format QFE followed by a five digit number by which the first and second digits are a one and a zero.
In this example, the user’s response to the second prompt was:
“QFE 10515”
However, the user input recogniser 5 provides the following interpretation results in order of confidence score 
1       QFE 10615   90%
2       QFE 10515   60%
3       QFE 10515   60%
4       QFE 10616   50%
The recogniser controller 8 then determines the confidence scores for the Nth highest (that is the first and second in this case) interpretation results for the response to the first prompt and the Nth highest (that is the first and second in this case) interpretation results for the response to the second prompt and, as a consequence, determines that the most likely interpretation of the user’s input that is consistent with the customer information  stored in the customer information  type 1 and type 2 data files 10a and 10b is that the user responded by saying:
“Bank of Westland” and “QFE10615”
The recogniser controller 8 has thus established that there is a combination of interpretation results having sufficiently high confidence scores that is not inconsistent with the data in the customer information database and advises the operations controller accordingly (S29 in Figure 7).  
The operations controller 14 then instructs the dialogue controller 1 to cause the user output provider 3 to output a confirmatory prompt and I instructs the user input provider to store the corresponding response in the corresponding confirmatory prompt response data file in the user response data store (S3 in Figure 5).  The confirmatory prompt may be:
“Are you calling from the Bank of Westland in connection with serial number QFE 10615 ?”
When the user input provider 5 advises that the response to the confirmatory prompt has been stored, then the operations controller 14 instructs the user input recogniser 5 and the recogniser controller 8 to commence recognition and interpretation of the stored user confirmatory response data instructing the user input recogniser 5 to use a confirmatory prompt grammar that expects user input including words such as “yes” or “no” or “that is correct” or “that is incorrect”.
In this example, the user’s input has been interpreted incorrectly because the user actually said “Royal bank of Westland” and “QFE 10515”.
Accordingly, the user responds by saying a phrase which includes the word “no” so that, when the recogniser controller 8 accesses the confirmatory prompt interpretation results data file, the recogniser controller 8 determines at S44 in Figure 9 that an interpretation error has occurred.  In this example, the recogniser controller is configured to re-evaluate the interpretation results in a manner described above with reference to Figure 11 by (because the recognition error arose after the response to the second prompt had been subject to recognition and interpretation) re-ordering the prompts of the set of prompts so that the user response data for the second prompt, that is the serial number, is processed and interpreted first, thereby avoiding the knock-on effect of the interpretation error resulting from the fact that the user input recogniser 5 incorrectly recognised the user input “Royal Bank of Westland” as “Bank of Westland”.
If the user does not confirm the interpretation result, then the operations controller 1 may instruct the dialogue controller to output a supplementary prompt that seeks an answer not previously given by the user so that the user does not feel that he is having to repeat himself.  Thus, in this example, the supplementary prompt prompts the user for their postcode, for example the supplementary prompt may be:
“please tell me your postcode”
Once the user input provider advises that the response to the further or supplementary prompt has been stored in the corresponding user response data file, then the operations controller will instruct the user input recogniser and the recogniser controller to commence recognition and interpretation of the stored user to confirm the response data using a postcode grammar in the recognition grammar store which expects a combination of alpha-numeric characters in a postcode format.  The recogniser controller will then, in accordance with S57 in Figure 11 re-order the set of prompts and process the postcode interpretation results data first.
As an alternative to using the re-evaluation procedure as described with reference to Figure 11, the re-evaluation procedure described with reference to Figure 10 may be used so that the lower confidence level combinations of the interpretation results are tested for consistency with the postcode interpretation results data.
In another embodiment, the postcode prompt may be included in the set of prompts that the user is asked before an attempt is made to confirm the user’s input and, when an interpretation error is determined to have arisen, one or other of the re-evaluation procedures described with reference to Figure 10 and Figure 11 may be used.  As another possibility, the dialogue apparatus may be configured to use a re-evaluation process as described with reference to Figure 10 and, if the user does not confirm the results of that re-evaluation process, then to try the re-evaluation process shown in Figure 11.  If neither of these re-evaluation processes produces a confirmatory response from the user, then the dialogue apparatus may be configured to cause the user to be requested to repeat their responses to one or more to the set of prompts.
Following receipt of the user=s confirmation that the company name and serial number are correct, the operations controller 14 causes the dialogue controller 1 to prompt the user to input the charging log data, that is the number of pages copied. The dialogue controller 1 also instructs the user input recogniser 5 to process any subsequently received speech data using a number only grammar and, when the user input recogniser 5 has interpreted the received speech data, the recogniser controller 8 communicates with the operations controller 14 which causes the dialogue controller 1 to output a prompt requesting confirmation of the number of copies, for example:
APlease confirm that the number of copies is 226".
and instructs the user input recogniser 5 to use the confirmatory prompt grammar for processing the next received speech data.
If the user then responds by saying yes, the recogniser controller 8 communicates with the operations controller 14 which causes the user input actioner 11 to access the customer=s account to insert the number of copies taken in the current charging period.
As described above, the user inputs the number of copies verbally. As another possibility, the user may use the DTMF (dual tone multi frequency) tone dialling codes associated with the key pad of the user=s telephone to input the number of copies and the operations controller 14 may be arranged to pass such data directly from the user input provider 4 to the user input actioner 11 together with the company name and serial number identified in the interpretation results data store 9 as being the correct interpretation of the user=s input.
In the above described examples, the recogniser controller 8 constrains the grammar used for recognition of the second and subsequent prompts to data that, in accordance with the information stored in the customer information database 10, is consistent with the interpretation results for the first prompt to speed up the recognition process for the second and subsequent prompts.  To compensate for the fact that this may increase the possibility of subsequent interpretation errors if an interpretation error has occurred in the processing of the user=s response to the first prompt, the dialogue apparatus allows for the interpretation results for previous prompts to be re-evaluated or for the interpretation process to be re-conducted with the prompts re-ordered to avoid propagation of interpretation errors.
As can be seen from the above, the recogniser controller 8 is arranged to determine that an interpretation error has occurred in one or more of the following circumstances:
1. the user provides a negative answer (for example says no) in response to a confirmatory prompt;
2. there is no interpretation result or combination of interpretation results that has a sufficiently high confidence score;
3. the interpretation results for different prompts are inconsistent when the data in the customer information database is taken into consideration.
As set out above, the recogniser controller 8 is configured to provide the following re-evaluation options:
1. to re-evaluate the interpretation results for the already-asked prompts and to select the combination of interpretation results having the next highest confidence score;
2. to re-order the prompts and request the user input recogniser 5 to re-process the stored user response data so that an unconstrained global grammar is made for the response to a different one of the set of prompts.
As another possibility, or additionally, the recogniser controller 8 may adjust the threshold at which the confidence levels of the results provided by the user input recogniser 5 are considered reliable in the event of the detection of an interpretation error.  For example, the recogniser controller 8 may lower the confidence level threshold so that results having a lower confidence level are also considered.
In the above-described embodiments, the user uses a landline or mobile telephone to communicate with the dialogue apparatus. It will, of course, be appreciated that the user device 15 may be a personal computer, laptop or personal digital assistant (PDA) configured to be coupled to the network either by a wired or wireless communications link.
In the above described embodiments, the user provides user input data or responses in response to a sequence of prompts.  This need not necessarily be the case.  For example, a single prompt prompting the user for all the required information may be output. As another possibility, where the user knows what information is required, then the user may simply supply the necessary user input data without the dialog apparatus providing any prompts.
Also, as described above, at least initially, the interpreter 500 interprets user input data in the order in which it is input.  In other embodiments, the interpreter 500 may process the user input data in a different order.  This allows the interpreter 500 to select the user input data that is most likely to be correctly interpreted as the first user input data item to be interpreted while still allowing the user to input data in a more natural manner. Thus, in the examples given above, the interpreter 500 may interpret postcode data first as this is of a very specific format and may thus be more easily interpreted even though the user naturally provides the company name as the first user input data item.
In other embodiments, the interpreter need not wait for all of the set of user input data items to have been received but may interpret items of user input data as they are received. 
In the above described embodiments, the user provides user input data in the form of speech. Other forms of user input may be provided, dependent upon the user input options provided by the user interface of the user device. Thus, where the user device has a handwriting input, then the user input may be provided in the form of handwriting data in which case the user input recogniser 5 will comprise a handwriting recognition engine. Similarly, if the user interface includes a camera, then user input may be in the form of gesture and/or lip reading data in which case the user input recogniser 5 will have a gesture and/or lip reading data recogniser. Where the user input recogniser 5 is capable of recognising user input data in more than one of the above-mentioned modalities, then the user input recogniser 5 will generally include a modality integrator that enables inputs from different modalities to be combined in accordance with a set of logical rules determining the circumstances (for example the relative timing of the inputs in the different modalities) in which input from different modalities should be combined as representing the answer to a single prompt.
Also, use of the dialogue apparatus may also be advantageous even where the user input is in the form of keystroke data because the user input recogniser 5 and recogniser controller 8 may be able to compensate for typing errors.
As described above, the dialogue apparatus 200 is provided as a single physical entity. It will, however, be appreciated that the functional components of the dialogue apparatus may be distributed across the network so that the functional components communicate via the network. Thus, for example, the user input actioner 11 may be located on a different part of the network from the remaining parts of the dialogue apparatus. Similarly, the user input recogniser 5 may be located on a different part of the network from the recogniser controller 8 as may the operations and dialogue controllers 14 and 1. In addition, the customer information database 10 may be located at a different location on the network and the recogniser controller 8 arranged to access the customer information database 10 over the network. Similarly, any one or more of the dialogue store 2, recognition grammar store 6, user response data store 7 and interpretation results data store 9 may be accessed over the network.
In the above-described embodiments, a user communicates with the dialogue apparatus over a network. This need not necessarily be the case and, for example, a user may communicate directly with the dialogue apparatus using the user interface shown in Figure 4b. As another possibility, the dialogue apparatus may be a standalone apparatus and the user may communicate directly with the dialogue apparatus or via a user device 15 coupled to the dialogue apparatus via a wired or wireless communications link.
In the above-described embodiments, examples of transactions that may be completed using the dialogue apparatus have been given. It will, however, be appreciated that the dialogue apparatus may be used in any circumstance where a customer information database is amendable and it is required to ask a number of prompts of a user to elicit information to enable a user=s instructions to be implemented. 
In addition to avoiding or reducing the possibility of having to ask a user a repeat prompt, the dialogue apparatus described above may have additional advantages. Thus, for convenience of the user, a sequence of prompts can be tailored to the order in which the user would expect to be asked for information. However, it may be that responses to certain prompts can be recognised more reliably than responses to other prompts. Thus, for example, in the telephone photocopier usage logging system described above, the recognition results should be better for the serial numbers than for the company names because the serial numbers all conform to a standard format. A user, however, naturally expects to be asked their company name before the serial number. Using the dialogue apparatus 200 described above enables advantage to be taken of the fact that the serial numbers can be more accurately recognised than the company names while still enabling the prompts to be presented to the user in the order that seems most natural to users.
In addition, automatic speech recognition engines cannot necessarily always detect the true end point of user=s speech data particularly if the user pauses unnaturally whilst speaking. Storing the digital speech data in the user response data files has the advantage that speech data separated by pauses can be concatenated so that account can be taken of the possibility of an end point detection error.
1. Apparatus for processing a set of items of related user input data to facilitate the carrying out of a task, the apparatus comprising:
a receiver operable to receive items of user input data;
an interpreter operable to interpret the set of items of user input data to produce a corresponding set of interpretation results data including interpretation results data for each item of user input data, the interpreter being configured to constrain interpretation of an item of the set of user input data on the basis of constraint data related to the interpretation results data obtained for at least one other item of the set of user input data items; and
a controller operable to detect an occurrence of a  interpretation error in the interpretation results data for an item in the set of user input data items, the controller being configured to cause, in the event that an interpretation error is detected for an item in the set of user input data items, the interpreter to re-interpret at least one of the other items in the set of user input data items using modified constraint data to produce modified interpretation results data and the controller also being operable to provide a control signal to facilitate the carrying out of a task in accordance with the set of modified interpretation results data.
2. Apparatus according to claim 1, wherein the interpreter is configured to interpret the user input data items using a database containing data associated with the user input data items and providing the constraint data.
3. Apparatus according to claim 1 or 2, further comprising a prompter operable to supply to the user prompt data for prompting the user to supply the user input data items.
4. Apparatus for conducting a dialog with a user regarding the carrying out of a task, the apparatus comprising:
a prompter operable to supply a set of prompt data for prompting the user to supply a corresponding set of items of user input data for acquiring task data to enable the task to be carried out;
a receiver operable to receive user input data items representing the user’s responses to the set of prompt data;
an interpreter operable to interpret the user input data items to obtain a set of interpretation results  data for providing the task data to enable the task to be carried out, the interpreter being configured to interpret the user input data items using a database containing data relevant to the set of prompt data and to constrain the interpretation of an item of the set of user input data items to interpretation results data that, according to the data in the database accessed by the interpreter, are consistent with the interpretation results data for a user input data item or user input data items of the set that have already been interpreted; and 
a controller configured to identify an occurrence of an interpretation error in the interpretation results data for a user input data item on the basis of at least one of the interpretation results data and the data in the database and being configured to cause the interpreter to re-interpret at least one user input data item in the set other than the user input data item for which the occurrence of an interpretation error was detected using modified constraints in the event that an interpretation error occurrence is identified, the controller being operable to instruct the carrying out of the task in accordance with the modified set of interpretation results data.
5. Apparatus according to claim 4, wherein the interpreter is arranged to identify an interpretation error in the event that interpretation results data are inconsistent with data in the database.
6. Apparatus according to any preceding claim, wherein the interpreter is configured to store a group of interpretation results data for each user input data item, the controller is operable to select interpretation results data for a user input data item from within the corresponding stored group of interpretation results data and to modify the constraint data for a user input data item in the case of an occurrence of an interpretation error for a user input data item by selecting different  interpretation results data for that user input data item and by causing the interpreter to re-interpret at least one other user input data item in the set of user input data items such that the interpretation results data produced for the at least one other user input data item in the set of user input data items are constrained to interpretation results data that are consistent with the different interpretation results data for that user input data item.
7. Apparatus according to any preceding claim, wherein the controller is operable to cause the at least one user data input item for which the constraints on the interpretation results data are modified to be the user data input item that was interpreted immediately preceding the user input data item for which the occurrence of an interpretation error was detected. 
8. Apparatus according to any preceding claim, wherein the interpreter is operable to provide a set of interpretation results data for each user input data item with each interpretation results data being associated with a  confidence score and to store the confidence scores with the interpretation results data, the interpreter is operable to select from the set of interpretation results data the interpretation results data having a confidence score above a predetermined threshold and the controller is operable to cause the predetermined threshold to be adjusted for the at least one user input data item in the case that an occurrence of an interpretation error is detected. 
9. Apparatus according to any of claim 1 to 4, wherein the controller is operable to cause the constraints on the interpretation results data to be modified for the at least one user input data item of the set of user input data items in the case that the interpreter detects an occurrence of an interpretation error by causing the interpreter to interpret the user input data items in a different order.
10. Apparatus according to any preceding claim, wherein the interpreter is arranged to interpret user input data items using a recognition grammar and the controller is operable to constrain the recognition grammar for a subsequent user input data item to recognition grammar data that are consistent with the interpretation results data obtained for at least one other user input data item.
11. Apparatus according to claim 10, further comprising the recognition grammar.
12. Apparatus according to claim 11, wherein the recognition grammar provides a respective different recognition grammar file for each user input data item.
13. Apparatus according to claim 2 or 4 or any of claims 3 and 5 to 12 when dependent on claim 2 or 4, wherein the interpreter is arranged to access as the database a database containing, for each user input data item, sets of potential interpretation results data items with each potential interpretation results data item being provided with association data associating that potential interpretation results data item with one or more potential interpretation results data items for a different one of the set of user input data items.
14. Apparatus according to claim 2 or 4 or any of claims 3 and 5 to 12 when dependent on claim 2 or 4, further comprising the database, wherein the database contains, for each user input data item, a set of potential interpretation results data items with each potential interpretation results data item being provided with association data associating that potential interpretation results data item with one or more potential interpretation results data items for a different one of the set of user input data items.
15. Apparatus according to claim 14, wherein each potential interpretation results data item is provided with association data associating that potential interpretation results data item with one or more potential interpretation results data items for each of the other ones of the set of user input data items.
16. Apparatus according to any of the preceding claims, wherein the controller is arranged to cause the user to be requested to supply a confirmatory user input data item in the event that the controller does not detect or no longer detects an occurrence of an interpretation error for the set of user input data items and the controller is arranged to identify an interpretation error in the event that the interpretation results data for the confirmatory user input data item indicate that the user has not confirmed that the set of user input data items have been interpreted correctly.
17. Apparatus according to any of the preceding claims, wherein the controller is operable to instruct the interpreter to re-interpret the interpretation results data for the first of the set of user input data items in the event the controller detects an occurrence of an interpretation error in the interpretation results data for that first user input data item.
18. Apparatus according to any of the preceding claims, wherein the interpreter comprises a speech recogniser.
19. Apparatus according to any of the preceding claims adapted to enable a user to supply data relating to usage of an office machine such as a photocopier to enable a task related to logging of that usage with the office machine provider to be carried out.
20. Apparatus according to claim 14, wherein the database contains company data, machine serial number data and address-related data and the user input data items comprise a company name, a machine serial number  and address-related data.
21. A method of processing a set of items of related user input data to facilitate the carrying out of a task, the method comprising apparatus carrying out the steps of:
receiving items of user input data;
interpreting the set of items of user input data to produce a corresponding set of interpretation results data including interpretation results data for each item of user input data such that interpretation of an item of the set of user input data is constrained on the basis of constraint data related to the interpretation results data obtained for at least one other item of the set of user input data items;
detecting an occurrence of an interpretation error in the interpretation results data for an item in the set of user input data items;
in the event that an interpretation error is detected for an item in the set of user input data items, re-interpreting at least one of the other items in the set of user input data items using modified constraint data to produce modified interpretation results data; and 
providing a control signal to facilitate the carrying out of a task in accordance with the set of modified interpretation results data.
22. A method according to claim 21, wherein the interpreting step interprets the user input data items using a database containing data associated with the user input data items and providing the constraint data.
23. A method according to claim 21 or 22, further comprising the step of prompting the user to supply the user input data items.
24. A method of conducting a dialog with a user regarding the carrying out of a task, the method comprising a dialog apparatus carrying out the steps of:
supplying a set of prompt data for prompting the user to supply a corresponding set of items of user input data for acquiring task data to enable the task to be carried out;
receiving user input data items representing the user’s responses to the set of prompt data;
interpreting the user input data items to obtain a set of interpretation results  data for providing the task data to enable the task to be carried out, by using a database containing data relevant to the set of prompt data and constraining the interpretation of an item of the set of user input data items to interpretation results data that, according to the data in the accessed database, are consistent with the interpretation results data for a user input data item or user input data items of the set that have already been interpreted; 
identifying an occurrence of an interpretation error in the interpretation results data for a user input data item on the basis of at least one of the interpretation results data and the data in the database;
re-interpreting at least one user input data item in the set other than the user input data item for which the occurrence of an interpretation error was detected using modified constraints in the event that an interpretation error occurrence is identified; and
instructing the carrying out of the task in accordance with the modified set of interpretation results data.
25. A method according to claim 24, wherein the interpreting step identifies an interpretation error in the event that interpretation results data are inconsistent with data in the database.
26. A method according to any of claims 21 to 25, wherein the interpreting step stores a group of interpretation results data for each user input data item, interpretation results data for a user input data item are selected from within the corresponding stored group of interpretation results data, the constraint data for a user input data item is modified in the case of an occurrence of an interpretation error for a user input data item by selecting different  interpretation results data for that user input data item, and at least one other user input data item in the set of user input data items is re-interpreted such that the interpretation results data produced for the at least one other user input data item in the set of user input data items are constrained to interpretation results data that are consistent with the different interpretation results data for that user input data item.
27. A method according to any of claims 21 to 26, wherein the at least one user data input item for which the constraints on the interpretation results data are modified is the user data input item that was interpreted immediately preceding the user input data item for which the occurrence of an interpretation error was detected. 
28. A method according to any of claims 21 to 27, wherein the interpreting step provides a set of interpretation results data for each user input data item with each interpretation results data being associated with a  confidence score and stores the confidence scores with the interpretation results data, the interpretation results data having a confidence score above a predetermined threshold are selected from the set of interpretation results data and the predetermined threshold is adjusted for the at least one user input data item in the case that an occurrence of an interpretation error is detected. 
29. A method according to any of claim 21 to 24, wherein the constraints on the interpretation results data are modified for the at least one user input data item of the set of user input data items in the case that an occurrence of an interpretation error is detected by causing the interpreter to interpret the user input data items in a different order.
30. A method according to any of claims 21 to 29, wherein the interpreting step interprets user input data items using a recognition grammar and the recognition grammar for a subsequent user input data item is constrained to recognition grammar data that are consistent with the interpretation results data obtained for at least one other user input data item.
31. A method according to claim 30, wherein the recognition grammar provides a respective different recognition grammar file for each user input data item.
32. A method according to claim 22 or 24 or any of claims 23 and 25 to 31 when dependent on claim 22 or 24, wherein the interpreting step accesses as the database a database containing, for each user input data item, sets of potential interpretation results data items with each potential interpretation results data item being provided with association data associating that potential interpretation results data item with one or more potential interpretation results data items for a different one of the set of user input data items.
33. A method according to claim 32, wherein each potential interpretation results data item is provided with association data associating that potential interpretation results data item with one or more potential interpretation results data items for each of the other ones of the set of user input data items.
34. A method according to any of claims 21 to 33, further comprising requesting the user to supply a confirmatory user input data item in the event an occurrence of an interpretation error for the set of user input data items is not detected or is no longer detected and identifying an occurrence of an interpretation error in the event that the interpretation results data for the confirmatory user input data item indicate that the user has not confirmed that the set of user input data items have been interpreted correctly.
35. A method according to any of claims 21 to 34, wherein the interpretation results data for the first of the set of user input data items are re-interpreted in the event the controller detects an occurrence of an interpretation error in the interpretation results data for that first user input data item.
36. A method according to any of claims 21 to 35, wherein the interpreting step comprises recognising user input data in the form of speech data.
37. A method according to any of claims 21 to 36 for  enabling a  user to supply data relating to usage of an office machine such as a photocopier to enable a task related to logging of that usage with the office machine provider to be carried out.
38. A method according to claim 37, wherein the database contains company data, machine serial number data and address-related data and the user input data items comprise a company name, a machine serial number  and address-related data.
39. An interpreter apparatus for use in an apparatus in accordance with claim 1, comprising:
an interpreter operable to interpret a set of items of user input data to produce a corresponding set of interpretation results data including interpretation results data for each item of user input data, the interpreter being configured to constrain interpretation of an item of the set of user input data on the basis of constraint data related to the interpretation results data obtained for at least one other item of the set of user input data items; and
a controller operable to detect an occurrence of an interpretation error in the interpretation results data for an item in the set of user input data items, the controller being configured to cause, in the event that an interpretation error is detected for an item in the set of user input data items, the interpreter to re-interpret at least one of the other items in the set of user input data items using modified constraint data to produce modified interpretation results data.
40. A method of interpreting user input data, comprising the steps of:
interpreting a set of items of user input data to produce a corresponding set of interpretation results data including interpretation results data for each item of user input data, the interpreter being configured to constrain interpretation of an item of the set of user input data on the basis of constraint data related to the interpretation results data obtained for at least one other item of the set of user input data items; 
detecting an occurrence of an interpretation error in the interpretation results data for an item in the set of user input data items; and
causing, in the event that an interpretation error is detected for an item in the set of user input data items, at least one of the other items in the set of user input data items to be re-interpreted using modified constraint data to produce modified interpretation results data.
41. A signal comprising processor-implementable instructions for programming a processor to carry out a method in accordance with any of claims 21 to 38 or 40.
42. A storage medium storing processor-implementable instructions for programming a processor to carry out a method in accordance with any of claims 21 to 38 or 40.
Apparatus for processing a set of items of related user input data to facilitate the carrying out of a task has an interpreter (500) that is arranged to interpret a set of items of user input data to produce a corresponding set of interpretation results data including interpretation results data for each item of user input data.  The interpreter (500) is arranged to constrain interpretation of an item of the set of user input data on the basis of constraint data related to the interpretation results data obtained for at least one other item of the set of user input data items. A controller (8) of the interpreter is arranged to detect an occurrence of an interpretation error in the interpretation results data for an item in the set of user input data items.  The controller (8) is configured to cause, in the event that an interpretation error is detected for an item in the set of user input data items, the interpreter (500) to re-interpret at least one of the other items in the set of user input data items using modified constraint data to produce modified interpretation results data and to provide a control signal to facilitate the carrying out of a task in accordance with the set of modified interpretation results data.
(Figure 1)
2005266769.tif 000020
2005266769.tif 000021
2005266769.tif 000022
2005266769.tif 000023
2005266769.tif 000024
2005266769.tif 000025
2005266769.tif 000026
2005266769.tif 000027
2005266769.tif 000028
2005266769.tif 000029
2005266769.tif 000030
2005266769.tif 000031
2005266769.tif 000032
2005266769.tif 000033
2005266769.tif 000034