(57)【要約】      （修正有）【課題】音声認識を改善するためのシステムおよび方法を提供すること。【解決手段】システムのユーザは、システムに対して直接話すことができ、システムは、適切な応答によって、発声される言葉で応答する。特定のアプリケーションのためのシステムが実装される場合、文法規則は、サンプル発話から自動的に生成することができる。動的文法規則は、ユーザとシステムの間の相互作用の際に生成することもできる。予め定められた階層に基づいて文法規則の検索順序を配列することに加えて、音声認識をさらに改良するために、単一の会話のコンテキストの履歴に基づき動的に生成された検索順序を提供することができる。システムとそのユーザの間の対話を、記録し抽出することによって、音声認識エンジンによって使用し、言語モデルを洗練または作成することができ、これにより、特定の知識領域に関連する音声認識の精度を改善することができる。【選択図】図１
2006106748.tif 000002
【特許請求の範囲】
【請求項１】
発声された単語の音響信号表現からテキスト出力を提供するための音声認識システムであって、
部分的に認識された文を構文解析して、文タイプと、関連する認識された単語および認識されていない音のグループ分けの順序付きリストとを導くための自然言語処理装置であって、前記文タイプは、概念の順序付きリストを有し、前記部分的に認識された文は、前記音響信号に対応する自然言語処理装置と、
前記認識されていない音のグループ分けの１つに対応する位置にある各前記概念を、複数の関係する単語へ拡張するための文法規則生成器と、
前記音響信号を前記テキスト出力に変換するための音声認識エンジンとを含み、前記音声認識エンジンは、前記認識されていない音のグループ分けの１つを解決するために、前記複数の関係する単語に作用的に連結されている、システム。
【請求項２】
発声された単語の音響信号表現の認識精度を改善するためのシステムであって、前記音響信号は、音声認識エンジンによってテキスト出力に変換され、前記システムは、
テキスト形式の文を構文解析してキーワードの順序付きリストを導くための自然言語処理装置と、
前記順序付きリストの各キーワードを、複数の関係する単語に拡張して、前記キーワードの順序付きリストから文法規則を得るための文法規則生成器とを含み、
前記音声認識エンジンは、前記音響信号において認識されていない音のグループ分けを解決して、対応する発声された単語を前記テキスト出力として導くための前記文法規則に作用的に連結される、システム。
【請求項３】
概念からキーワードへのマッピングを準備するためのエディタをさらに含み、各キーワードの前記複数の関係する単語への前記拡張は、各前記キーワードを概念とマッチングすること、および、対応する概念からキーワードへのマッピングを用いて前記概念をキーワードで置き換えることに対応する、請求項２に記載のシステム。
【請求項４】
前記文法規則は、それに割り当てられたコンテキスト指定を有する、請求項２に記載のシステム。
【請求項５】
前記発声された単語の会話コンテキストを決定することが実施可能であり、前記音声認識エンジンは、前記コンテキスト指定が前記会話コンテキストと一致する場合に、前記文法規則を選択することが実施可能である、請求項３に記載のシステム。
【請求項６】
音声認識エンジンによって使用するための文法規則を生成する方法であって、
自然言語処理装置を使用して、サンプル文を構文解析して、キーワードの順序付きリストを導くステップと、
概念からキーワードへのマッピングを使用して、前記順序付きリストの各キーワードを、概念とマッチングするステップと、
前記概念からキーワードへのマッピングを使用して、各前記概念をキーワードのリストで置き換えることにより、前記順序付きリストから前記文法規則を作成するステップとを含む、方法。
【請求項７】
コンテキスト指定を前記文法規則に割り当てるステップをさらに含む、請求項６に記載の方法。
【請求項８】
前記概念からキーワードへのマッピングは、コンテキスト属性を有し、前記文法規則に割り当てられた前記コンテキスト指定は、前記コンテキスト属性に対応する、請求項６に記載の方法。
【請求項９】
複数の概念からキーワードへのマッピングを準備するステップをさらに含む、請求項６に記載の方法。
【請求項１０】
概念からキーワードへのマッピング、および文タイプを使用して、部分的に認識された音声における認識されていない音のグループを解決するための音声認識方法であって、各文タイプは、複数の関連する文法規則を有し、前記文法規則は、いくつかの概念として表現され、前記方法は、
自然言語処理装置を使用して、前記部分的に認識された音声を構文解析して、所定の文タイプと、関連する認識された単語および前記認識されていない音グループの順序付きリストとを導くステップと、
前記文タイプに関連する文法規則のリストを、複数の文法規則から選択するステップであって、
前記リストの各文法規則は、複数の構成概念を有し、
各前記構成概念は、前記認識された単語と前記認識されていない音グループの一方に対応するステップと、
前記認識されていない音グループごとに、すべての前記選択された文法規則における前記対応する構成概念を、１つの概念リストにマージするステップと、
候補単語のリストを作成するために、前記概念からキーワードへのマッピングを使用して前記マージされた概念のリストを拡張するステップと、
前記候補単語のリストを使用して、各前記認識されていない音グループを解決するステップとを含む、方法。
【請求項１１】
前記拡張するステップに先立ち、複数の概念からキーワードへのマッピングを準備するステップをさらに含む、請求項１０に記載の音声認識方法。
【請求項１２】
前記文法規則のリストを選択するステップは、前記部分的に認識された音声と、前記複数の文法規則のそれぞれを比較するステップと、前記部分的に認識された音声と一致しないどの文法規則も破棄するステップとを含む、請求項１０に記載の音声認識方法。
【請求項１３】
前記比較するステップは、文タイプを比較するステップを含み、前記破棄するステップは、前記部分的に認識された音声と同じ文タイプを有していない文法規則を破棄するステップを含む、請求項１２に記載の音声認識方法。
【請求項１４】
前記比較するステップは、前記部分的に認識された音声を、前記複数の文法規則のそれぞれの前記構成概念と比較するステップを含み、前記破棄するステップは、前記部分的に認識された音声において、認識されたいずれの単語にも一致しない文法規則を破棄するステップを含む、請求項１２に記載の音声認識方法。
【請求項１５】
前記部分的に認識された音声の会話コンテキストを決定するステップをさらに含み、前記選択された文法規則のそれぞれは、コンテキスト指定をさらに有し、前記比較するステップは、前記コンテキスト指定を、前記会話コンテキストと比較するステップを含み、前記破棄するステップは、前記コンテキスト指定と一致する前記会話コンテキストを有していない文法規則を破棄するステップを含む、請求項１２に記載の音声認識方法。
【請求項１６】
概念からキーワードへのマッピング、および文タイプを使用して、音声における認識されていない音グループを解決するために、音声認識エンジンによって使用するための動的文法ファイルを生成するための方法であって、各文タイプは、複数の関連する文法規則を有し、前記文法規則は、いくつかの概念として表現され、前記方法は、
自然言語処理装置を使用して、前記部分的に認識された音声を構文解析して、所定の文タイプと、関連する認識された単語および前記認識されていない音グループの順序付きリストとを導くステップと、
複数の文法規則から、前記文タイプと関連する文法規則のリストを選択するステップであって、
前記リストの各文法規則は、複数の構成概念を有し、
前記構成概念のそれぞれは、前記認識された単語と前記認識されていない音グループの一方に対応するステップと、
前記認識されていない音グループごとに、すべての前記選択された文法規則における前記対応する構成概念を、１つの概念リストにマージするステップと、
前記概念からキーワードへのマッピングを使用して、前記マージされた概念のリストの各概念を、キーワードのリストで置き換えることによって、前記順序付きリストから前記動的文法規則を生成するステップとを含む、方法。
【請求項１７】
コンテキスト指定を、前記動的文法規則に割り当てるステップをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記概念からキーワードへのマッピングは、コンテキスト属性を有し、前記動的文法規則に割り当てられた前記コンテキスト指定は、前記コンテキスト属性に対応する、請求項１６に記載の方法。
【請求項１９】
複数の概念からキーワードへのマッピングを準備するステップをさらに含む、請求項１６に記載の方法。
【請求項２０】
前記文法規則のリストを選択する前記ステップは、前記複数の認識された音声を前記複数の文法規則のそれぞれと比較するステップと、前記部分的に認識された音声と一致しないどの文法規則も破棄するステップとを含む、請求項１６に記載の方法。
【請求項２１】
前記比較するステップは、文タイプを比較するステップを含み、前記破棄するステップは、前記部分的に認識された音声と同じ文タイプを有していない文法規則を破棄するステップを含む、請求項１６に記載の方法。
【請求項２２】
前記比較するステップは、前記部分的に認識された音声を比較するステップを含み、破棄するステップは、前記部分的に認識された音声においてどの認識された単語にも一致しない文法規則を破棄するステップを含む、請求項１６に記載の方法。
【請求項２３】
前記部分的に認識された音声の会話コンテキストを決定するステップをさらに含み、前記選択された文法規則のそれぞれは、コンテキスト指定をさらに有し、前記比較するステップは、前記コンテキスト指定を前記会話コンテキストと比較するステップを含み、前記破棄するステップは、前記コンテキスト指定と一致する前記会話コンテキストを有していない文法規則を破棄するステップを含む、請求項１６に記載の方法。
【請求項２４】
複数の文法規則を準備するステップであって、前記複数の各文法規則は、それに割り当てられたコンテキスト指定を有するステップと、
音声認識エンジンによって認識される音声の会話コンテキストを決定し、コンテキスト履歴に前記会話コンテキストを記録するステップと、
前記会話コンテキストが、前記コンテキスト指定のうち１つに対応する場合、前記コンテキスト履歴の機能として、検索シーケンスにおいて順位を前記コンテキスト指定に割り当てるステップと、
前記音声認識エンジンに、前記検索シーケンスに従って前記複数の文法規則を検索するように指示するステップとを含む、音声認識方法。
【請求項２５】
前記順位は、前記コンテキスト履歴において、前記会話コンテキストがどの程度最近に出現したかと相関関係にある、請求項２４に記載の方法。
【請求項２６】
前記順位は、前記会話コンテキストが前記コンテキスト履歴に出現する頻度と相関関係にある、請求項２４に記載の方法。
【請求項２７】
前記順位は、前記コンテキスト履歴において前記会話コンテキストが表されている合計時間と相関関係にある、請求項２４に記載の方法。
【請求項２８】
言語モデル生成器によって使用するためのコーパスを編纂する方法であって、
ユーザからのユーザ入力のテキスト、および知識ベース・システムによって生成された前記ユーザに対する応答を、ログ・ファイルに格納するステップと、
前記ユーザと前記知識ベース・システムの間の会話のスレッドを抽出するステップあって、前記会話のスレッドは、前記ユーザ入力および前記システム応答のリテラル・テキストを含むステップと、
前記会話のスレッドを前記コーパスに追加するステップとを含む、方法。
【請求項２９】
音声認識エンジンを使用して、前記ユーザ入力を音声として認識するステップをさらに含み、
前記格納するステップは、前記ユーザの前記認識された音声のテキストを格納するステップを含む、請求項２８に記載の方法。
【請求項３０】
前記システム応答は、予めプログラムされた応答のデータベースから抽出される、請求項２８に記載の方法。
【請求項３１】
複数の予めプログラムされた応答を準備するステップと、すべての前記予めプログラムされた応答を前記コーパスに追加するステップとをさらに含む、請求項２８に記載の方法。
【請求項３２】
音声認識システムの認識精度を改善するための方法であって、前記音声認識システムは、発声された単語の音響信号表現をテキスト出力に変換するための音声認識エンジンを有し、前記方法は、
第１の複数の概念を選択するステップと、
第２の複数の概念からキーワードへのマッピングを準備するステップであって、前記第１の複数の概念の各概念は、少なくとも１つの概念からキーワードへのマッピングを有するステップと、
第３の複数の文タイプを定義するステップであって、各文タイプは、概念の順序付きリストと関連しており、前記概念の順序付きリストは、前記第１の複数の概念から形成されるステップと、
前記音響信号において認識されていない音のグループ分けを解決するために、前記第１の複数の概念と、前記第２の複数の概念からキーワードへのマッピングと、前記第３の複数の文タイプとを、前記関連する概念の順序付きリストと一緒に、前記音声認識システムに提供するステップとを含む、方法。
【請求項３３】
サンプル発話を入力するステップと、
自然言語処理装置を使用して、前記サンプル発話を構文解析して、文タイプ、および関連する概念の順序付きリストを導くステップと、
文法規則生成器を使用して、前記文タイプ、および前記関連する概念の順序付きリストから、文法規則を生成するステップと、
前記音響信号において認識されていない音のグループ分けを解決するために、前記文法規則を、前記音声認識エンジンに提供するステップとをさらに含む、請求項３２に記載の方法。
【請求項３４】
複数のサンプル発話を入力するステップと、
自然言語処理装置を使用して、各前記サンプル発話を構文解析して、文タイプ、および関連する第２の概念の順序付きリストを導くステップと、
文法規則生成器を使用して、前記文タイプ、および前記関連する第２の概念の順序付きリストから、文法規則を生成するステップと、
前記音響信号において認識されていない音のグループ分けを解決するために、前記複数の文法規則を前記音声認識エンジンに提供するステップとをさらに含む、請求項３２に記載の方法。
【請求項３５】
部分的に認識された音響信号に対応するテキスト入力を、自然言語処理装置に提供するステップと、
前記自然言語処理装置を使用して、前記テキスト入力を構文解析して、第２の文タイプと、関連する認識された単語および認識されていない音のグループ分けの順序付きリストとを導くステップと、
前記複数の文法規則から、前記第２の文タイプに関連する文法規則のリストを選択するステップであって、前記リストの各文法規則は、複数の構成概念を有するステップと、
前記認識されていない音のグループ分けのうち１つに対応する位置における各前記構成概念を、複数の関係する単語へ拡張するステップと、
前記認識されていない音のグループ分けのうち１つを解決するために、前記複数の関係する単語を、前記音声認識エンジンに提供するステップとをさらに含む、請求項３４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、音声認識の分野に関する。特に、本発明は、音声認識の精度を改善するためのシステムおよび方法に関する。
【背景技術】
【０００２】
現代のすべての音声認識技術は、ユーザの発話すなわち発声された単語または音声を、音の内部表現とマッチングし、次いで、音のグループ分けを単語のデータ・ファイルと比較することに基づいている。これらのデータ・ファイルは、辞書ファイルまたは文法ファイルとすることができる。
【０００３】
辞書ファイルは、個々の単語に対応する音の表現データを含む。文法ファイルは、構文的に正しい文構造に対応する音の表現データを含む。音のグループ分けと単語データの比較は、辞書ファイル、すなわち「ディクテーション（ｄｉｃｔａｔｉｏｎ）」と通常呼ばれる方法、ならびに、文法ファイル、すなわち「コマンド・アンド・コントロール（ｃｏｍｍａｎｄ  ａｎｄ  ｃｏｎｔｒｏｌ）」と通常呼ばれる方法に依拠する。一般的に、辞書ファイルまたは文法ファイルのどちらか一方が使用されるが、両方が同時には使用されない。言い換えれば、音声認識エンジンは、ディクテーション方法またはコマンド・アンド・コントロール方法のいずれか一方を使用する傾向があり、この２つの方法を併用することは稀である。
【０００４】
辞書ファイルは、パターン・マッチングのために使用され、音のグループが、個々の単語とマッチングされる。個々の単語をマッチングしていくのに伴い、多数の音のグループ分けに対して比較を行う必要がある。大きいプールから一致を識別することができるようにするため、比較についての信頼性の閾値は、より低い値に設定される傾向があるので、一般に、より低い認識精度がもたらされる。
【０００５】
ディクテーション認識を改良するために、言語モデルと呼ばれる技術を使用することができる。この技術を使用して、まず多数の関連するコーパスを解析して、あり得る文構成の洗練された統計的表現を生成する。この統計情報は、単語間の相関性、または、特定の句および語のパターンの頻度などを含む。言語モデルによる統計情報は、ディクテーション音声認識のプロセスにおいて、音グループの単語グループに対する一致に重みを付けるために使用することができる。追加の統計情報により、ディクテーション認識で実際に設定されているよりも高い閾値が可能になり、したがって、認識精度が改善される。
【０００６】
言語モデルを作成するとき、関連するコーパス、すなわち特定の知識領域に関連する文字テキストのコレクションが解析され得る。典型的には、言語モデルを作成または確立するためのコーパスは、雑誌記事、新聞、または他の文字による資料からなる。コーパスが編纂されると、それから統計情報を生成することができるように、コーパスは、言語モデルツールまたは言語モデル生成器にしばしば供給される。しかし、文字による表現と口述の表現の間には差異が存在する傾向がある。さらに、文字による資料と生の対話の間にも差異が存在し得る。したがって、文字による資料から生成された言語モデルは、発声される言葉と一貫している統計情報を提供していないことがある。その結果として会話の認識精度が低下する傾向がある。
【０００７】
文法ファイルが使用される場合、音のグループは、ここでは一般に文法規則と呼ばれる発話の正確な構成と比較される。各文法規則は、語彙を含むが、通常その語彙はかなり限られている。一般に、文法規則において識別する必要がある単語が少数であることによって、より高い認識精度がもたらされる。
【０００８】
文法規則は、文法的に正しい文を構文解析し得るパターン・マッチング・ルールである。文法規則それ自体は、文法的に正しい文である必要はない。例えば、文法規則は、下記のような形式を取ることができる。
［Ｉ｜ｗｅ｜ｙｏｕ｜ｈｅ｜ｓｈｅ｜ｔｈｅｙ｜ｉｔ］［ｌｉｋｅ｜ｗａｎｔ｜ｐｒｅｆｅｒ｜ｌｏｖｅ］［ｒｅｄ｜ｂｌｕｅ｜ｙｅｌｌｏｗ｜ｇｒｅｅｎ］
括弧の各対は、ある文における該当の位置の単語についてのプレースホルダを表している。括弧の各対によって囲まれた単語は、その位置に対して選択され得るオプションの単語である。ここに示される文法規則により、例えば、「Ｉ  ｌｉｋｅ  ｂｌｕｅ」あるいは「ｔｈｅｙ  ｐｒｅｆｅｒ  ｙｅｌｌｏｗ」のような文を正しく構文解析することができる。文法規則は、コンパクトな表現から、広い範囲の候補の文を構成することを可能にする。大量の可能なすべての個別候補単語ではなく、適切な文法規則を、それぞれの比較について選択することができる。前述のように、各文法規則は、かなり限られた数の候補単語のみを有する傾向がある。したがって、比較的高い閾値を、比較のために設定することができ、それによって、一般に、より高い認識精度がもたらされる。
【０００９】
文法ファイルの使用により、マッチングすべきすなわち認識すべき候補単語の数が大幅に減少し得るが、文法規則の構成が、手作業で作成される場合、冗漫になる傾向があり、誤りが起きやすい。例えば、オプションの単語の各リストは、それぞれの文法規則を構成する際に慎重な検討を必要とすることがある。文法規則を手作業で作成する場合、すべての文法規則についてプレースホルダごとに所望の数のオプションの単語を入力して、できる限り複雑で、できる限り包括的な文法規則を作成することは難しい傾向がある。そのため、これらの文法規則を利用する音声認識エンジンによって認識することができる発話の範囲が制限されるおそれがある。入力されるオプションの単語または文法規則から省略されるオプションの単語のいかなる誤りも、認識結果の誤りをもたらすおそれがある。
【００１０】
さらに、文法ファイルを使用する際、認識される音声のコンテキストに応じて、音声認識エンジンは、異なる文法規則をロードするすなわち使用するよう指示されることが知られている。これには、同様であるが同一ではない文法規則を、期待されるコンテキストごとに作成することが必要となる。これにより、手作業で文法規則を作成する作業が大幅に増大し、手作業による文法規則の作成は、さらに冗長で誤りが起きやすくなる。
【００１１】
ある種の音声認識エンジンでは、いくつかの異なる文法ファイルをロードし、予め定められたシーケンスに従って、マッチングのための検索、すなわちこれらの文法ファイルでの一致を求める検索において、これらの文法ファイルを、階層すなわち検索シーケンスに配置することができる場合があるが、このような予め定められた階層は、認識が行われる実際のそれぞれの会話に最適ではないことがある。さらに、予め作成された文法規則は、すべての会話のコンテキストにおいて音声認識エンジンによる使用に最適になるように調整することはできない。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
したがって、本発明の目的は、上記の欠点を取り除くまたは緩和することである。
【課題を解決するための手段】
【００１３】
本発明の第１の態様では、テキストの出力を、発声された単語の音響信号表現から提供するための音声認識システムが提供される。このシステムは、部分的に認識された文を構文解析して、文のタイプ、および関連する認識された単語と認識されない音のグループ分けの順序付きリストを導くための自然言語処理装置を有する。文タイプは、関連する概念の順序付きリストを有する。このシステムはまた、認識されていない音のグループ分けのうち１つに対応する位置において、概念の順序付きリスト内の各概念を複数の関係する単語に拡張するための文法規則生成器と、音響信号をテキスト出力に変換するための音声認識エンジンとを有する。部分的に認識された文は、音響信号に対応している。音声認識エンジンは、前記認識されていない音のグループ分けの１つを解決するために、前記複数の関係する単語に作用的に連結されている。
【００１４】
本発明の第２の態様では、発声された単語の音響信号表現の認識精度を改善するためのシステムが提供される。このシステムは、テキスト形式の文を構文解析してキーワードの順序付きリストを導くための自然言語処理装置と、前記順序付きリストの各キーワードを、複数の関係する単語に拡張して、前記キーワードの順序付きリストから文法規則を得るための文法規則生成器とを有する。音響信号は、音声認識エンジンによってテキスト出力に変換される。音声認識エンジンは、音響信号における認識されていない音のグループ分けを解決し、対応する発声された単語のテキスト出力を導くための文法規則に作用的に連結されている。
【００１５】
本発明のこの態様の一特徴において、システムは、概念からキーワードへのマッピングを準備するためのエディタを含み、複数の関係する単語への各キーワードの拡張は、対応する概念からキーワードへのマッピングを使用して、各キーワードを概念とマッチングすること、および、概念をキーワードで置き換えることに対応する。本発明の他の特徴においては、文法規則は、それに割り当てられるコンテキスト指定を有する。本発明のさらに他の態様では、システムは、音声の会話のコンテキストを決定する動作が可能であり、音声認識エンジンは、コンテキスト指定が会話コンテキストと一致する場合、文法規則を選択する動作が可能である。
【００１６】
本発明の他の態様では、音声認識エンジンによって使用するための文法規則を生成する方法が提供される。この方法は、自然言語処理装置を使用して、サンプル文を構文解析してキーワードの順序付きリストを導くステップと、概念からキーワードへのマッピングを使用して、順序付きリストの各キーワードを概念とマッチングするステップと、概念からキーワードへのマッピングを使用して、各概念をキーワードのリストで置き換えることにより、順序付きリストから文法規則を作成するステップとを含む。
【００１７】
本発明のこの態様の一特徴において、方法は、コンテキスト指定を文法規則に割り当てるステップを含むことができる。概念からキーワードへのマッピングは、コンテキスト属性をさらに有することができ、文法規則に割り当てられたコンテキスト指定は、コンテキスト属性に対応する。本発明のこの態様の他の特徴においては、方法は、複数の概念からキーワードへのマッピングを準備するステップを含むことができる。
【００１８】
本発明の他の態様では、概念からキーワードへのマッピング、および文タイプを使用して、部分的に認識された音声において、認識されていない音グループを解決するための音声認識方法が提供される。各文タイプは、複数の関連する文法規則を有する。文法規則は、概念として表現される。この方法は、自然言語処理装置を使用して、部分的に認識された音声を構文解析して、所定の文タイプ、および関連する認識された単語と認識されていない音のグループの順序付きリストを導くステップと、複数の文法規則からの文タイプに関連する文法規則のリストを選択するステップであって、リストの各文法規則は、複数の構成概念を有し、各構成概念は、認識された単語と認識されていない音のグループのうち一方に対応するステップと、認識されていない音グループごとに、すべての選択された文法規則における対応する構成概念を、１つの概念リストにマージするステップと、概念からキーワードへのマッピングを使用して、マージされた概念のリストを拡張して候補単語のリストを作成するステップと、候補単語のリストを使用して、各認識されていない音グループを解決するステップとを含む。
【００１９】
本発明のこの態様の一特徴において、方法は、拡張するステップに先立ち、複数の概念からキーワードへのマッピングを準備するステップを含むことができる。本発明のこの態様の他の特徴において、文法規則のリストを選択するステップは、部分的に認識された音声を複数の文法規則のそれぞれと比較するステップと、部分的に認識された音声と一致しないどの文法規則も破棄するステップとを含む。比較するステップは、文タイプを比較することを含むことができ、破棄するステップは、部分的に認識された音声と同じ文タイプを有していない文法規則を破棄することを含むことができる。さらに、比較するステップは、部分的に認識された音声を、選択された各文法規則の対応する構成概念と比較することを含むことができ、破棄するステップは、部分的に認識された音声におけるどの認識された単語にも一致しない文法規則を破棄することを含むことができる。
【００２０】
本発明のこの態様の他の特徴において、方法は、部分的に認識された音声の会話コンテキストを決定するステップを含むことができ、選択された文法規則のそれぞれは、コンテキスト指定をさらに有し、比較するステップは、コンテキスト指定を会話コンテキストと比較することを含み、破棄するステップは、コンテキスト指定と一致する会話コンテキストを有していない文法規則を破棄することを含む。
【００２１】
本発明のさらに他の態様では、概念からキーワードへのマッピング、および文タイプを使用して、音声における認識されていない音グループを解決するための、音声認識エンジンによって使用するための動的文法ファイルを生成するための方法が提供される。各文タイプは、複数の関連した文法規則を有する。文法規則は、概念として表現される。この方法は、自然言語処理装置を使用して、部分的に認識された音声を構文解析して、所定の文タイプと、関連する認識された単語および認識されていない音グループの順序付きリストとを導くステップと、複数の文法規則から、文タイプに関連する文法規則のリストを選択するステップであって、リストの各文法規則は、複数の構成概念を有し、各構成概念は、認識された単語と認識されていない音グループのうち１つに対応するステップと、認識されていない音グループごとに、すべての選択された文法規則における対応する構成概念を、１つの概念リストにマージするステップと、概念からキーワードへのマッピングを使用して、マージされた概念のリストの各概念をキーワードのリストで置き換えることによって、順序付きリストから動的文法規則を生成するステップとを含む。
【００２２】
本発明のこの態様の一特徴において、方法は、コンテキスト指定を動的文法規則に割り当てるステップを含むことができる。他の特徴において、概念からキーワードへのマッピングは、コンテキスト属性を有し、動的文法規則に割り当てられたコンテキスト指定は、コンテキスト属性に対応する。さらに他の特徴において、方法は、複数の概念からキーワードへのマッピングを準備するステップを含むことができる。さらに、選択するステップは、部分的に認識された音声を、複数の文法規則のそれぞれと比較するステップと、部分的に認識された音声と一致しないどの文法規則も破棄するステップとを含むことができる。任意選択として、比較するステップは、文タイプを比較することを含み、破棄するステップは、部分的に認識された音声と同じ文タイプを有していない文法規則を破棄することを含むことができる。他の特徴において、比較するステップは、部分的に認識された音声を比較することを含み、破棄するステップは、部分的に認識された音声におけるどの認識された単語にも一致しない文法規則を破棄することを含む。
【００２３】
本発明のこの態様のさらに他の特徴において、方法は、部分的に認識された音声の会話コンテキストを決定するステップを含み、選択された各文法規則は、コンテキスト指定をさらに有し、比較するステップは、コンテキスト指定を会話コンテキストと比較することを含み、破棄するステップは、コンテキスト指定と一致する会話コンテキストを有していない文法規則を破棄することを含む。
【００２４】
本発明の他の態様では、音声認識の一方法が提供される。この方法は、複数の文法規則を準備するステップであって、複数の文法規則のそれぞれは、それぞれに割り当てられたコンテキスト指定を有するステップと、音声認識エンジンによって認識されている音声の会話コンテキストを決定するステップと、コンテキスト履歴に会話コンテキストを記録するステップと、会話コンテキストが、コンテキスト指定のうちの１つと対応する場合、コンテキスト履歴の機能として検索シーケンスでコンテキスト指定に順位を割り当てるステップと、検索シーケンスに従って複数の文法規則を検索するように音声認識エンジンに指示するステップとを含む。
【００２５】
本発明のこの態様の一特徴において、順位は、コンテキスト履歴において会話コンテキストの出現がどの程度最近であるかということと相関関係にある。他の特徴において、順位は、コンテキスト履歴において会話コンテキストが出現する頻度と相関関係にある。さらに他の特徴において、順位は、コンテキスト履歴において会話コンテキストが示される総時間と相関関係にある。
【００２６】
本発明の他の態様では、言語モデル生成器によって使用するためにコーパスを編纂する方法が提供される。この方法は、ユーザからのユーザ入力のテキストと、知識ベース・システムによって生成されたユーザ入力に対する応答を、ログ・ファイルに格納するステップと、ユーザと知識ベース・システムの間の会話のスレッドを抽出するステップであって、会話のスレッドは、ユーザ入力のリテラル・テキスト、およびシステム応答を含むステップと、コーパスに会話のスレッドを追加するステップとを含む。
【００２７】
本発明のこの態様の一特徴において、方法は、音声認識エンジンを使用して、ユーザ入力を音声として認識するステップを含むことができ、格納するステップは、ユーザの認識された音声のテキストを格納することを含む。他の特徴において、システム応答は、予めプログラムされた応答のデータベースから抽出される。さらに他の特徴において、方法は、複数の予めプログラムされた応答を準備するステップと、すべての予めプログラムされた応答をコーパスに追加するステップとを含むことができる。
【００２８】
本発明のさらに他の態様では、音声認識システムの認識精度を改善するための方法が提供される。この音声認識システムは、発声された単語の音響信号表現をテキスト出力に変換するための音声認識エンジンを有する。この方法は、第１の複数の概念を選択するステップと、第２の複数の概念からキーワードへのマッピングを準備するステップであって、前記第１の複数の概念の各概念は、少なくとも１つの概念からキーワードへのマッピングを有するステップと、第３の複数の文タイプを定義するステップであって、各文タイプは、概念の順序付きリストに関連付けられ、前記概念の順序付きリストは、前記第１の複数の概念から形成されるステップと、音響信号における認識されていない音のグループ分けを解決するために、前記第１の複数の概念と、前記第２の複数の概念からキーワードへのマッピングと、前記第３の複数の文タイプとを、前記関連する概念の順序付きリストと一緒に、音声認識システムに提供するステップとを含む。
【００２９】
本発明のこの態様の一特徴において、方法は、サンプル発話を入力するステップと、自然言語処理装置を使用して、前記サンプル発話を構文解析して、文タイプ、および関連する概念の順序付きリストを導くステップと、文法規則生成器を使用して、前記文タイプ、および前記関連する概念の順序付きリストから文法規則を生成するステップと、音響信号において認識されていない音のグループ分けを解決するために、前記文法規則を、音声認識エンジンに提供するステップとをさらに含む。
【００３０】
本発明のこの態様の一特徴において、方法は、複数のサンプル発話を入力するステップと、自然言語処理装置を使用して、前記サンプル発話のそれぞれを構文解析して、文タイプ、および関連する第２の概念の順序付きリストを導くステップと、文法規則生成器を使用して、前記文タイプ、および前記関連する第２の概念の順序付きリストから文法規則を生成するステップと、音響信号における認識されていない音のグループ分けを解決するために、前記複数の文法規則を音声認識エンジンに提供するステップとをさらに含む。さらに他の特徴において、方法は、部分的に認識された音響信号に対応するテキスト入力を、自然言語処理装置に提供するステップと、自然言語処理装置を使用して、前記テキスト入力を構文解析して、第２の文タイプ、および関連する認識された単語と認識されていない音のグループ分けの順序付きリストを導くステップと、前記複数の文法規則から第２の文タイプに関連する文法規則のリストを選択するステップであって、前記リストの各文法規則は、複数の構成概念を有するステップと、前記認識されていない音のグループ分けのうち１つに対応する位置にある前記構成概念のそれぞれを、複数の関係する単語に拡張するステップと、前記認識されていない音のグループ分けのうち１つを解決するために、前記複数の関係する単語を、音声認識エンジンに提供するステップとをさらに含むことができる。
【００３１】
他の諸態様において、本発明は、上述の態様の様々な組合せおよび一部を提供する。
【００３２】
限定ではなく説明のために、本発明の上述および他の態様を、添付の図面を参照してさらに詳細に述べる。
【発明を実施するための最良の形態】
【００３３】
以下の説明および記載の実施形態は、本発明の原理の具体的な実施形態の一例または複数の例を説明するために示されている。このような例は、それらの原理および本発明を限定するためではなく説明するために与えられている。以下の説明において、同様の部分は、明細書および図面を通して、それぞれ同じ参照番号で示されている。
【００３４】
本発明は、一般に、音声認識の分野に関する。より詳細には、本発明は、音声認識の精度を改善するためのシステムおよび方法に関する。一実施形態において、システムには、サンプル発話から文法規則を自動的に生成するためのモジュールが設けられる。文法規則は、予め選択された任意のコンテキストに対して作成することもできる。これらの文法規則は、認識精度を改善するための音声認識エンジンによって使用することができる。このシステムはまた、会話のコンテキストに合わせて調整される文法規則を動的に生成するためのモジュールが設けられる。動的に生成された１つまたは複数の文法規則は、部分的に認識された文においてさらに単語を識別する、すなわち部分的認識を「増幅する」ために、音声認識エンジンに提供することができる。このシステムはまた、会話の範囲に含まれるコンテキストを追跡し、マッチングのために検索される文法ファイルの階層を動的に配置するために使用することもできる。ユーザとシステムの間の会話すなわち対話は、選択的に分離することもでき、それにより、分離された会話のコレクションから、特定の知識領域に関連するコーパスを作成することができる。このように生成されたコーパスは、特定の知識領域に関連する言語モデルを作成または精緻化するために使用することができる。
【００３５】
図１は、システム１００が実装される例示的クライアント／サーバ構成を示す概略図である。点線の左側は、サーバ部分１１０である。点線の右側は、クライアント部分１１２である。システム１００は、この例示的構成では、サーバ部分１１０とクライアント部分１１２に分割されるが、サーバ部分およびクライアント部分の双方を同じハードウェア上に設けることもできることは認識されよう。これらは、同じマイクロプロセッサで実行することもできる。これらは、単一のソフトウェア・アプリケーションに統合することもできる。
【００３６】
システム１００は、ユーザとシステムの間の対話を可能にする。この構成では、クライアント１１２は、ユーザ・インターフェースを含む。ユーザから受け取った任意の入力、すなわち、発声された単語または音声の任意の音響信号表現は、クライアント１１２によって処理され、テキストに変換される。次いで、クライアント１１２は、変換されたテキストをサーバ１１０に送る。サーバ１１０は、変換されたテキストを処理し、事前に準備された適切な応答を選択する。次いで、サーバ１１０は、クライアント１１２に応答を送り、クライアント１１２は、音声形式、または従来の文字によるテキスト形式のいずれかでユーザに応答することができる。
【００３７】
サーバ１１０は、入出力装置および制御装置に加えて、自然言語処理装置（ＮＬＰ）１１４、動的文法規則生成器１１６、推論および応答モジュール１１８、ログ・アナライザ１２０、およびサーバ１１０にアクセス可能なサーバ・データベース１２２を有する。これらの各コンポーネントは、マイクロプロセッサ（図示せず）上の単一のプロセスに相当することも、サーバ１１０を実装するソフトウェア・アプリケーションのモジュールに相当することもある。これらのプロセスまたはモジュールはそれぞれ、単一のプロセッサで実行することも、いくつかのプロセッサにわたり分散することもできる。これらは、ローカルの単一の記憶媒体に存在することも、サーバ１１０の中央制御モジュールにアクセス可能な異なる記憶媒体に別々に格納することもできる。
【００３８】
後で詳細に述べるように、サーバＮＬＰ１１４は、クライアント１１２から受け取る任意のテキスト入力を処理する。サーバＮＬＰ１１４は、このテキスト入力を関連する概念リストにより構文解析して、対話行為（ｄｉａｌｏｇｕｅ  ａｃｔ）を導くことにより処理を行う。対話行為とそれに関連する概念リストの組合わせは、「トリガ」、シグネチャ、または「イベント」と呼ばれている。各トリガは、少なくとも１つの応答に関連する。特定のアプリケーションに既知のすべてのトリガと、それらに関連する応答は、サーバ・データベース１２２に格納することができる。データベース１２２において一致するトリガが発見されると、推論および応答モジュール１１８は、そのトリガに基づいて応答を識別する。識別された応答は、データベース１２２から受け取られてクライアント１１２に送られる。
【００３９】
ここでは、対話行為とは、入力の文タイプのことを指す。例えば、文「Ｉ  ｌｉｋｅ  ｂｌｕｅ」は、対話行為ＳＴＡＴＥＭＥＮＴ−ＤＥＳＩＲＥによって表すことができ、一方、文「Ｉｓ  ｉｔ  ｒｅｄ」は、対話行為ＱＵＥＳＴＩＯＮ−ＩＮＦＯＲＭＡＴＩＯＮによって表すことができる。例えば、ＱＵＥＳＴＩＯＮ−ＩＤＥＮＴＩＴＩＹ、ＱＵＥＳＴＩＯＮ−ＬＯＣＡＴＩＯＮ、ＳＴＡＴＥＭＥＮＴ  ＡＳＳＥＲＴＩＯＮなど様々な対話行為を、必要に応じて定義することもできる。
【００４０】
対話行為は、サーバＮＬＰ１１４において予め定義されることが好ましい。予め定義された対話行為により、各対話に関係する文がどのように構成されるかについての知識または情報が、サーバＮＬＰ１１４に提供される。サーバＮＬＰ１１４が入力文を処理するときに、対話行為が定義されており、それがサーバＮＬＰ１１４にアクセス可能であるならば、このような対話行為は、システム１００の他の部分、例えばクライアント部分１１２において定義されていても、他の時間に定義されていてもよいことは理解されよう。
【００４１】
概念とは、入力文におけるキーワードから得られた単語のことを表している。好ましくは、各概念とは、システム１００の設計者によって定義され得るような、システムの特定のアプリケーションにおいて同じ概念を表現するまたは等価と見なされるキーワードのグループのことを指す。つまり、各概念は、すべて同じ概念に関係するキーワードまたはすべて等価と見なされるキーワードのグループにマップされる。例えば、文「Ｉ  ｌｉｋｅ  ｂｌｕｅ」が構文解析され、ＰＥＲＳＯＮ、ＤＥＳＩＲＥ、およびＣＯＬＯＲの３つの概念に分けられる。概念ＰＥＲＳＯＮは、単語「Ｉ」、「ｗｅ」、「ｙｏｕ」、「ｈｅ」、「ｓｈｅ」、「ｔｈｅｙ」、および「ｉｔ」を含むことができる。概念ＤＥＳＩＲＥは、単語「ｌｉｋｅ」、「ｗａｎｔ」、「ｐｒｅｆｅｒ」、および「ｌｏｖｅ」を含むことができる。対話行為と同様に、これらの概念ならびにキーワードへのマッピングをどのように定義するかについては、コンテキストまたは知識領域、あるいはシステム１００のアプリケーションの分野などの必要に応じて決定することができる。例えば、ＰＥＲＳＯＮは、会社組織を論じるとき、「ＣＥＯ」、「ｃｈａｉｒｍａｎ」、および「ｐｒｅｓｉｄｅｎｔ」を含み、一方、公共交通機関を論じるとき、ＰＥＲＳＯＮは、「ｄｒｉｖｅｒ」、「ｓｔａｔｉｏｎ  ｃｏｌｌｅｃｔｏｒ」、および「ｐａｓｓｅｎｇｅｒ」を含むことができる。
【００４２】
いくつかの特定の概念については、対話行為の基礎部分と見なすことができる。例えば、概念ＤＥＳＩＲＥは、対話行為ＳＴＡＴＥＭＥＮＴ−ＤＥＳＩＲＥの基礎となっていると見なすことができる。したがって、概念ＤＥＳＩＲＥは、対話行為を定義するとき、その対話行為に組み込まれ得る。ここでは、対話行為により、概念を表しているので、概念リストは、ＤＥＳＩＲＥを含む必要はない。したがって、対応するトリガは、この概念を含まない。システムが、次に説明するように入力文に基づいてトリガの一致を求める検索を行う場合、マッチングされる概念リストは、より短くなる。
【００４３】
上述のように、各トリガは、少なくとも１つの応答と関連する。あるトリガについての１つの文のすべての可能な構成は、互いに等価であると見なされる。トリガおよびそれに関連する応答を準備する方法については、後で図２を参照してより詳細に述べる。サーバ１１０は、ユーザ入力を受け取った後、入力をイベント・キューに入れてキューの先頭にイベントが到達したときに入力を処理することができ、また、直ちに入力を処理することもできる。推論および応答モジュール１１８は、ユーザ入力を分析し、サーバ・データベース１２２に格納されたトリガのコレクションから一致するトリガを発見しようと試みる。一致が発見された場合、推論および応答モジュール１１８は、サーバ・データベース１２２から、すべての対応する応答を見つける。１つの応答だけが存在する場合、この応答は、クライアント１１２に送られる。複数の応答が発見された場合、所定のアルゴリズムに基づいて１つの応答を選択することができる。この所定のアルゴリズムは、複数の応答から１つの応答を単にランダムに選択するアルゴリズムとすることができる。あるいは、より高度なアルゴリズムを使用することもできる。例えば、同じユーザ入力に応答し、ユーザにある応答が与えられている場合に、別の応答が選択され得る。あるいは、対話、ユーザ、またはシステムに関係する他のある種の条件、例えば、システム１００によって検出されるユーザの周囲の気温に基づいて、応答を選択することもできる。これらの条件およびアルゴリズムは、推論および応答モジュール１１８内にプログラムされても、システム１００が特定のアプリケーションに対して準備されたときに構成されてもよい。
【００４４】
動的文法規則生成器１１６は、部分的に認識された文に基づいて文法規則を動的に生成する。動的文法規則は、部分的認識を「増幅する」、すなわち、認識されていない単語を完全に解決するために、クライアント１１２に送られる。文法規則の動的生成のプロセス、および動的文法規則の使用については、図４および５に関連して、より完全に説明する。
【００４５】
システム１００は、ログ・アナライザ１２０を備えている。ログ・アナライザ１２０の用途および機能は、システム・ログ・ファイルから、ユーザとシステム１００の間の対話を完全で分離された対話として抽出することである。後で詳細に述べるように、システム・ログから分離された対話は、音声認識の精度を改善するための言語モデルを作成または精緻化するために使用することができる。
【００４６】
クライアント部分１１２は、ユーザと相互作用をするためのソフトウェア・アプリケーションをホストする。クライアント・ソフトウェア・アプリケーション、または（それと交換可能な用語として以下では使用する）クライアント１１２は、ユーザと相互作用するためのユーザ・インターフェースを含む。ユーザ・インターフェースは、対話型のウェブページ、携帯電話、車に設置されたナビゲーション・システムとしてもよい。ユーザ・インターフェースはまた、パーソナル・コンピュータ、またはコンピュータ・ワークステーションにインストールされたソフトウェア・アプリケーションとすることもできる。クライアント・ソフトウェア・アプリケーションは、ローカルプロセッサで実行しても、サーバ・ソフトウェア・アプリケーションと同じプロセッサで実行してもよい。クライアント・ソフトウェア・アプリケーションは、ローカルで格納しても、あるいは、エージェント・ソフトウェア・アプリケーションを実行しているプロセッサにアクセス可能なリモートの記憶域に格納してもよい。
【００４７】
クライアント１１２は、音声認識エンジン１２６を含む。音声認識エンジン１２６は、ユーザからの音声入力を受け入れ、音声またはユーザの発話をテキストに変換する。音声認識エンジン１２６は、サード・パーティの供給業者から提供された任意の汎用の音声認識エンジン、あるいは、システム１００のアプリケーションに合わせて調整された音声認識エンジンとすることができる。
【００４８】
音声認識エンジン１２６は、ディクテーション・モードを使用して音声認識を実行することができ、言語モデル技術、または文法規則を使用して、その結果を増幅することもできる。音声認識エンジン１２６は、別個のディクテーション・モジュール１２８、言語モデル・モジュール１３０、および文法規則１３２を有することができる。好都合なことに、クライアント１１２は、クライアント１１２にアクセス可能なそれ自体の記憶媒体１３４を有することもできる。クライアント・ストレージ１３４は、辞書ファイル１３６、言語モデル・ファイル１３８、および、予め作成された文法ファイル１４０などのデータ・ファイルを格納するために使用することができる。文法ファイル１４０は、文法規則を含み、この文法規則は、例えば、後で述べるように、システムによって提供されるツールキットを使用して、準備段階で生成される。
【００４９】
文法規則１４０はまた、個別の文法規則に関連する任意のコンテキスト指定を含むことができる。コンテキスト指定は、文法規則が、そのコンテキストに対して作成された場合、あるいはそのコンテキストに適切な場合に、その文法規則に割り当てることができる。このような文法ファイルは、予め定められたカテゴリ階層に基づきコンテキスト指定を使用して、階層的に編成することもできる。例えば、「ｓｐｏｒｔｓ」、「ｂａｌｌｇａｍｅｓ」、「ｓｏｃｃｅｒ」、「ｂａｓｅｂａｌｌ」、「ｃｈｅｓｓ」、「ｓｗｉｍｍｉｎｇ」に関連するそれぞれ異なる文法ファイルにおいて、別個の文法規則を作成し編成することができる。これらの文法規則は、階層的に編成することができる。
【００５０】
【数１】
2006106748.tif 000003
【００５１】
文法ファイルが、コンテキストによってグループ分けされる場合、音声認識エンジン１２６は、認識時間を減少させるために、最適化された順序で、文法ファイルを検索することが好ましい。前述のように、異なる文法規則は、異なるコンテキストに割り当てることができ、文法規則は、それらの指定されたコンテキストに基づき、まとめてグループ化し、それぞれ異なる文法ファイルに格納することができる。音声認識エンジン１２６は、すべての文法ファイルを検索する必要はなく、代わりに、コンテキストに関連した文法規則の一部を検索し、やはり正しい一致を発見することが可能であり得る。例えば、サッカーについての話し合いにおいて、文法ファイルにおける一致を求める検索は、「ｓｏｃｃｅｒ」から始まり、次いで「ｂａｌｌ  ｇａｍｅｓ」、その後に「ｓｐｏｒｔｓ」と続く。あるいは、検索は、「ｓｐｏｒｔｓ」から開始し、次いで「ｂａｌｌ  ｇａｍｅｓ」、最後に「ｓｏｃｃｅｒ」について行われることもあり得る。各コンテキストがどのように順位付けされるかにより、検索シーケンスが決定される。検索シーケンスは、多くの方法によって固定することが可能であり、例えば、オーダメイドのシステムに組み込む、コンテンツ設計者により固定する、あるいはシステム管理者によって設定することができることは理解されよう。後述するように、検索シーケンスは、会話のセッションに応じて動的に決定およびカスタマイズを行うこともできる。
【００５２】
音声認識エンジン１２６によって生成されたどの結果も、サーバ１１０に送られる。完全に認識された発話は、サーバ１１０にテキスト入力として送られ、これに応じて、サーバ１１０、つまり、その推論および応答モジュール１１８により応答を返すことができる。部分的に認識された発話は、サーバ１１０に送られ、これにより、部分的に認識された発話を増幅するために音声認識エンジンで使用するための動的文法規則を、サーバの動的文法規則生成器１１６により生成することができる。好都合なことに、クライアント１１２は、サーバ１１０から受け取ったテキスト形式の任意の応答を音声に変換するテキスト音声変換エンジン１４２を備えることができる。これにより、システム１００とユーザの間の情報伝達を支援することができる。
【００５３】
図２は、システム１００により使用するための文法ファイルおよび他のデータ・ファイルを準備するための、システム１００のツールキットの機能コンポーネントを概略的に示している。好都合なことに、ツールキット１４４は、ツールキットＮＬＰ１４６、エージェント・エディタ１４８、ツールキット文法規則生成器１５０、ならびに、ツールキット１４４にアクセス可能なツールキット・データベース１５２を含む。
【００５４】
ツールキット１４４は、特定のアプリケーションに対してシステム１００を調整するために、システム管理者またはコンテンツ作成者によって使用することができる。そのアプリケーションは、公共交通機関、特定のスポーツ、または、その株式が投資家の関心を集めている株式会社に精通した自動情報システムであり得る。この文脈では、アプリケーションは、「エージェント」と呼ばれる。つまり、エージェントとは、システムの特定のアプリケーションであり、特定分野に関する知識を保有し、予め定義された方法でユーザの入力に応答する。
【００５５】
エージェント・エディタ１４８は、エージェントを定義するために使用される。コンテンツ作成者は、エージェント・エディタ１４８を用いて、予期されるユーザからの入力を入力する。エージェント・エディタ１４８は、クライアント１１２から受け取った入力に対してシステム１００がどのように応答するかを定義または設定するために使用することもできる。エージェントのこの設定には、予期されるユーザからのクエリまたは入力、サンプル発話または文、ならびに、任意の特定のユーザ入力に関連する１つまたは複数の応答を定義することが含まれる。例えば、スポーツの知識に精通したエージェントを作成する場合、コンテンツ作成者は、質問「Ｗｈａｔ  ｉｓ  ｔｈｅ  ｓｃｏｒｅ？」を予期することができる。エージェントは、例えば、地元のチームによる昨夜のゲーム、あるいはワールドカップ決勝戦の最終試合のスコアなど特定のゲームの具体的なスコアに応答することができる。予期される質問、および対応する応答は共に、コンテンツ作成者が、例えばエージェント・エディタ１４８を使用することにより入力することができる。
【００５６】
同じ質問に対する適切な応答は、異なるコンテキストでは異なるものとなる可能性がある。例えば、地元チームが昨夜に行ったゲームの最終スコアは、地元チームの成績について話しているコンテキストにおける質問「Ｗｈａｔ  ｉｓ  ｔｈｅ  ｓｃｏｒｅ？」に対しては、適切な応答になり得るが、ワールドカップ決勝戦のコンテキストの場合には適切な応答ではない。したがって、ユーザの入力に対する適切な応答は、コンテキストに応じて異なる情報を必要とする場合がある。コンテキスト指定は、適切な応答がコンテキストに基づいて選択することができるように、それぞれの予期されるユーザ入力およびそれに対応する応答に割り当てられることが好ましい。コンテキスト指定は、エージェント・エディタ１４８を使用して入力することができる。
【００５７】
ツールキットＮＬＰ１４６は、予期されるそれぞれのユーザ入力を、構文解析し、すなわち分析して、各対話行為ならびにそれに関連する概念リストに分割する。先に述べたように、対話行為は、文のタイプに対する参照である。サーバＮＬＰ１１４についての同様の対話行為は、ツールキットＮＬＰ１４６において予め定義されることが好ましい。サーバＮＬＰ１１４とツールキットＮＬＰ１４６の両方について、同じ対話行為のセットが予め定義されることが好ましい。
【００５８】
各概念は、コンテンツ作成者によって定義されるような同じ概念を表現するキーワードまたは等価と見なされるキーワードのグループに対する参照であるか、あるいはコンテンツ・エディタによる概念に少なくとも関係する参照である。キーワードから概念へのマッピングは、作成される知識コンテンツの必要性に基づき、エージェント・エディタ１４８を使用して、コンテンツ作成者によって入力すなわち定義が行われる。
【００５９】
例えば、ツールキットＮＬＰ１４６は、文「Ｉ  ｌｉｋｅ  ｂｌｕｅ」を構文解析して対話行為ＳＴＡＴＥＭＥＮＴ−ＤＥＳＩＲＥ、ならびにＰＥＲＳＯＮ、ＤＥＳＩＲＥ、およびＣＯＬＯＲの３つの概念からなるリストを導く。好ましくは、予め定義された対話行為ＳＴＡＴＥＭＥＮＴ−ＤＥＳＩＲＥは、この対話行為に組み込まれた概念ＤＥＳＩＲＥを有し、したがって、リストは、残りの２つの概念のみからなるリストとなる。コンテンツ作成者は、エージェント・エディタ１４８を使用して、例えば、キーワード「Ｉ」、「ｗｅ」、「ｙｏｕ」、「ｈｅ」、「ｓｈｅ」、「ｔｈｅｙ」、「ｉｔ」を、概念ＰＥＲＳＯＮに含めることができる。他の例では、質問「Ｗｈａｔ  ｉｓ  ｔｈｅ  ｓｃｏｒｅ？」は、構文解析され、概念ＳＣＯＲＥを含む対話行為ＱＵＥＳＴＩＯＮ−ＩＮＦＯＲＭＡＴＩＯＮが導かれる。スポーツについての話合いにおいて、概念ＳＣＯＲＥは、キーワード「ＳＣＯＲＥ」および「ｒｅｓｕｌｔ」を含むことができる。
【００６０】
対話行為および概念リストに基づいて、ツールキット文法規則生成器１５０を使用して、サンプル発話から文法規則を生成することができる。このように作成された文法規則は、次いで、同様の音のグループ分けとマッチングするためのパターン・マッチング・ルールとして、音声認識エンジン１２６により使用される。文法規則の生成については、図３を参照して全詳細を述べる。
【００６１】
応答に対応しているすべてのトリガのコレクション、キーワードから概念へのマッピング、および文法規則は、エージェントの知識領域を決定する。好都合なことに、このように定義されたエージェントは、サーバに対して「公開する（ｐｕｂｌｉｓｈ）」ことができ、すなわち、トリガ、応答、キーワードから概念へのマッピングは、サーバ・データベース１２２に格納することができる。文法規則は、クライアント側の文法ファイル１４０にローカルで保存することができる。それぞれ異なる文法規則に異なるコンテキストが割り当てられた場合、これらの文法規則を、コンテキスト指定によってグループ化し、それぞれコンテキスト指定に関連する異なる文法ファイルに格納することができる。キーワードから概念へのマッピングは、同様に、データベースおよびツールキット・データベース１５２などのクライアント・ストレージ１３４に保存される別個のコピーを有することができる。エージェントに関係するすべての情報は、サーバ１１０、クライアント１１２、およびツールキット１４４にアクセス可能な単一の記憶媒体に格納することもできることは認識されよう。
【００６２】
サーバＮＬＰ１１４についての対話行為と同様に、ツールキットＮＬＰ１４６がサンプル文を処理するときに、対話行為が定義されておりツールキットＮＬＰ１４６にアクセス可能であるならば、このような対話行為は、他の時間に定義されてもよいことは理解されよう。さらに、ある対話行為の基礎となっていると見なされる概念は、概念リストに入れずに、対話行為に組み込むことができる。さらに、サーバ・データベース１２２に保存された対話行為は、クライアント１３４に保存された対話行為と同一であり、サーバ・データベース１２２に保存されたキーワードから概念へのマッピングもまた、クライアント１３４に保存されたキーワードから概念へのマッピングと同一であることが好ましい。
【００６３】
図３を参照して、予期されるユーザ入力またはサンプル発話から文法規則を生成するプロセスを説明する。ステップ３１０で、コンテンツ作成者は、エージェント・エディタ１４８を使用して、サンプル発話を提供する。ステップ３１２で、サンプル発話は、その文を構文解析して対話行為とそれに関連する構成「概念」を導くために、ツールキットＮＬＰ１４６によって処理される。サンプル発話は、例えば、
Ｉ  ｌｉｋｅ  ｂｌｕｅ．
とすることができる。この事例では、対話行為は、ＳＴＡＴＥＭＥＮＴ−ＤＥＳＩＲＥであり、概念リストは、下記の構成キーワードを含むことができる。
Ｉ，ｌｉｋｅ，ｂｌｕｅ
【００６４】
これらの構成キーワードはそれぞれ、「概念」に対応する。ステップ３１４で、ツールキット文法規則生成器１５０は、コンセプトからキーワードへのマッピングを、それらの構成キーワードごとに、ツールキット・データベース１５２から受け取る。これらのマッピングは、まず各構成キーワードを概念とマッチングするために使用される。キーワードから概念へのマッピングがあるため、各構成キーワードもまた、以下のように構成「概念」として参照される。同じ概念からキーワードへのマッピングは、次いで、一致した概念をキーワードのリストにマップするために使用される。結果として、各構成キーワードは、対応するキーワードのリストに拡張される（ステップ３１６）。したがって、文法規則に対応したキーワード・リストの順序付きリストが得られる（ステップ３１８）。概念からキーワードへのマッピングが、特定のコンテキストに対して定義された場合、得られた文法規則に、コンテキストに対応するコンテキスト指定を割り当てることができる。汎用マッピングが使用されるが、文法規則は、例えばスポーツなど特定のコンテキストに一般的に適用可能な場合、この文法規則にも、適切なコンテキストに対応するコンテキスト指定が割り当てることができる。
【００６５】
例えば、キーワード「Ｉ」は、概念ＰＥＲＳＯＮにマップすることができる。コンテンツ作成者は、ＰＥＲＳＯＮが、キーワード「Ｉ」、「ｗｅ」、「ｙｏｕ」、「ｈｅ」、「ｓｈｅ」、「ｔｈｅｙ」、および「ｉｔ」を含むように定義することができ、つまり、ＰＥＲＳＯＮは、これらのキーワードと等価と見なされる。言い換えれば、コンテンツ作成者は、概念ＰＥＲＳＯＮを、キーワードのリスト「Ｉ」、「ｗｅ」、「ｙｏｕ」、「ｈｅ」、「ｓｈｅ」、「ｔｈｅｙ」、および「ｉｔ」にマップする。したがって、ツールキット文法規則生成器１５０は、キーワードＩを、キーワード・リスト「Ｉ｜ｗｅ｜ｙｏｕ｜ｈｅ｜ｓｈｅ｜ｔｈｅｙ｜ｉｔ」にマップまたは拡張する。同様に、キーワード「ｌｉｋｅ」は、キーワード「ｌｉｋｅ」、「ｗａｎｔ」、「ｐｒｅｆｅｒ」、および「ｌｏｖｅ」にマップされる、概念ＤＥＳＩＲＥに一致することができる。その結果、ツールキット文法規則生成器１５０は、キーワード「ｌｉｋｅ」を、キーワードのリスト「ｌｉｋｅ｜ｗａｎｔ｜ｐｒｅｆｅｒ｜ｌｏｖｅ」にマップまたは拡張する。同様に、ツールキット文法規則生成器１５０は、キーワード「ｂｌｕｅ」を、キーワード・リスト「ｒｅｄ｜ｂｌｕｅ｜ｙｅｌｌｏｗ｜ｇｒｅｅｎ」に対応する概念ＣＯＬＯＲと一致させることができる。期待されるユーザ入力またはサンプル発話の各構成キーワードは、それに対応するキーワードのリストにマップされる。各概念がそれに対応するキーワード・リストで置き換えられると、文法規則が得られる。したがって、サンプル発話：
Ｉ  ｌｉｋｅ  ｂｌｕｅ．
に対する文法規則は、以下の形式を有することができる。
「Ｉ｜ｗｅ｜ｙｏｕ｜ｈｅ｜ｓｈｅ｜ｔｈｅｙ｜ｉｔ」  「ｌｉｋｅ｜ｗａｎｔ｜ｐｒｅｆｅｒ｜ｌｏｖｅ」  「ｒｅｄ｜ｂｌｕｅ｜ｙｅｌｌｏｗ｜ｇｒｅｅｎ」
【００６６】
このように生成された文法規則により、入力されている入力文のタイプの非常により幅広い表現が提供される。「概念」レベルでの範囲の拡大が行われる。各「概念」は、必要とするまたは望ましい数のキーワードと関連付けることができるため、生成される文法規則は、可能な限りまたは所望の範囲で広い範囲にすることができる。さらに、「概念」レベルで範囲の拡張が行われ、文法規則の生成は自動であるため、生成される文法規則は、手作業で作成されたものより整合的でより広範囲になる傾向がある。さらに、拡張は「概念」レベルのため、概念から複雑な文法規則の組立てはコンピュータにより実行されるので、複雑な文法規則を作成する際に人々のやる気を削がずに済む傾向がある。
【００６７】
前述のように、文法規則は、コンテンツ作成者が特定のアプリケーションまたはエージェントに合わせてシステムを調整したとき、初期段階において生成され得る。音声認識エンジン１２６は、そのディクテーション音声認識を完全にするために、文法規則を使用することができる。
【００６８】
図４を参照すると、文法規則を動的に生成するプロセスが示されている。動的文法規則は、部分的に認識された発話を解決し認識精度を改善するために音声認識エンジン１２６によって使用することができる。
【００６９】
音声認識エンジン１２６は、文または発話を部分的にのみ認識することができた場合、部分的に認識された文または発話は、サーバ１１０に送られる（ステップ４１０）。部分的に認識された文の文構造は、サーバＮＬＰ１１４によって分析すなわち構文解析されて、その対話行為のタイプを決定し可能な場合は関連する概念リストが決定される（ステップ４１２）。特に、部分的に認識された文は、部分的に認識された文における概念の数を識別するために、サーバＮＬＰ１１４によって構文解析される。さらに、このステップの間に、認識されていない単語の位置も識別される。しかし、認識されていない単語のため、すべての概念を解決することはできない。認識されていない単語のそれぞれには、部分的に認識されている文における位置を示すために位置インデックスと共にプレースホルダが割り当てられる。例えば、次の質問の終わりの２つの単語は認識されていない。
Ｗｈａｔ  ｗａｓ  ＿  ＿
この質問は、ＱＵＥＳＴＩＯＮ−ＩＮＦＯＲＭＡＴＩＯＮタイプの対話行為として認識することができる。４つの概念が識別されるが、その終わりの２つの概念は認識されていない。上記で空白「＿」として表される第１の認識されていない単語は、文において３番目の単語であることを示す位置インデックス「３」を伴いプレースホルダに配置される。同様に空白「＿」として表される第２の認識されていない単語は、文において４番目の単語であることを示す位置インデックス「４」を伴いプレースホルダに配置される。
【００７０】
次に、ステップ４１４で、動的文法規則生成器１１６が、このパターンに一致するトリガをサーバ・データベース１２２で検索する。このステップにおいて、同じ対話処置タイプおよび同じ文構造を有するトリガが一致する。例えば、この事例では、対話行為はＱＵＥＳＴＩＯＮ−ＩＮＦＯＲＭＡＴＩＯＮである。その文は、４つの概念を含むと決定され得る。したがって、サーバ・データベース１２２は、タイプＱＵＥＳＴＩＯＮ−ＩＮＦＯＲＭＡＴＩＯＮの４つの概念を含むすべてのトリガを検索する。この検索により、関連する概念リストと一致する対話行為の候補のリストを作成することができる。すべての一致したトリガは、可能性のある候補となり得る。
【００７１】
先に述べたように、対話行為の基礎となっていると見なされるいくつかの特定の概念は、対話行為に組み込まれ、概念リストには含まれない。この例では、概念「ｗｈａｔ」および「ｉｓ」は、ＱＵＥＳＴＩＯＮ−ＩＮＦＯＲＭＡＴＩＯＮタイプ対話行為に対して基礎であると見なすことができ、したがって、これらの概念は、概念リストから抽出し、対話行為に組み込むことができる。したがって、この事例では、一致した対話行為のタイプは、２つだけのプレースホルダを有することができ、この２つは両方とも、認識されていない単語に対応する。
【００７２】
ステップ４１６で、部分的に認識された文と一致しないどのトリガも破棄できることが好ましい。例えば、「ｗｈｏ  ｉｓ  ｔｈｅ  ｐｉｔｃｈｅｒ」に対応するどの発話行為も、「ｗｈｏ  ｉｓ」が、認識された単語「ｗｈａｔ  ｗａｓ」に一致しないとして破棄される。
【００７３】
この事例では、入力文の認識されていない単語は、文の３番目および４番目であるので、第３の概念に対応する概念のリスト、および第４の概念に対応する概念のリストを抽出するために、残りのトリガが、処理される。部分的に認識された文の第１の空白を置き換えるために、第３の概念に対応するすべてのキーワードは、マージされて単一のキーワード・リストを形成し、部分的に認識された文の第２の空白を置き換えるために、第４の概念に対応するすべてのキーワードは、マージされて単一のキーワード・リストを形成する（ステップ４１８）。このように生成された動的文法規則は、以下のような形式を有する。
Ｗｈａｔ  ｗａｓ［ｆｉｒｓｔ  ｌｉｓｔ  ｏｆ  ｋｅｙｗｏｒｄｓ］［ｓｅｃｏｎｄ  ｌｉｓｔ  ｏｆ  ｋｅｙｗｏｒｄｓ］
これは、次のようになり得る。
Ｗｈａｔ  ｗａｓ［ｔｈｅ｜ｔｈａｔ｜．．．］［ｓｃｏｒｅ｜ｒｅｓｕｌｔ｜．．．｜ｔｉｍｅ｜ｓｔａｔｉｏｎ．．．］
【００７４】
文法規則は、認識されていない単語に対応する各プレースホルダに、多数の候補単語を含めることができる。文法規則のサイズは、マッチングされる候補をさらに減少させることにより、すなわち、関連がないと見込まれる候補を破棄することにより、さらに縮小することができることが好ましい。様々な技法を用いて、関連しないと見込まれる候補を破棄することができる。例えば、ステップ４１６で、同じコンテキストを有していないトリガを破棄することができる。サッカーについて話し合っているコンテキストにおいて、公共交通機関の鉄道の次の駅に関する知識は関連性が低い傾向にあり、「ｐｕｂｌｉｃ  ｔｒａｎｓｉｔ  ｓｙｓｔｅｍ」のコンテキスト指定を有するトリガは、増幅の精度に重大な影響を与えることなく破棄することができる。後述するように、システムは、現在の会話のコンテキストの履歴を維持している。あるいは、コンテキスト履歴に出現するいずれのコンテキストにも対応しないトリガを、破棄することができる。同様に、現在のコンテキストに無関係のコンテキストに関連する概念は、おそらく一致する単語を示すことがなく、破棄することができる。上述の例を使用して、やはり増幅の精度に重大な影響を与えることなく、「ｓｔａｔｉｏｎ」に関連する概念を破棄することができる。
【００７５】
動的に作成された文法規則の１つの用途は、部分的に認識された音声を増幅する、つまり、部分的に認識された音声における認識されていない音グループを完全に解決することである。図５を参照すると、図４に示したプロセスにおいて動的に生成された文法規則を利用している、音声認識増幅のプロセスのステップが示されている。
【００７６】
例えば、サッカーについて話し合われているとき、音声認識エンジン１２６は、下記のように部分的に文を認識することができるだけである。
Ｗｈａｔ  ｗａｓ  ＿  ＿
空白「＿」は、音声認識エンジン１２６によって認識されない単語を表す。システム１００は、増幅の要求としてこの部分的認識をサーバ１１０のイベント・キューに入れる。サーバ１１０が、イベント・キューにおいてこの要求に到達すると、その部分的に認識された文が、サーバ１１０またはサーバＮＬＰ１１４に提供される（ステップ５１０）。サーバＮＬＰ１１４は、部分的に認識された文を構文解析して、対話行為および関連する概念リストを導く。図４を参照して説明したステップに従って、動的文法生成生成器１１６が、動的文法規則を例えば下記の形式で生成する（ステップ５１２）。
Ｗｈａｔ  ｗａｓ［ｔｈｅ｜ｔｈａｔ｜．．．］［ｓｃｏｒｅ｜ｒｅｓｕｌｔ｜．．．｜ｔｉｍｅ．．．］
【００７７】
この動的文法規則は、クライアント１１２に転送される（ステップ５１４）。音声認識エンジン１２６は、動的文法規則を使用して、部分的に認識された文を再処理する、つまり、認識されていない音のグループ分けを候補単語の残りと比較することにより、部分的に認識された文を増幅することができる（ステップ５１６）。動的文法規則を異なるやり方で音声認識エンジンに渡すこともできることは認識されよう。クライアント１１２は、動的文法規則をその音声認識エンジン１２６によって使用するために、ローカル・ファイルとして保存することができる。サーバ１１０は、動的文法規則を、音声認識エンジン１２６がリモートからロードするテンポラリ文法ファイルとしてサーバ側に保存することもできる。あるいは、サーバ１１０は、動的文法規則をサーバ・メモリに単純に保持し、クライアント１１２側に常駐する音声認識エンジン１２６に、サーバ・メモリからそれを取り出すように指示することもできる。
【００７８】
動的文法規則が音声認識エンジン１２６に渡されたとき、音声認識エンジン１２６は、まず一致を探すために動的文法規則を検索することが好ましい。動的文法規則は、部分的に認識された音声から生成され、また、ユーザとシステムの間の現在の会話のコンテキストに基づいている。このように生成された動的文法規則は、会話のコンテキストに関連する予め生成されたすべての文法規則と比較してかなり限られた数の単語だけを含む傾向がある。最初に動的文法規則を検索することにより、音声認識時間が減少する傾向がある。
【００７９】
前述のように、文法ファイルの検索シーケンスは、ユーザとシステムの相互作用のセッションごとに、例えば、文法ファイルに割り当てられたコンテキストの階層に基づいて、予め決定することができる。しかし、予め決定されたシーケンスは、すべての会話に対して最適にはならないことがある。システム１００は、会話コンテキストに基づいて動的に検索シーケンスを生成して、認識時間および認識精度をさらに改善することができる。
【００８０】
好都合なことに、サーバ１１０は、会話中に追跡されたすべてのコンテキストの履歴を保持することができる。会話は、例えば、一般的な（ｇｅｎｅｒａｌ）話題から始まり、天気（ｗｅａｔｈｅｒ）、株式（ｓｔｏｃｋ）、スポーツ（ｓｐｏｒｔｓ）、野球（ｂａｓｅｂａｌｌ）へと次々に話題が切り替わり、続いて、サッカー（ｓｏｃｃｅｒ）について話し合われることがある。この場合、コンテキストの履歴の経路は、ｇｅｎｅｒａｌ−ｗｅａｔｈｅｒ−ｓｔｏｃｋ−ｓｐｏｒｔｓ−ｂａｓｅｂａｌｌ−ｓｏｃｃｅｒとなる。この経路に基づいて、すなわち以下の順序で、文法ファイルの新しい階層を確立することができる。
１．Ｓｏｃｃｅｒ
２．Ｂａｓｅｂａｌｌ
３．Ｓｐｏｒｔｓ
４．Ｓｔｏｃｋｓ
５．Ｗｅａｔｈｅｒ
６．Ｇｅｎｅｒａｌ
【００８１】
図６を参照すると、図１のシステムによって使用するための、文法規則の動的検索シーケンスを作成するプロセスが概略的に示されている。ユーザとシステムの間の各セッションにおいて、サーバ１１０は、会話のコンテキストの履歴を追跡する。推論および応答モジュール１１８は、ユーザ入力を受け取るたびに、その入力のコンテキストを識別する（ステップ６１０）。ユーザ入力が、その前の入力のコンテキストと異なるコンテキストを有する場合、サーバ１１０は、前のコンテキストを記録し（ステップ６１２）、コンテキスト履歴リストにこの新しいコンテキストを追加する。サーバ１１０はまた、順位を、このコンテキストに関連する文法ファイルに割り当てる（ステップ６１４）。このようにして、文法ファイルの新しいコンテキストに敏感な検索シーケンスを作成することができる（ステップ６１６）。文法規則は、この検索シーケンスに従って、最も高い順位の文法ファイルから始まり、最も低い順位の文法ファイルが検索されるまで、より低いランキング順位の文法ファイルへと検索される。
【００８２】
コンテキストに敏感な検索シーケンスは、様々なアルゴリズムに基づいて作成することができる。例えば、特定のコンテキストがどの程度最近に話し合われたかに応じて順位を単純に割り当てることができる。上述の例では、話し合いは、ｇｅｎｅｒａｌ、ｗｅａｔｈｅｒ、ｓｔｏｃｋ、ｓｐｏｒｔｓ、ｂａｓｅｂａｌｌ、ｓｏｃｃｅｒの順の経路に従っており、ｓｏｃｃｅｒが最も新しいコンテキストである。この検索シーケンスでは、まずサッカーに関連する文法ファイルを検索し、次いで、野球、スポーツ、株式、天気と続き、最後に一般の話題に関する文法ファイルを検索することができる。この階層または検索シーケンスは、会話が採り上げられる頻度、コンテキストに費やされる会話の時間の長さによってさらに修正することもできる。例えば、特定のコンテキストが、同じ会話中に、何回も採り上げられている場合、または、長い時間にわたり話し合われている場合、そのコンテキストは、最も新しいコンテキストでなくても、他のコンテキストまたは他の文法ファイルに先んじて検索が促されることがある。
【００８３】
この動的検索シーケンスは、音声認識エンジン１２６で使用するために、サーバ１１０によりクライアント１１２に渡される（ステップ６１８）。音声認識エンジン１２６は、音グループとの一致を得るために文法規則を検索するとき、動的検索シーケンスを使用する。動的に作成された階層は、ユーザとシステムの間の特定の会話に対し、より関連性があるという利点を有する。一致は、最も新しい会話のコンテキストにおいて、より発見される可能性が高くなり得ることは認識されよう。また、一致は、その会話のコンテキストのうちの１つにおいて、より発見される可能性が高い。しかし、会話に関係しないコンテキストにおいては発見される可能性が低い。動的に作成された検索シーケンスにより、認識時間および精度が改善される傾向がある。また、これにより、すべての文法規則についての検索階層を予め確立するときに、そうでなければ設計者が行う必要がある当て推量が軽減される。
【００８４】
さらに、先に述べたように、コンテキスト履歴はまた、動的文法規則を生成するために使用することもできる。前述のように、１つの用途は、コンテキスト履歴に基づいて、関連する可能性が低いと見込まれる候補を破棄することにより、候補の数を限ることである。他の用途は、マージされた単語リストにおける単語を順位付けすることである。先に述べたように、マージされた単語リストは、認識されていない各単語または音グループごとに作成される。マージされた単語リストは、概念からキーワードへのマッピングにおいてキーワードから抽出された単語を含む。マージされた単語リストにおける単語は、動的検索シーケンスに基づいて順位付けすることができる。したがって、動的文法規則が、認識されていない音のグループ分けを再処理するために音声認識エンジン１２６に渡されるとき、最初に、より可能性の高い候補単語が、あり得る一致を得るために検索される。
【００８５】
先に述べたように、音声認識の精度は、言語モデルと呼ばれる技術を使用してさらに改善することができる。言語モデルは、リテラル（ｌｉｔｅｒａｌ）における音のパターンのグループ分けに関する統計情報である。
【００８６】
「リテラル」は、ここでは、発声されたあるいは文字によるリテラル・テキストのことを指す。リテラルにより、関連するコーパスが提供される。コーパスは、「知識」の特定のコンテキストまたは領域についての言語モデルを作成または洗練するために言語モデル生成器に提供される。関連する統計情報を生成するために、大量のリテラルまたは関連するコーパスを入力することは一般的に退屈である。このシステムでは、リテラルを編纂するためのモジュールが提供される。本明細書に記載の実施形態では、リテラルは、３つの部分、すなわち、サンプル発話、エージェントの応答、およびユーザの入力を含む。
【００８７】
サンプル発話（およびエージェント応答）はリテラルに直接追加することができるが、好都合なことに、システム１００は、ユーザ入力を抽出するためのログ・アナライザ１２０を提供している。好都合なことに、システム１００は、すべてのイベントのログを追跡し、ログ・ファイルにシステム・ログを保存することができる。これらのシステム・イベントには、例えば、マウスのクリック、ファイルのオープン、タイマの失効、ユーザの音声入力、および、システムの応答が含まれ得る。ログ・アナライザ１２０は、システム・ログを分析し、次いで、システム・ログから会話のスレッドを識別する。言い換えれば、ログ・アナライザ１２０は、テキスト入力としてまたは認識された音声のテキストとしてのユーザ入力を分離し、システム・ログから対応するシステム応答を分離し、それらを会話のスレッドにグループ化する。こうすると、各会話スレッドは、ユーザとシステムの間の会話の忠実な記録となり、また、言語モデルを作成するために、各会話スレッドをリテラルまたはコーパスに追加することができる。
【００８８】
例えば、会話は、エージェントによる挨拶から開始し、次いで、ユーザからの質問、さらに、推論および応答モジュール１１８によって作成される応答が続くことが可能である。次いで、さらにユーザからの質問が続き、推論および応答モジュール１１８によって生成される応答が続くこともあり得る。別個の会話スレッド、すなわち、システムのユーザとシステムの応答の間の実際の会話の表現が、システム・ログから抽出されると、この分離された会話スレッドは、音声認識エンジン１２６、または別個の言語モデル生成器に提供され得る。
【００８９】
いくつかの利点は、システム・ログから「リテラル」を抽出することによって得られる。第１に、退屈で誤りが起きやすいプロセスである「リテラル」の手作業の入力が必要でなくなる。第２に、ログは、単にその知識領域に対する関連性について含まれている何らかの文字による伝達の表現ではなく、ユーザとシステムの間の口頭の伝達をより正確に反映する。第３に、リテラルは、ごく少数のコンテンツ作成者の知的となり得る独創的想像の結果ではなく、システムの多数となり得るユーザからの実生活の入力を反映する。作成されるまたは精錬される言語モデルは、実生活の会話をより正確に反映する傾向があり、音声認識の精度を改善する助けとなる。
【００９０】
動作に際しては、システムのアプリケーションの管理者または設計者は、まず、特定のアプリケーションに合うようにシステムを構成し、すなわちエージェントを定義する。前述のように、エージェントは、その知識領域、ならびにユーザから受け取った入力に対する応答により定義される。その知識領域において、エージェントは、ユーザ入力を「理解」し、分別のある応答を提供することができる。エージェントは、いくつかの方法で定義することができる。通常は、提供されたツールキット１４４を使用して、設計者が、まず、その領域に関連する１組の概念を定義する。次いで、設計者は、ツールキット１４４、またはツールキット１４４のエージェント・エディタ１４８を使用して、これらの概念に対して、１組の概念からキーワードへのマッピングを定義する。次いで、設計者は、知識領域に関連すると見なされるサンプル発話を入力する。サンプル発話は、予期されるユーザ入力のタイプに対応することもできる。ツールキットＮＬＰ１４６は、各サンプル発話を構文解析して、文タイプ、または対話行為、ならびに関連する順序付き概念リストを導き、したがってトリガを定義する。各トリガごとに、いくつかの可能な応答のうちから応答を選択するためのアルゴリズムによって、設計者は、１つの応答または一緒にいくつかの応答を入力することができる。設計者が、すべての所望の、概念からキーワードへのマッピング、トリガ、およびそれらに関連する応答が入力されたことに満足した場合、設計者は、「公開」を行う、すなわち、ツールキット１４４を使用して、コンセプトからキーワードへのマッピング、トリガ、およびそれらに関連する応答を変換し、サーバ・データベース１２２に保存する。これにより、エージェントの定義または構成、すなわち、特定の知識領域における特定のアプリケーションに対応するシステムの構成が完了する。
【００９１】
この特定の知識領域における音声認識の精度を改善するために、音声認識エンジンは、文法ファイルを利用することができる。文法ファイルは、手作業で作成され得るが、ツールキット１４４を使用して、文法ファイルの作成を少なくとも部分的に自動化することが好ましい。好都合なことに、設計者は、ツールキットＮＬＰ１４６を使用して、サンプル発話を構文解析して概念の順序付きリストを導く。文法規則は、概念からキーワードへのマッピングを使用して、自動的に生成することができる。設計者は、サンプル発話が入力されトリガが生成されたとき、あるいは、すべてのサンプル発話が入力されたとき、文法規則を生成することができる。これらの文法規則は、静的文法規則である。これらの文法規則は、エージェントとユーザの間の相互作用の各セッションにおいて変更されず、また、エージェントとユーザの間の相互作用の複数のセッションにわたっても変更されない傾向がある。ツールキットＮＬＰ１４６を使用して自動的に生成されたこれらの文法規則は、１つまたは複数の文法ファイルとして格納される。静的文法規則は、グループ化され、そのグループ分けに従って異なる文法ファイルとして格納することができる。このグループ分けは、知識領域のカテゴリまたはサブ・フィールドに基づき行うことができ、あるいは、文法規則に割り当てられた、または文法規則を生成するために用いられる概念からキーワードへのマッピングに割り当てられたコンテキスト指定から導出される、定義された「コンテキスト」に基づいて行うこともできる。
【００９２】
「エージェント」が「公開」され、関係する文法ファイルが格納されると、システムまたはエージェントは、ユーザと対話することができる状態になる。システムは、ユーザと様々な方法で対話することができる。言い換えれば、システムは、様々なタイプのユーザ・インターフェースを有することができる。ユーザ・インターフェースは、テキスト・ベースにすることも音声ベースにすることもできる。例えば、ユーザ・インターフェースは、クライアント１１２に接続されたコンピュータ端末とすることができ、それにより、リモート・ユーザがテキストの照会文を入力することを可能にする、テキスト入力フォーム、またはウェブ・ベースの入力フォームが提供される。ユーザ・インターフェースは、音声入力が直接入力できるように、音声認識エンジン１２６に結合されたマイクまたは他の音声検出装置とすることもできる。ユーザは、ウェブ・ベースの入力フォームを介して、まずステートメントまたは質問を入力することにより、エージェントとの対話を開始することができる。ユーザは、エージェントが音声認識エンジン１２６を装備している場合、エージェントに直接話すこともできる。テキスト入力が入力された場合、システム１００は、その入力の主題がエージェントの知識領域に属している場合に応答を与える。音声が入力として与えられた場合、システム１００は、まず、その音声認識エンジン１２６を使用して音声をテキスト形式に変換し、次いで、その認識された音声に基づいて応答を与える。
【００９３】
図１のクライアント／サーバ構成を用いて実装されたシステムでは、クライアント側の音声認識エンジン１２６により、ユーザの音声がテキストに変換され、次いで、そのテキストは、処理のためにサーバ１１０に転送される。ユーザの音声が、完全に理解されていない場合は、まず、部分的に認識されている音声が、増幅のためにサーバ１１０に転送される。サーバ１１０の動的文法規則生成器１１６は、図４に関連して説明されたステップに従って、部分的に認識された音声に基づき動的文法規則を生成する。図５に関連して説明された処理のステップに従って、部分的に認識された音声を再処理する、すなわち、以前の認識のパス（ｐａｓｓ）で解決されなかった音のグループを解決して単語を導くために用いるため、動的文法規則は、音声認識エンジン１２６に転送される。音声が依然として完全には解決されていない場合、今回はより多くの単語が認識されている部分的に認識された音声が、音声認識エンジン１２６が部分的に認識された音声を再び処理するための、さらに他の動的文法規則を生成するために、サーバ１１０に送られ得る。このプロセスは、音声が完全に認識されるまで繰り返すことができ、その時、認識された音声のテキストは、応答を選択するためにサーバ１００に送られる。
【００９４】
音声が完全に認識された場合、サーバ１１０は、認識された音声を処理して応答を提供する。まず、認識された音声のテキストは、サーバＮＬＰ１１４により構文解析されて、文タイプおよびそれに関連する概念リストが導かれ、つまり、テキストは、まず、サーバＮＬＰ１１４によって、「トリガ」に変換される。次いで、サーバ１１０の推論および応答モジュール１１８は、サーバ・データベース１２２で、ツールキット１４４を使用してそれに「公開」されたトリガのコレクションから、入力トリガでの一致を求める。前述のように、各トリガは、これらの応答から１つの応答を選択するためのアルゴリズムによって、１つの応答とまたは一緒にいくつかの応答と関連付けられる。トリガに関連付けられた応答は、選択された後、クライアント１１２に送り返される。クライアント１１２は、テキスト形式でユーザに応答を表示することも、テキスト音声変換エンジン１４２を使用して、テキストを音声に変換することもできる。システム１００は、その一方で、システム・ログに、認識された音声、および選択された応答を記録する。
【００９５】
コンテキストは、認識された音声、および選択された応答から決定することができる。例えば、エージェント設計者によって割り当てられる、一致したトリガに関連するコンテキスト指定から、コンテキストを決定することができる。コンテキストは、ユーザ入力に出現する概念のリストから動的に決定することもできる。例えば、ユーザ入力が、スポーツと関係するいくつかの概念と、ホッケーに関係する１つの概念を含む場合、コンテキストは、「ｓｐｏｒｔ」、またはその下位のカテゴリの１つの「ｈｏｃｋｅｙ」に関係していると決定され得る。コンテキストは、現在のコンテキストがその前のユーザ入力に関連するコンテキストと異なる場合、コンテキスト履歴ログに記録される。コンテキスト履歴は、図６に示すプロセスに関連して説明したように、文法規則を検索またはロードするための動的検索シーケンスを定式化するためにシステム１００によって使用することができる。図６ではサーバ１１０が検索シーケンスを生成するプロセスを示しているが、検索シーケンスは、サーバで生成してもクライアントで生成してもよいことは認識されよう。
【００９６】
システムのアプリケーションの設計者または管理者は、システム・ログから個々の対話を抽出するために、ログ・アナライザ１２０を使用する。エージェントとユーザの間の相互作用のセッションの後、あるいは、いくつかのこのようなセッションが完了した後、言語モデルを確立しまたは洗練するために使用することができる「リテラル」は、これらの個々の対話から編纂することができる。エージェントの設計者は、このように編纂されたリテラルを、言語モデル生成器に提供して、言語モデルがまだ作成されていない場合は言語モデルを確立し、少なくとも１つの言語モデルが確立されている場合は言語モデルを洗練することができる。もちろん、設計者は、サンプル発話と設計された応答がすべてエージェントの知識領域に属するとき、ユーザとエージェントの間のどの相互作用セッションにも先立ち、サンプル発話と設計された応答のコレクションを使用して、言語モデルを確立することができる。
【００９７】
本発明の様々な実施形態が上記に詳しく説明された。これらの実施形態に対して、本発明の範囲から逸脱することなく、多数の修正、調整、および変形を加えることができることは当業者には理解されよう。本発明の特性、趣旨、および範囲から逸脱することなく、上述の最良の形態に対する変更または追加を行うことができるため、本発明は、これらの詳細に限定されず、添付の特許請求の範囲によってのみ限定される。
【図面の簡単な説明】
【００９８】
【図１】例示的クライアント／サーバ構成で実装される音声認識システムを示す概略図である。
【図２】図１のシステムによって使用するためのデータ・ファイルを準備するためのツールキットの機能コンポーネントを概略的に示す図である。
【図３】図１のシステムによって使用するための文法規則を生成する例示的プロセスを示す図である。
【図４】音声の認識および増幅のために文法規則を動的に生成するプロセスのステップを示す図である。
【図５】図４に示すプロセスにおいて動的に生成された文法規則を利用する音声認識増幅のプロセスのステップを示す図である。
【図６】図１のシステムによって使用するための文法規則の動的階層を作成するプロセスのステップを概略的に示す図である。
【符号の説明】
【００９９】
１１０  サーバ
１１２  クライアント
１１４  自然言語処理装置（ＮＬＰ）
１１４  サーバＮＬＰ
１１６  動的文法規則生成器
１１８  推論および応答モジュール
１２０  ログ・アナライザ
１２２  サーバ・データベース
１２６  音声認識エンジン
１２８  ディクテーション・モジュール
１３０  言語モデル・モジュール
１３２  文法規則モジュール
１３４  クライアント・ストレージ
１３６  辞書ファイル
１３８  言語モデル・ファイル
１４０  文法ファイル
１４２  テキスト音声変換エンジン
１４４  ツールキット
１４６  ツールキットＮＬＰ
１４８  エージェント・エディタ
１５０  ツールキット文法規則生成器
１５２  ツールキット・データベース
【図１】
2006106748.tif 000004
【図２】
2006106748.tif 000005
【図３】
2006106748.tif 000006
【図４】
2006106748.tif 000007
【図５】
2006106748.tif 000008
【図６】
2006106748.tif 000009