(57)【要約】【課題】  アルファニューメリック文法を生成するためのシステムまたは方法を提供すること。【解決手段】  音声認識装置が使用するために適した文法を生成する方法およびシステムは、アルファニューメリック表現の表現を受け取ることを含んでいる。例えば、この表現は、正規表現またはマスクの形式を取ることができる。この文法は、この表現に基づいて生成される。【選択図】  図２
2006085160.tif 000002
【特許請求の範囲】
【請求項１】
音声認識装置が使用するのに適した文法を生成するためのコンピュータ実装方法であって、
アルファニューメリック表現の表現を受け取るステップと、
前記表現に基づいて文法を生成するステップと
を含むことを特徴とするコンピュータ実装方法。
【請求項２】
前記文法を生成するステップは、前記表現を部分へと解析するステップを含むことを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項３】
前記文法を生成するステップは、前記各部分についての文法ルールを生成するステップを含むことを特徴とする請求項２に記載のコンピュータ実装方法。
【請求項４】
前記表現を解析するステップは、前記表現をブランチに解析するステップを含むことを特徴とする請求項３に記載のコンピュータ実装方法。
【請求項５】
前記文法を生成するステップは、各ブランチについての文法ルールを生成するステップを含むことを特徴とする請求項４に記載のコンピュータ実装方法。
【請求項６】
前記文法を生成するステップは、前記表現の前記最初に述べた各部分のうちのより小さい部分を識別するステップを含み、前記文法を生成するステップは、前記のより小さい各部分についてのルールを生成するステップを含むことを特徴とする請求項３に記載のコンピュータ実装方法。
【請求項７】
前記のより小さい各部分についての文法ルールを生成するステップは、ライブラリにルールを記憶したより小さな部分を識別するステップと、前記ライブラリに記憶したルールに基づいて前記文法についてのルールを生成するステップとを含むことを特徴とする請求項６に記載のコンピュータ実装方法。
【請求項８】
前記のより小さい各部分についての文法ルールを生成するステップは、代替キャラクタ発話表現についてのルールを生成するステップを含むことを特徴とする請求項６に記載のコンピュータ実装方法。
【請求項９】
前記文法を生成するステップは、代替キャラクタ発話表現を認識するために音声認識装置からの正規化出力を提供するメカニズムを使用するステップを含むことを特徴とする請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記文法を生成するステップは、代替キャラクタ発話表現を認識するために、前記文法中において正規化情報を提供して、音声認識装置からの正規化出力を提供するステップを含むことを特徴とする請求項９に記載のコンピュータ実装方法。
【請求項１１】
前記文法を生成するステップは、前記文法に関連する、正規化情報を有するデータベースを生成するステップを含むことを特徴とする請求項１０に記載のコンピュータ実装方法。
【請求項１２】
前記のより小さな各部分についての文法ルールを生成するステップは、代替キャラクタシーケンス発話表現についてのルールを生成するステップを含むことを特徴とする請求項６に記載のコンピュータ実装方法。
【請求項１３】
前記文法を生成するステップは、代替キャラクタ発話表現を認識するために音声認識装置からの正規化出力を提供するメカニズムを使用するステップを含むことを特徴とする請求項９に記載のコンピュータ実装方法。
【請求項１４】
前記文法を生成するステップは、代替キャラクタ発話表現を認識するために、前記文法中において正規化情報を提供して、音声認識装置からの正規化出力を提供するステップを含むことを特徴とする請求項１３に記載のコンピュータ実装方法。
【請求項１５】
前記文法を生成するステップは、前記文法に関連する、正規化情報を有するデータベースを生成するステップを含むことを特徴とする請求項１４に記載のコンピュータ実装方法。
【請求項１６】
前記のより小さい各部分についての文法ルールを生成するステップは、文法ルールが以前に基づいていた前記表現中の第２のより小さな部分と同一の第１のより小さな部分を識別するステップと、前記第２のより小さな部分に基づいた前記ルールを使用することにより、前記第１のより小さな部分に基づいたルールを生成するステップとを含むことを特徴とする請求項６に記載のコンピュータ実装方法。
【請求項１７】
前記文法を生成するステップは、プレフィックス最適化文法ルールを生成するステップを含むことを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項１８】
前記表現は、正規表現またはマスクの形式であることを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項１９】
音声認識装置が使用するのに適した文法を生成するための、コンピュータ上で動作可能な命令を有するコンピュータ読取り可能媒体であって、前記命令は、
アルファニューメリック表現の表現を受け取るステップと、
前記表現に基づいて文法を生成するステップと
を含むことを特徴とするコンピュータ読取り可能媒体。
【請求項２０】
前記表現は、正規表現またはマスクを含むことを特徴とする請求項１９に記載のコンピュータ読取り可能媒体。
【請求項２１】
文法を生成するステップは、前記表現のブランチおよびピースを識別するステップを含むことを特徴とする請求項２０に記載のコンピュータ読取り可能媒体。
【請求項２２】
前記文法を生成するステップは、前記各ブランチおよび前記各ピースについてのルールを生成するステップを含むことを特徴とする請求項２１に記載のコンピュータ読取り可能媒体。
【請求項２３】
前記各ピースについてのルールを生成するステップは、代替キャラクタ発話表現についてのルールを生成するステップ、代替キャラクタシーケンス発話表現についてのルールを生成するステップ、およびライブラリにルールを記憶しているピースを識別し、前記ライブラリに記憶された前記ルールに基づいて前記文法についてのルールを生成するステップのうちの少なくとも１つを含むことを特徴とする請求項２２に記載のコンピュータ読取り可能媒体。
【請求項２４】
前記文法を生成するステップは、代替キャラクタ発話表現および代替キャラクタシーケンス発話表現のうちの少なくとも一方を認識するために音声認識装置からの正規化出力を提供するメカニズムを使用するステップを含むことを特徴とする請求項２３に記載のコンピュータ読取り可能媒体。
【請求項２５】
前記文法を生成するステップは、代替キャラクタ発話表現および代替キャラクタシーケンス発話表現のうちの少なくとも一方を認識するために、前記文法中において正規化情報を提供して、音声認識装置からの正規化出力を提供するステップを含むことを特徴とする請求項２４に記載のコンピュータ読取り可能媒体。
【請求項２６】
前記文法を生成するステップは、代替キャラクタ発話表現および代替キャラクタシーケンス発話表現のうちの少なくとも一方についての正規化情報を有する、前記文法に関連するデータベースを生成するステップを含むことを特徴とする請求項２５に記載のコンピュータ読取り可能媒体。
【請求項２７】
音声認識装置が使用するのに適した文法を生成するコンピュータシステムであって、
アルファニューメリック表現の表現を受け取り、前記表現のブランチを識別するようになっている解析モジュールと、
前記ブランチに基づいて前記文法についてのルールを生成するようになっているブランチルール生成モジュールと、
前記各ブランチのピースを識別し、前記各ピースに基づいて前記文法についてのルールを生成するようになっているピースルール生成モジュールと
を備えることを特徴とするシステム。
【請求項２８】
ピースに基づいて文法ルールを記憶するライブラリをさらに備え、前記ピースルール生成モジュールは、前記ライブラリに記憶されるルールを有するピースに対応する前記表現のピースを識別するようになっており、前記ピースルール生成モジュールは、前記ライブラリ中の前記ルールに基づいて前記文法についてのルールを生成するようになっていることを特徴とする請求項２７に記載のシステム。
【請求項２９】
前記ピースルール生成モジュールは、処理されている、前記表現の第１のピースについて前記ライブラリにルールを記憶するようになっており、前記ピースルール生成モジュールは、前記表現の前記第１のピースと同一な、前記表現の第２のピースを識別し、前記表現の前記第１のピースについて前記ライブラリ中のルールに基づいて前記表現の前記第２のピースについてのルールを生成するようになっていることを特徴とする請求項２８に記載のシステム。
【請求項３０】
前記ピースルール生成モジュールは、代替キャラクタ発話表現および代替キャラクタシーケンス発話表現のうちの少なくとも一方についてのルールを生成するようになっていることを特徴とする請求項２６に記載のシステム。
【請求項３１】
前記ピースルール生成モジュールは、代替キャラクタ発話表現および代替キャラクタシーケンス発話表現のうちの少なくとも一方について前記文法中で正規化情報を提供するようになっていることを特徴とする請求項３０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声認識（ｓｐｅｅｃｈ  ｒｅｃｏｇｎｉｔｉｏｎ）に関する。より詳細には、本発明は、アルファニューメリック概念のための音声認識文法を自動的に作成することに関する。
【背景技術】
【０００２】
音声認識システムは、会社および組織によってコストを低減し、顧客サービスを改善し、かつ／またはタスクを完全または部分的に自動化するためにますます使用されるようになりつつある。かかるシステムは、スタンドアロンデスクトップマシンから、ネットワークデバイス、およびモバイルハンドヘルドコンピューティングデバイスに至るまで種々様々なコンピューティングデバイス上で使用されてきている。音声認識は、アプリケーション開発者のための自然のユーザインターフェースを実現する。例えば、ハンドヘルドモバイルデバイスなどのコンピューティングデバイスでは、完備したアルファニューメリックキーボードは、コンピューティングデバイスのサイズをかなり大きくすることなしには非現実的である。したがって、音声認識により、小型のデバイスのための便利な入力方法がもたらされ、またユーザは、単なる電話を介してなどリモートにコンピュータにアクセスすることができるようになる。
【０００３】
もし必要でないにしても、音声認識がより広く受け入れられるとともに、柔軟な、正確な、音声機能可能なアプリケーションを速やかに効率的に作成する必要が存在している。かかるシステムでは、このシステムとユーザの間の混合主導対話（ｍｉｘｅｄ  ｉｎｉｔｉａｔｉｖｅ  ｄｉａｌｏｇ）が可能になるので、話し言葉理解モデル（ｓｐｏｋｅｎ  ｌａｎｇｕａｇｅ  ｕｎｄｅｒｓｔａｎｄｉｎｇ  ｍｏｄｅｌ）を対象とする研究では、柔軟性が実現されてきている。かかるシステムおよび研究では、複数のフレーズ意味ユニット（ｐｈｒａｓａｌ  ｓｅｍａｎｔｉｃ  ｕｎｉｔ）（スロット）、例えば、飛行機旅行情報システム（Ａｉｒ  Ｔｒａｖｅｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｙｓｔｅｍ）のドメインにおける「＄４００以下の費用のシアトルからボストンへの火曜日のフライトをリストアップする」のような「ショーフライト（ＳｈｏｗＦｌｉｇｈｔ）」コマンドを含むコマンドのモデリングにおいて精度が達成されてきているが、そこでは、日付、時間、クレジットカード番号、フライト番号などのような低レベルの概念についてのフレーズモデルの獲得は、ほとんど研究されていない。その代わりに、これらのシステムおよび研究では、解決方法についての文法ライブラリおよびデータベース入力（例えば、アプリケーションデータベースからの都市名）に頼ってきた。
【０００４】
【非特許文献１】W3C, "XML Schema Part 2: Datatypes W3C Recommendation 02 May 2001" available at www.w3.org/TR/xmlschema-2/
【発明の開示】
【発明が解決しようとする課題】
【０００５】
それにもかかわらず、これまで展開されている大多数の話し言葉システムは、システム主導指向の対話システムである。かかるシステムにおいては、文法開発努力のほとんどが、この低レベル概念に向けられている。文法ライブラリおよびデータベース入力は、実行可能な解決方法であるが、これらでは、この問題が完全に解決されなかった。例えば、文法ライブラリ開発者は、これらにとってのすべての可能性のあるドメイン特有の概念およびあらかじめ構築された文法を予測することはできない。さらに、このデータベース入力の綴りの正しい形式では、この音声認識文法としての役割を果たすのに十分でないことがしばしばある。例えば、適切な音声認識文法では、アルファニューメリックストリングについての様々な代替発話表現をモデル化する必要がある。アプリケーションが、部品番号を認識する必要があり、「ＡＢＢ１２３」は、この部品番号の１つであると仮定する。この音声機能可能システムは、たとえこの部品番号が、「Ａ  Ｂ  Ｂ  ｏｎｅ  ｔｗｏ  ｔｈｒｅｅ」や「Ａ  ｄｏｕｂｌｅ  Ｂ  ｏｎｅ  ｔｗｅｎｔｙ  ｔｈｒｅｅ」など異なる方法で発話されるとしても、この部品番号を認識できる必要がある。
【０００６】
したがって、部品番号および運転免許番号のようなアルファニューメリック概念についての文法開発は、これらの最も困難なタスクの１つであることがよく認識されよう。１つの試みは、１状態有限状態モデルに基づいた簡単な文法を使用することであった。かかるモデルは、各キャラクタ（Ａ〜Ｚ）および各ディジット（０〜９）についてのループを有する。しかし、このモデルは、一般にこの文法がこのターゲット部分言語の特異性を捕捉しないことを含む理由から、あまり良好に機能しない。したがって、このモデルの混乱は、必要以上にずっと大きくなってしまう。例えば、部品番号が、文字「Ｂ」から常に開始されることが分かっている場合、この文法は、この制約条件を明示的にモデル化し、その結果、「Ｅ」を「Ｄ」、「Ｅ」、「Ｇ」、および「Ｐ」と混同する認識エラーが決して起こらないようにする必要がある。
【０００７】
さらに、この簡単な文法は、多くのタイプのストリングについての言語表現の多様性をモデル化してはいない。以上の実施例においては、「ＡＢＢ１２３」の一部分「ＡＢＢ」も一部分「１２３」も共に、その多くが簡単な文法によってモデル化されない、異なるけれども非常に一般的な方法で提供することができる。
【０００８】
さらに、「−」、「＊」などのような特殊キャラクタが、部品番号のようなアルファニューメリックシーケンス中にしばしば現れることがある。これにより、一般的なアルファニューメリック文法が、かかるケースではカスタマイズされる必要があるはずである。
【０００９】
前述の問題の観点から、開発者はしばしば、特定のアルファニューメリック概念についての開発者自身の文法を書くように強いられることがある。このプロセスは、退屈で間違いを起こしやすい。文法ライブラリとは違って、あまり経験のない開発者が書く文法は、しばしば最適化されていないことがあり、したがってデコーダ（ｄｅｃｏｄｅｒ）が使用するときのパフォーマンスが悪くなる。
【００１０】
したがって、前述の必要性の１つ、一部、または全部に対処するアルファニューメリック文法を生成するためのシステムまたは方法は、有益となるはずである。
【課題を解決するための手段】
【００１１】
音声認識装置で使用するのに適した文法を生成する方法およびシステムは、アルファニューメリック表現の表現を受け取るステップを含んでいる。例えば、この表現は、正規表現またはマスクの形式を取ることができる。この文法は、この表現に基づいて生成される。このようにして、開発者は、例えば、このアルファニューメリック表現についての正規表現を提供することが可能であり、このシステムは、自動的にこの文法を構築する。
【００１２】
さらなる実施形態においては、この文法は、代替的なキャラクタ発話表現（例えば、共に「０」について発することができる「ｚｅｒｏ」または「ｏｈ」）、および／または代替的なキャラクタシーケンス発話表現（例えば、共に「ＡＡ」について発することができる「Ａ  Ａ」または「ｄｏｕｂｌｅ  Ａ」）の認識についてのルールに適したものにすることができる。かかるケースにおいては、この文法を修正して正規化情報を提供し、その結果音声認識装置がこの文法を使用して正規化出力を出力できるようにすることも可能である。さらに他の実施形態においては、この文法は、プレフィックス（ｐｒｅｆｉｘ）最適化を用いて構築される。
【００１３】
この文法の品質は、最終的にはこの表現が提供される方法によって決まるが、本明細書中で説明している方法およびシステムでは、特に特定のアプリケーションに特有となり得るアルファニューメリック表現についての文法開発の困難なタスクからこれらの開発者が解放される。このようにして、アルファニューメリック表現のための文法は、より速く文法開発者の特有の専門知識なしに開発することができる。
【発明を実施するための最良の形態】
【００１４】
本発明は、アルファニューメリック概念またはアルファニューメリック表現についての文法を生成するためのシステム、モジュールおよび方法に関する。しかし、本発明をより詳細に説明するのに先立って、本発明を使用することができる例示の一環境についてまず説明することにする。
【００１５】
例示の動作環境  
図１は本発明を実装することができる適切なコンピューティングシステム環境１００の一実施例を示している。このコンピューティングシステム環境１００は、適切なコンピューティング環境の一実施例にすぎず、本発明の用途または機能の範囲についてどのような限定を示唆することも意図してはいない。また、コンピューティング環境１００は、例示の動作環境１００中に示されるコンポーネントの任意の１つまたは組合せに関連したどのような依存性または要件を有するものとも解釈すべきではない。
【００１６】
本発明は、非常に多くの他の汎用または専用のコンピューティングシステムの環境またはコンフィギュレーションを用いて、動作することが可能である。本発明と共に使用するのに適したものとすることができるよく知られているコンピューティングシステム、コンピューティング環境、および／またはコンピューティングコンフィギュレーションの実施例には、それだけには限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブルな大衆消費電子製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記システムまたはデバイスのうちの任意のものを含む分散コンピューティング環境などが含まれる。
【００１７】
本発明は、コンピュータが実行する、プログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールは、個々のタスクを実施し、または個々の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含んでいる。当業者なら、本明細書中の説明および／または図面をコンピュータ実行可能命令として実装することができ、これらの命令については、以下で説明する任意の形態のコンピュータ読取り可能媒体上で実施することができる。
【００１８】
本発明はまた、タスクが、通信ネットワークを介してリンクされるリモート処理デバイスによって実施される分散コンピューティング環境において実施することもできる。分散コンピューティング環境においては、プログラムモジュールは、メモリストレージデバイスを含めて、ローカルコンピュータストレージ媒体中にもリモートコンピュータストレージ媒体中にも配置することができる。
【００１９】
図１を参照すると、本発明を実装する例示のシステムは、コンピュータ１１０の形態の汎用コンピューティングデバイスを含んでいる。コンピュータ１１０のコンポーネントは、それだけには限定されないが、処理装置１２０、システムメモリ１３０、およびこのシステムメモリを含めて様々なシステムコンポーネントを処理装置１２０に結合するシステムバス１２１を含むことができる。システムバス１２１は、メモリバスまたはメモリコントローラ、ペリフェラルバス、および様々なバスアーキテクチャのうちのどれかを使用したローカルバスを含めて、いくつかのタイプのバス構造のうちのどれにすることもできる。実施例として、限定するものではないが、かかるアーキテクチャは、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ業界標準アーキテクチャ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅマイクロチャネルアーキテクチャ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ拡張ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎビデオエレクトロニクス規格協会）ローカルバス、およびメザニン（Ｍｅｚｚａｎｉｎｅ）バスとしても知られているＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔペリフェラルコンポーネント相互接続）バスを含んでいる。
【００２０】
コンピュータ１１０は、一般的に様々なコンピュータ読取り可能媒体を含んでいる。コンピュータ読取り可能媒体は、コンピュータ１１０がアクセスすることができる使用可能な任意の媒体とすることができ、揮発性媒体も不揮発性媒体も、着脱可能媒体も着脱不能媒体も含んでいる。実施例として、限定するものではないが、コンピュータ読取り可能媒体は、コンピュータストレージ媒体および通信媒体を含むことができる。コンピュータストレージ媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、他のデータなどの情報の記憶のための任意の方法または技術で実装される揮発性媒体も不揮発性媒体も、着脱可能媒体も着脱不能媒体も含んでいる。コンピュータストレージ媒体は、それだけには限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋデジタル多用途ディスク）または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは所望の情報を記憶するために使用することができ、コンピュータ１１０によってアクセスすることができる他の任意の媒体を含んでいる。通信媒体は、一般的に搬送波ＷＡＶや他の搬送メカニズムなどの被変調データ信号の形のコンピュータ読取り可能命令、データ構造、プログラムモジュールまたは他のデータを実施し、任意の情報配信媒体を含んでいる。この用語「被変調データ信号」は、その１つまたは複数の特性が、その信号中の情報を符号化するようにして設定または変更されている信号を意味する。実施例として、限定するものではないが、通信媒体は、有線ネットワークや直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、他の無線媒体などの無線媒体を含んでいる。以上のうちの任意の組合せもまた、コンピュータ読取り可能媒体の範囲内に含められるべきである。
【００２１】
システムメモリ１３０は、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ読取り専用メモリ）１３１やＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙランダムアクセスメモリ）１３２など、揮発性メモリおよび／または不揮発性メモリの形態のコンピュータストレージ媒体を含んでいる。起動中などにコンピュータ１１０内のエレメント間で情報を転送する助けをする基本ルーチンを含むＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ基本入出力システム）１３３は、一般的にＲＯＭ１３１に記憶される。ＲＡＭ１３２は一般的に、処理装置１２０にとって直接にアクセス可能であり、または処理装置１２０によって現在動作させられており、あるいはその両方が行われるデータおよび／またはプログラムモジュールを含んでいる。実施例として、限定するものではないが、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示している。
【００２２】
コンピュータ１１０は、他の着脱可能／着脱不能な、揮発性／不揮発性のコンピュータストレージ媒体を含むこともできる。実施例にすぎないが、図１は、着脱不能な不揮発性磁気媒体から情報を読み取り、それに情報を書き込むハードディスクドライブ１４１、着脱可能な不揮発性磁気ディスク１５２から情報を読み取り、それに情報を書き込む磁気ディスクドライブ１５１、ならびにＣＤ−ＲＯＭや他の光媒体など着脱可能な不揮発性光ディスク１５６から情報を読み取り、またはそれに情報を書き込む光ディスクドライブ１５５を示している。この例示の動作環境中で使用することができる他の着脱可能／着脱不能な、揮発性／不揮発性のコンピュータストレージ媒体には、それだけには限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ１４１は、一般的にインターフェース１４０などの着脱不能メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、一般的にインターフェース１５０など着脱可能なメモリインターフェースによってシステムバス１２１に接続される。
【００２３】
前述の図１に示すこれらのドライブおよびこれらに関連するコンピュータストレージ媒体は、コンピュータ１１０のためのコンピュータ読取り可能命令、データ構造、プログラムモジュール、および他のデータのストレージを提供する。図１において、例えばハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶するものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じまたは異なるものとすることが可能であることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７には、少なくともこれらが異なるコピーであることを示すためにここでは異なる番号が付与されている。
【００２４】
ユーザは、キーボード１６２、マイクロフォン１６３や、マウス、トラックボール、タッチパッドなどのポインティングデバイス１６１などの入力デバイスを介してコンピュータ１１０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）は、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどを含むことができる。これらおよび他の入力デバイスはしばしば、このシステムバスに結合されるユーザ入力インターフェース１６０を介して処理装置１２０に接続されるが、これらは、パラレルポート、ゲームポート、ＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓユニバーサルシリアルバス）など他のインターフェースおよびバス構造によって接続することもできる。モニタ１９１または他のタイプのディスプレイデバイスもまた、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。このモニタに追加して、コンピュータはまた、スピーカ１９７やプリンタ１９６など他のペリフェラル出力デバイスを含むこともでき、これらの出力デバイスは、出力ペリフェラルインターフェース１９５を介して接続することができる。
【００２５】
コンピュータ１１０は、リモートコンピュータ１８０など１つまたは複数のリモートコンピュータに対する論理接続を使用してネットワーク環境中で動作することもできる。リモートコンピュータ１８０は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードとすることができ、一般的にコンピュータ１１０に関連して以上で説明したエレメントの多くまたはすべてを含んでいる。図１に示す論理接続は、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋローカルエリアネットワーク）１７１およびＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋワイドエリアネットワーク）１７３を含んでいるが、他のネットワークを含むこともできる。かかるネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて、一般的なものである。
【００２６】
ＬＡＮネットワーキング環境中で使用されるときには、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境中で使用されるときには、コンピュータ１１０は、一般的にインターネットなどのＷＡＮ１７３上で通信を確立するためのモデム１７２または他の手段を含んでいる。モデム１７２は、内蔵または外付けとすることができるが、ユーザ入力インターフェース１６０または他の適切なメカニズムを介してシステムバス１２１に接続することができる。ネットワーク環境においては、コンピュータ１１０に関連して示すプログラムモジュール、またはその一部分は、このリモートメモリストレージデバイスに記憶することもできる。実施例として限定するものではないが、図１は、リモートアプリケーションプログラム１８５をリモートコンピュータ１８０上に存在するものとして示している。図に示すこれらのネットワーク接続は、例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用することもできることが理解されよう。
【００２７】
本発明は、図１に関して説明しているようなコンピュータシステム上で実行することができることに留意されたい。しかし、本発明は、サーバ上、メッセージハンドリング専用のコンピュータ上、あるいは本発明の異なる部分がこの分散コンピューティングシステムの異なる部分上で実行される分散システム上でも実行することができる。
【００２８】
文法生成システム  
以上で指摘したように、本発明の一態様は、文法オーサリング経験がほとんどない開発者が、部品番号、運転免許などのアルファニューメリック概念またはアルファニューメリック表現のための高いパフォーマンスの音声文法を構築することを可能にするためのシステムおよび方法を含んでいる。これらのタイプの表現は、多くのタイプのアプリケーションにおいて存在している。しかし、これらの表現は、一般的にそのアプリケーションに特有であり、したがって、多くのタイプのアプリケーションにまたがって使用されるライブラリ文法の形であらかじめ構築しておける可能性はあまりない。
【００２９】
図２は、例えば前述の動作環境の形態のうちのどの上でも動作することが可能な文法生成モジュール２００を示している。一般に、文法生成モジュール２００は、認識すべきアルファニューメリック概念またはアルファニューメリック表現のタイプを示す表現を受け取る。この表現は一般に、認識すべきアルファニューメリック表現が含み得るキャラクタおよびそれらキャラクタのお互いの相対的なロケーションを指定する。別の言い方をすれば、この表現は、認識すべきアルファニューメリック表現についての制約条件を指定する。この表現は、それだけには限定されないが、例えばＷ３Ｃによって定義される「正規表現」（例えば、非特許文献１参照）など、この情報を表現する多数の形式を取ることができ、この正規表現については、以下で実施例として使用することになる。他の形態においては、この表現は、「マスク」の形式を取ることができ、このマスクにより、このユーザは、認識すべきアルファニューメリック表現についてのパターンを詳細に定義することができるようになる。
【００３０】
文法生成モジュール２００は、この表現を受け取り、この表現を処理して所望のアルファニューメリック表現を認識するのに適した文法２０２を作成する。文法生成モジュール２００は、１つまたは複数の形式の表現を処理するのに適したものとすることができる。しかし、認識すべきアルファニューメリック表現が取ることができる一般的に明確な形式を考慮して、表現の１つまたは複数の形式を受け入れ、文法生成モジュール２００が受け取るように設計された１つの形式へとすべての形式の表現を変換するオプションのコンバータ２０４を使用することが可能である。
【００３１】
実施例として、文法生成モジュール２００については、Ｗ３Ｃによって定義された正規表現を処理するものとして説明することにする。この規格の簡単なレビューが、助けになる可能性がある。Ｗ３Ｃ規格は、正規表現についての以下の形式的定義を有する。  
regExp ::= branch ( '|' branch )*  
branch ::= pieces*  
piece ::= atom quantifier?  
atom ::= char|charClass|('(' regExp ')')  
この定義によれば、正規表現は、１つまたは複数のオルタネート（ａｌｔｅｒｎａｔｅ）（ブランチ）から構成され、ここで、オルタネートは、「｜」によって区切られる。各ブランチは、ピース（ｐｉｅｃｅ）のシーケンスから構成される。各ピースは、オプションとして定量化されるアトム（ａｔｏｍ）である。この数量詞（ｑｕａｎｔｉｆｉｅｒ）は、このアトムの反復を指定する。この数量詞は、数字（例えば、｛３｝）、数字の範囲（例えば、｛０−３｝）、または予約キャラクタ（例えば、複数回についての「＋」、または０回以上についての「＊」）とすることが可能である。このアトムは、キャラクタ、キャラクタクラス（例えば、すべての大文字英字についての［Ａ−Ｚ］、または１０ディジット［０−９］についての＼ｄ）、または再帰的に挿入された正規表現とすることができる。
【００３２】
再帰的正規表現アトムを有する正規表現は、再帰的アトムのない正規表現に変換することができることに留意されたい。例えば、「（＼ｄ｛３｝｜［Ａ−Ｚ］）｛２｝Ｃ」は、「＼ｄ｛３｝［Ａ−Ｚ］Ｃ｜＼ｄ｛６｝Ｃ｜［Ａ−Ｚ］＼ｄ｛３｝Ｃ｜［Ａ−Ｚ］｛２｝Ｃ」が定義するのと同じ言語を定義する。以下で説明するアルゴリズムは、再帰的正規表現アトムのない正規表現を処理する。したがって、再帰的正規表現がこの表現中に存在する場合には、適切な変換が必要になるはずである。
【００３３】
また、本説明の目的であり、以下の変換アルゴリズム中において使用するためではないが、「ブランチ」および「ピース」はまた、マスクの形式の表現の処理にも適用されることになる。例えば、部品番号についてのマスクが「＆＃＃−＃＃＃−＆＆＆」の形式であり、ここで「＆」が集合｛Ａ−Ｚ｝のうちの任意のキャラクタを表し、「＃」がディジット｛０−９｝のうちの任意のディジットを表すものと仮定すると、この「ピース」は、「＆＃＃」、「＃＃＃」および「＆＆＆」を含んでおり、一方この「アトム」は、任意の「＆」、「＃」または「−」を含んでいることになる。
【００３４】
変換アルゴリズム  
以下の擬似コードは、正規表現（ｒｅｇｅｘｐ）が定義する所望のアルファニューメリック表現の認識について適合化された文法「ｇｒａｍ」を取得するための表現（本明細書中では、正規表現、すなわち「ｒｅｇｅｘｐ」）を処理するための例示の実施形態である。この擬似コード中に含まれるモジュール、および図２におけるその対応する表現については、限定的であると考えるべきではない。擬似コードも図２のブロック図も共に、処理概念を説明するために部分的に提供されており、これらの形式は、限定的であると考えるべきではない。当業者なら理解されるように、処理は、最終結果に影響を与えることなく、異なるステップまたは順序の変更を使用して実施することができる。さらに、図２のモジュールが実施する処理は、本発明の態様を逸脱することなく、他のモジュールへと分離し、または図に示すモジュールまたは他のモジュールと結合し、あるいはその両方を行うことができる。
【００３５】
【表１】
2006085160.tif 000003
【００３６】
【表２】
2006085160.tif 000004
【００３７】
【表３】
2006085160.tif 000005
【００３８】
【表４】
2006085160.tif 000006
【００３９】
前述の擬似コードは、この正規表現解析モジュール（ｒｅｇｕｌａｒ  ｅｘｐｒｅｓｓｉｏｎ  ｐａｒｓｉｎｇ  ｍｏｄｕｌｅ）２０６が、そのコンポーネントにアクセスするメソッドを有することを想定していることに留意されたい。例えば、メソッドｂｒａｎｃｈｅｓ（  ）は、この正規表現中のブランチのリストを戻すが、メソッドｐｉｅｃｅｓ（  ）は、正規表現におけるブランチのブランチ中のピースのリストを戻す。この擬似コードはまた、ｒｕｌｅ＿ｔｏｋｅｎのアレイとしてのルールの右辺を表す。各ｒｕｌｅ＿ｔｏｋｅｎは、シンボルが、その書換えルールにおいて最小回から最大回まで反復することを指定するタプル（シンボル、最小、最大）である。
【００４０】
また、表現を処理するための方法３００を示す図３を参照すると、処理が、ステップ３０２から開始され、文法生成モジュール２００がこの表現を受け取る。次いでステップ３０４において、この表現が、解析モジュール２０６によって解析されて、この表現のサブグループ（すなわち、ブランチ）が識別される。一般的に、ブランチは、「｜」などの分離キャラクタによって決定される。
【００４１】
これらのブランチが識別されると共に、この例示の実施形態において、各ブランチを処理して文法２０２についてのルールが生成され、ここで各ブランチの各ピースが、特に処理される。このステップは、図３の３０６中に示されているが、ブランチ処理は、図２におけるブランチルール生成モジュール（ｂｒａｎｃｈ  ｒｕｌｅ  ｇｅｎｅｒａｔｏｒ  ｍｏｄｕｌｅ）２０８によってもたらされ、ピース処理は、ピースルール生成モジュール（ｐｉｅｃｅ  ｒｕｌｅ  ｇｅｎｅｒａｔｏｒ  ｍｏｄｕｌｅ）２１０によってもたらされる。さらに広い専門用語で述べれば、ブランチルール生成モジュール２０８は、この表現の識別されたブランチについての代替ルールを生成するが、ピースルール生成モジュール２１０は、最初に述べた各ブランチのより小さな部分（ピース）についてのルールを生成する。一般的に、この正規表現解析モジュールは、区切り記号「−」、「／」、空白スペースなどによって分離されるピースを識別する。
【００４２】
図２において、ブランチルール生成モジュール２０８およびピースルール生成モジュール２１０からの処理結果は、文法２０２にルールを追加するルール追加モジュール２１２に提供される。
【００４３】
以上のこの変換アルゴリズムに関して、第１の（主要な）ファンクションｃｒｅａｔｅ＿ｒｅｇｅｘｐ＿ｇｒａｍｍａｒ（ライン１〜９）は、第２のファンクションｃｒｅａｔｅ＿ｂｒａｎｃｈ＿ｇｒａｍｍａｒ（ライン１０〜２１）を呼び出して、この入力正規表現の各ブランチについてのルールを作成し、このルールを追加しており、このルールは、これらのブランチについての（このアルゴリズムが生成する）「シンボル」にこのルートシンボルを再書込みする。この第２のファンクションｃｒｅａｔｅ＿ｂｒａｎｃｈ＿ｇｒａｍｍａｒは、第３のファンクションｃｒｅａｔｅ＿ｐｉｅｃｅ＿ｇｒａｍｍａｒ（ライン２２〜４１）を呼び出して、ブランチ中の各ピースについてのルールを作成し、このルールを追加しており、このルールは、このブランチシンボルをこのピースシーケンスに再書込みする（すなわち、これらのピースを一緒に連結する）。ある表現が、「−」またはピース区切り記号として使用される他のキャラクタを含んでいる場合、この表現はまた、ピースと考えられ、特にこれらのピースが一緒に連結されるときには、一般的にオプションのピースと考えられることに留意されたい。したがって、「ＡＸＤ−１３４」を含む部品番号については、ユーザは、「Ａ  Ｘ  Ｄ  ｄａｓｈ  ｏｎｅ  ｔｗｏ  ｔｈｒｅｅ」または「Ａ  Ｘ  Ｄ  ｏｎｅ  ｔｗｏ  ｔｈｒｅｅ」（すなわち、ダッシュは、発話されない）と言う可能性もあるが、この文法は、これらの発話を同等に考えることになる。ダッシュ、スラッシュなどのキャラクタは、これらの文法ルールにおいてはオプションとして実施されることに留意されたい。
【００４４】
この第３のファンクションｃｒｅａｔｅ＿ｐｉｅｃｅ＿ｇｒａｍｍａｒは、ピースについてのルールを作成する。ルールは、ファンクションｇｒａｍ．ａｄｄ．ｒｕｌｅ（ＬＨＳ，ＲＨＳ）によって追加され、ここでＬＨＳおよびＲＨＳは、ルールの左辺および右辺を示す。
【００４５】
ピース処理は、オプションとして、アルファニューメリック表現の多数の形式中に存在することもある一部の類似性を利用することができる。例えば、１つまたは複数のディジットシーケンスの発話変化の認識が、よく理解される。したがって、「ＡＸＤ−１３４」を含む部品番号では、ユーザは、「Ａ  Ｘ  Ｄ  ｏｎｅ  ｔｈｒｅｅ  ｆｏｕｒ」、「Ａ  Ｘ  Ｄ  ｏｎｅ  ｔｈｉｒｔｙ  ｆｏｕｒ」、「Ａ  Ｘ  Ｄ  ｏｎｅ  ｈｕｎｄｒｅｄ  ａｎｄ  ｔｈｉｒｔｙ  ｆｏｕｒ」などと言う可能性もある。「＼ｄ３」としての正規表現中で、ピースとして表される数字シーケンスまたはディジットセット「１３４」は、この場合にピースルール生成モジュール２１０で識別することができ、ここでピースルール生成モジュール２１０は、文法ルールの記憶済みのライブラリ２１４にアクセスして、このタイプのディジットセットを認識するために使用される文法ルールを取得する。この記憶済みのライブラリ２１４はまた、例えば「＼ｄ｛１−３｝」などの範囲によって定義されるオプションの長さのディジットセットを認識するための文法ルールを含むこともできる。この記憶済みのライブラリ２１４は、ディジットセットについての文法ルールだけに限定されることはない。しかし、それが最も一般的な可能性もある。変換アルゴリズムにおいて、ライン２６〜３４は、このライブラリからルールを取得することによって、ディジットセットを識別し、処理する。
【００４６】
ピース処理が、ライブラリ中の記憶済み文法ルールを有するピースを識別せず、あるいは、処理中のピースがライブラリ２１４中の記憶済み文法ルールを有するタイプのものでない場合には、このピースの特徴が識別されて、このピースについての文法ルールの豊富な１組がもたらされる。この変換アルゴリズム中では、この処理は、ライン３６〜４１において制御される。
【００４７】
実施例として、ピース正規表現「［Ａ−Ｃ］｛１−３｝」を使用して、ピースルール生成モジュール２１０は、このピース中の個々のキャラクタを識別し、対応するルールを生成することができる。しかし、さらに、ピースルール生成モジュールは、これらの各キャラクタについての適切な代替発話表現を識別し、これらの代替キャラクタ発話表現のそれぞれについての文法２０２中の対応するルールを含むことができる。この変換アルゴリズムにおいて、ライン３６〜３７で呼び出され、ライン８３〜９６で指定されるファンクションｃｒｅａｔｅ＿ｃｈａｒｓｅｔ＿ｇｒａｍｍａｒは、このキャラクタセットのすべてのエレメントをカバーする文法ルールを作成し、ここで、各キャラクタについてのすべてのキャラクタ表現は、「ケース（ｃａｓｅ）」ステートメント中で定義され、このケースステートメントについては、実施例として「ｃａｓｅ‘０’」が提供されている。
【００４８】
ライン８８〜９２に示すように、ルールが、「０」の発音について「ｚｅｒｏ」ならびに「ｏｈ」としてこの文法に追加される。図に示していない別の実施例では、キャラクタ「Ａ」の発音について「ａ」または「ａｌｐｈａ」として文法ルールが提供されるはずである。図２において、代替キャラクタ発話表現に関連するデータは、２１６に示されており、ライブラリに記憶し、またはピースルール生成モジュール２１０中で符号化することができる。
【００４９】
前述のような代替キャラクタ発話表現についてのルールを識別し生成するのに追加して、ピースルール生成モジュール２１０は、代替キャラクタシーケンス発話表現も識別することができる。以上の実施例「［Ａ−Ｃ］｛１−３｝」を使用して、「Ａ  Ｂ」、「Ａ」、「Ａ  Ｂ  Ｃ」などの表現に加えて、ユーザは、「ＡＡ」についての「ｄｏｕｂｌｅ  Ａ」、または「ＢＢＢ」についての「ｔｒｉｐｌｅ  Ｂ」を提供することもできる。この変換アルゴリズムにおいて、ライン４２〜８２で定義され、ライン３９で最初に呼び出され、もし必要ならピース表現に応じて再帰的に呼び出されるファンクションｃｒｅａｔｅ−ｒｅｐｅａｔｓは、０回の出現（ライン４８〜５２）、１回の出現（ライン５４〜５７）、複数回の出現（ライン５８〜８０）についてのプレフィックス付き文法ルールを作成する（このファンクションが、ライン６４〜７０における「ｄｏｕｂｌｅ  ｚｅｒｏ」および３回以上の出現（ライン７２〜８０）のような表現をどのようにモデル化するかについて留意されたい）。もちろん、かかる「４重部」のような代替キャラクタシーケンス発話表現、またはキャラクタシーケンスについての他の任意の発話表現についての他の変形も含めることができる。図２において、代替キャラクタシーケンス発話表現に関連するデータは、２１８に示されており、ライブラリに記憶し、またはピースルール生成モジュール２１０中で符号化することができる。
【００５０】
一部のアルファニューメリック表現においては、同一となる一部のピースが存在する。これらのピースが、ディジットセットなど記憶済み文法ライブラリ２１４中に見出されるような記憶済みの文法ルールセットを有するピースに対応する場合、これらのピースを文法２０２に追加することができる。しかし、たとえこのピースがライブラリ２１４中の文法ルールに対応しないとしても、これらのピースは、この表現内で同一になる可能性がある。例えば、表現「［Ａ−Ｚ］｛１−２｝−＼ｄ｛２｝−［Ａ−Ｚ］｛１−２｝」において、「［Ａ−Ｚ］｛１−２｝」は２回出現する。したがって、さらなる実施形態において、ピースルール生成モジュール２１０は、このピースについてのルールの生成を再び反復する必要がないように、同一のピースを識別し、そのピースの以前の処理から生成された文法ルールを使用するようになっている。この変換アルゴリズムにおいて、この表現が処理されるときに、ハッシュテーブル（ライン４３〜４６）をメカニズムとして使用して、各ピース部分を追跡するが、他のメカニズムも使用することもできる。この表現のさらなる処理中に同一のピースに出合った場合には、以前に生成済みのルールをコピーすることができる。図２において、この態様は、処理済みのピース部分についてのルールを記憶するライブラリ２２０によって示されている。
【００５１】
以上で指摘したように、文法２０２の認識ルールの生成は、「０」についての「ｚｅｒｏ」および「ｏｈ」、「ＡＡ」についての「ｄｏｕｂｌｅ  Ａ」、「２３」についての「ｔｗｅｎｔｙ  ｔｈｒｅｅ」のような代替発話表現についての文法ルールの生成を含んでいる。さらなる実施形態においては、この音声認識装置からの出力が一貫しており、その結果この音声認識装置からの出力を受け取るアプリケーションが、「ＡＡ」と「ｄｏｕｂｌｅ  Ａ」が同等であると見分ける必要がないように正規化も行われる。
【００５２】
第１の実施形態において、正規化は、文法２０２についてのルールを符号化しまたは書いている間に行うことができる。特に、ルールを生成するピースを処理する際に、ピースルール生成モジュール２１０を符号化して代替キャラクタ発話表現および代替キャラクタシーケンス発話表現を識別することが好ましいので、このピースルール生成モジュールは、必要に応じて文法２０２中の正規化情報を提供することができる。実施例として、文法２０２がＸＭＬ意味解釈タグを使用してＷ３ＣのＳＲＧＳ（Ｓｐｅｅｃｈ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ｇｒａｍｍａｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ音声認識文法仕様）で書かれる場合には、この文法中のタグが、正規化をもたらす。実施例として、このＷ３Ｃ  ＳＲＧＳフォーマットで書かれた「ＡＡ」の認識についてのルールは、以下の形式を取ることができる。
【００５３】
【表５】
2006085160.tif 000007
【００５４】
式中で、
【００５５】
【表６】
2006085160.tif 000008
【００５６】
は、この正規化された出力を示している。この変換アルゴリズムに特に示してはいないが、このアルゴリズムでは、ルールトークンが生成されるときに、意味解釈タグをこのルールトークンに付けることができ、その結果この文法に基づいて取得される認識出力は適切に正規化されるようになる。キャラクタシーケンスについての正規化については、以上で示してきたが、単一キャラクタ、ならびにディジットシーケンスについての正規化も同様にして行うことができる。
【００５７】
図２の例示の実施形態においては、ディジットセットまたはシーケンスについての文法ルールが、開発され、ライブラリ２１４に記憶されている。したがって、ディジットセットまたは他のピースについての正規化もこれらの文法ルールと共に記憶することができる。
【００５８】
代替実施形態においては、正規化ルールは、文法２０２とは別に記憶することができる。例えば、正規化は、文法２０２に関連する正規化マップデータベース２２６に正規化マッピング（例えば、「Ａ  Ａ」「ＡＡ」、「ｄｏｕｂｌｅ  Ａ」「ＡＡ」）を記憶することによって実現することができる。この適切な正規化マッピングは、ピース処理中にピースルール生成モジュール２１０によって実現されるか、あるいは適切なマッピングは、ディジットセットについてなど、対応する記憶済みの文法ルールについてライブラリ２１４から取得することができる。この形式の正規化では、この文法は、「ｄｏｕｂｌｅ  Ａ」など、このユーザの実際の発話を示す。しかし、この音声認識装置がこの結果を戻す前に、この音声認識装置は、正規化された形式がこの結果について存在するかどうかを検査して調べ、それが存在する場合にはこの結果を正規化結果で置き換える。この音声認識装置の実装または動作は、これらの各技法によって変化するが、この開発者は、このアルファニューメリック表現の表現を提供する必要があるにすぎず、この場合には、このシステムでは、この開発者が提供する表現が指定するフォーマットに適切に正規化することができる代替発話表現が考慮される。
【００５９】
一実施形態においては、文法２０２は、プレフィックス最適化を用いて作成される。これにより、認識中に代替仮説を最小限にすることによって、音声認識装置で効率的に機能する文法が実現される。プレフィックス最適化なしでは、文法は別々のルールを含む可能性があり、これについては、図４Ａにも図示されている。
【００６０】
Ｓ→ａＢ
Ｓ→ａＣ
しかし、以上で指摘したように、この音声認識装置が「ａ」を認識する場合には、この音声認識装置では、２つの仮説「ａＢ」および「ａＣ」を考慮する必要がある。
【００６１】
対照的に、プレフィックス最適化文法においては、これらのルールは、以下の形式の、図４Ｂに示されるものとなるはずである。
【００６２】
Ｓ→ａＤ
Ｄ→Ｂ
Ｄ→Ｃ
このようにして、「ａ」の認識に際しては、この音声認識装置では、１つの仮説、「ａＤ」を考慮する必要があるだけである。
【００６３】
以上の変換アルゴリズムにおいて、この文法を形成するルールは、左辺「ＬＨＳ」を含む最上位ノード、および右辺「ＲＨＳ」を形成するアレイとして記憶される他のノードを有する（例えば、図４Ｂの図表現によって示される形式の）プレフィックスツリーとして記憶される。このようにして、図４Ａのルールのようなルールがこの文法に追加されるとき、プレフィックス最適化は、すでに図４Ｂにおけるプレフィックスツリーを用いて実装されている。この変換アルゴリズムにおいては、ファンクションｇｒａｍ．ａｄｄ．ｒｕｌｅ（  ）がこの文法に対してこれらの各ルールを加え、または後に追加しており、これについては図２においてルール追加モジュール２１２によって示されている。この変換アルゴリズムにおけるように、ルールが最初にプレフィックスツリーとして記憶される場合には、ＸＭＬを使用したＷ３Ｃ  ＳＲＧＳフォーマットなど任意の形式の文法への適切な変換を、ルール追加モジュール２１２によって実装することもできる。
【００６４】
要約すれば、本発明の態様により、アルファニューメリック概念について正規表現やマスクなどの適切な表現から高品質音声認識文法を自動的に構築することができるようになる。自動的文法作成により、開発者は、アプリケーション特有のアルファニューメリック概念について効率的に正確に機能する文法を作成する困難なタスクから解放される。さらなる特徴により、この作成される文法は、プレフィックス構造を使用することによって最適化し、または例えば適切な意味解釈タグを割り当てることによって正規化を行い、あるいはその両方を行うことができるようになる。このようにして、本明細書中で説明するこの方法およびシステムでは、音声認識文法オーサリング経験のほとんどない開発者のための文法開発が非常にスピードアップされる。
【００６５】
特定の実施形態に関して本発明を説明してきたが、本発明の趣旨および範囲を逸脱することなく、形態および詳細において変更を行うことができることが、当業者には理解されよう。
【図面の簡単な説明】
【００６６】
【図１】本発明を実施することができる一般的なコンピューティング環境のブロック図である。
【図２】アルファニューメリック概念またはアルファニューメリック表現の表現に基づいて文法を生成するためのシステムを概略的に示すブロック図である。
【図３】文法を作成するための流れ図である。
【図４Ａ】プレフィックス最適化が行われていない文法の一部分の図表現である。
【図４Ｂ】プレフィックス最適化が行われた文法の一部分の図表現である。
【符号の説明】
【００６７】
１２０  処理装置
１３０  システムメモリ
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  他のプログラムモジュール
１３７  プログラムデータ
１４０  着脱不能不揮発性メモリインターフェース
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  他のプログラムモジュール
１４７  プログラムデータ
１５０  着脱可能不揮発性メモリインターフェース
１６０  ユーザ入力インターフェース
１６１  ポインティングデバイス
１６２  キーボード
１６３  マイクロフォン
１７０  ネットワークインターフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  ワイドエリアネットワーク
１８０  リモートコンピュータ
１８５  リモートアプリケーションプログラム
１９０  ビデオインターフェース
１９１  モニタ
１９５  出力ペリフェラルインターフェース
１９６  プリンタ
１９７  スピーカ
２００  文法生成モジュール
２０２  文法
２０４  オプションのコンバータ
２０６  解析モジュール
２０８  ブランチルール生成モジュール
２１０  ピースルール生成モジュール
２１２  ルール追加モジュール
２１４  記憶済み文法ライブラリ
２１６  代替キャラクタ発話表現
２１８  代替キャラクタシーケンス発話表現
２２０  処理済みピースについての記憶済みルール
２２６  正規化マップデータベース
【図１】
2006085160.tif 000009
【図２】
2006085160.tif 000010
【図３】
2006085160.tif 000011
【図４Ａ】
2006085160.tif 000012
【図４Ｂ】
2006085160.tif 000013