(57)【要約】【課題】音声認識ソフトウェアアプリケーションで使用するニーモニック言語モデルを作成するためのシステムおよび方法を提供すること。【解決手段】本方法は、事前定義の大量の文字本体を含むｎグラム言語モデルを生成することを含み、そのｎグラム言語モデルは事前定義の大量の文字本体からの少なくとも１つの文字を含む。本方法はさらに、その少なくとも１つの文字のそれぞれに対して新しい言語モデル（ＬＭ）トークンを構築すること、文字の発音表記を取得するために、事前定義の発音辞書に対応する少なくとも１つの文字のそれぞれに対する発音を抽出すること、代替の発音辞書を作成するために文字の発音表記に対応する少なくとも１つの文字のそれぞれに対する少なくとも１つの代替の発音を作成すること、音声認識ソフトウェアアプリケーションで使用するためのｎグラム言語モデルをコンパイルすることを含む。【選択図】図３
2006146193.tif 000002
【特許請求の範囲】
【請求項１】
音声認識ソフトウェアアプリケーションで使用するためのニーモニック言語モデルを作成する方法であって、
事前定義の大量の文字本体を含むｎグラム言語モデルを生成するステップであり、前記ｎグラム言語モデルは、前記事前定義の大量の文字本体からの少なくとも１つの文字を含むステップと、
前記少なくとも１つの文字のそれぞれに対して新しい言語モデル（ＬＭ）トークンを構築するステップと、
文字の発音表記を取得するために、事前定義の発音辞書に対応する前記少なくとも１つの文字のそれぞれに対する発音を抽出するステップと、
代替の発音辞書を作成するために、前記文字の発音表記に対応する前記少なくとも１つの文字のそれぞれに対する少なくとも１つの代替の発音を作成するステップと、
前記音声認識ソフトウェアアプリケーションで使用するための前記ｎグラム言語モデルをコンパイルするステップとを含み、前記言語モデルを前記コンパイルするステップは、前記新しい言語モデルトークンおよび前記代替の発音辞書に対応していることを特徴とする方法。
【請求項２】
前記事前定義の大量の文字本体は、小文字、大文字、数字、および事前定義の図形的な文字のうちの少なくとも１つを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記事前定義の大量の文字本体、前記事前定義の発音辞書、および前記代替の発音辞書のうちの少なくとも１つは、英語に対応していることを特徴とする請求項２に記載の方法。
【請求項４】
前記構築するステップは、前記少なくとも１つの文字の前記それぞれに対するニーモニックスペリングに対応する前記少なくとも１つの文字のそれぞれに対する新しい言語モデルトークンを構築するステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記作成するステップは、前記代替の発音を形成するために、前記文字の発音表記に、前記新しい言語モデルトークンを前に付加し、かつ長い無音「ｓｉｌ」を後ろに付加するステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記少なくとも１つの文字が大文字である場合、前記作成するステップは、前記新しい言語モデルに対して「ｋ  ａｅ  ｐ  ｉｈ  ｔ  ａｘ  ｌ」をさらに前に付加するステップを含むことを特徴とする請求項１に記載の方法。
【請求項７】
ｎグラム言語モデルを前記コンパイルするステップは、標準のコンパイリングツールを用いてコンパイルすることを特徴とする請求項１に記載の方法。
【請求項８】
前記標準のコンパイリングツールは、ＪＩＴ（Ｊｕｓｔ−Ｉｎ−Ｔｉｍｅ）コンパイリングツールであることを特徴とする請求項１に記載の方法。
【請求項９】
前記ｎグラム言語モデルは、事前定義のフォーマットを用いて生成されることを特徴とする請求項１に記載の方法。
【請求項１０】
前記事前定義のフォーマットは、ＡＲＰＡフォーマットであることを特徴とする請求項１に記載の方法。
【請求項１１】
音声認識ソフトウェアアプリケーションで使用するためのニーモニック言語モデルを作成する方法であって、
事前定義の大量の文字本体を含むｎグラム言語モデルを生成するステップであり、前記ｎグラム言語モデルは、前記事前定義の大量の文字本体からの少なくとも１つの文字を含むステップと、
文字の発音表記を取得するために、事前定義の発音辞書に対応する前記少なくとも１つの文字のそれぞれに対する発音を抽出するステップと、
代替の発音辞書を作成するために、前記文字の発音表記に対応する前記少なくとも１つの文字のそれぞれに対する少なくとも１つの代替の発音を作成するステップと
を含むことを特徴とする方法。
【請求項１２】
前記生成するステップはさらに、前記少なくとも１つの文字の前記それぞれに対するニーモニックスペリングに対応する前記少なくとも１つの文字のそれぞれに対する新しい言語モデル（ＬＭ）トークンを構築するステップを含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記事前定義の大量の文字本体は、小文字、大文字、数字、および事前定義の図形的な文字のうちの少なくとも１つを含むことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記事前定義の大量の文字本体、前記事前定義の発音辞書、および前記代替の発音辞書のうちの少なくとも１つは、英語に対応していることを特徴とする請求項１１に記載の方法。
【請求項１５】
前記作成するステップはさらに、前記代替の発音を形成するために前記文字の発音表記に、新しい言語モデルトークンを前に付加し、長い無音「ｓｉｌ」を後ろに付加するステップと、
前記音声認識ソフトウェアアプリケーションで使用するための前記ｎグラム言語モデルをコンパイルするステップとを含み、前記ｎグラム言語モデルを前記コンパイルするステップは、前記新しい言語モデルトークンおよび前記代替の発音辞書に対応していることを特徴とする請求項１１に記載の方法。
【請求項１６】
前記少なくとも１つの文字が大文字である場合、前記作成するステップは、前記新しい言語モデルに「ｋ  ａｅ  ｐ  ｉｈ  ｔ  ａｘ  ｌ」をさらに前に付加するステップを含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
標準のコンパイリングツールを用いて前記ｎグラム言語モデルをコンパイルするステップをさらに含むことを特徴とする請求項１１に記載の方法。
【請求項１８】
前記標準のコンパイリングツールは、ＪＩＴ（Ｊｕｓｔ−Ｉｎ−Ｔｉｍｅ）コンパイリングツールであることを特徴とする請求項１７に記載の方法。
【請求項１９】
前記ｎグラム言語モデルは、事前定義のフォーマットを用いて生成されることを特徴とする請求項１１に記載の方法。
【請求項２０】
前記事前定義のフォーマットは、ＡＲＰＡフォーマットであることを特徴とする請求項１１に記載の方法。
【請求項２１】
音声認識ソフトウェアアプリケーションで使用するためのニーモニック言語モデルを作成する方法を実施するためのシステムであって、
前記音声認識ソフトウェアアプリケーションおよび少なくとも１つのターゲットソフトウェアアプリケーションを記憶するための記憶装置と、
前記システムにデータおよびコマンドを音声で入力するための入力装置と、
前記入力されたデータを表示するための表示画面を含む表示装置と、
前記記憶装置、前記入力装置、および前記表示装置と通信して、前記音声認識ソフトウェアアプリケーションに、前記表示画面上に前記入力データを表示させ、前記入力されたコマンドに対応する前記入力データを処理させる命令を受け取ることができる処理装置と
を備えることを特徴とするシステム。
【請求項２２】
前記記憶装置上に配置される音響モデルソフトウェアモジュールおよび言語モデルソフトウェアモジュールをさらに含むことを特徴とする請求項２１に記載のシステム。
【請求項２３】
ＡＲＰＡフォーマットをコンパイルできる標準のコンパイリングツールであるコンパイラをさらに含むことを特徴とする請求項２１に記載のシステム。
【請求項２４】
前記記憶装置は、光媒体装置、磁気媒体装置、内部記憶装置、外部記憶装置、取外し可能記憶装置、および取外し不能記憶装置のうちの少なくとも１つであることを特徴とする請求項２１に記載のシステム。
【請求項２５】
前記入力装置はマイクロフォンであることを特徴とする請求項２１に記載のシステム。
【請求項２６】
前記表示装置は、ＣＲＴ、ＬＣＤ、およびプラズマ表示装置のうちの少なくとも１つであることを特徴とする請求項２１に記載のシステム。
【請求項２７】
音声認識ソフトウェアアプリケーションで使用するためのニーモニック言語モデルを作成する方法を処理装置に実施させるための命令を含むマシン可読コンピュータプログラムコードであって、前記処理装置は記憶装置および表示装置と通信し、また前記記憶装置は音声認識ソフトウェアアプリケーションを含んでおり、前記方法は、
事前定義の大量の文字本体を含むｎグラム言語モデルを生成するステップであり、前記ｎグラム言語モデルは、前記事前定義の大量の文字本体からの少なくとも１つの文字を含むステップと、
前記少なくとも１つの文字のそれぞれに対して新しい言語モデル（ＬＭ）トークンを構築するステップと、
文字の発音表記を取得するために、事前定義の発音辞書に対応する前記少なくとも１つの文字のそれぞれに対する発音を抽出するステップと、
代替の発音辞書を作成するために、前記文字の発音表記に対応する前記少なくとも１つの文字のそれぞれに対する少なくとも１つの代替の発音を作成するステップと、
前記音声認識ソフトウェアアプリケーションで使用するための前記ｎグラム言語モデルをコンパイルするステップとを含み、前記言語モデルを前記コンパイルするステップは、前記新しい言語モデルトークンおよび前記代替の発音辞書に対応していることを特徴とするマシン可読コンピュータプログラムコード。
【請求項２８】
マシン可読コンピュータプログラムコードを用いてエンコードされた媒体であって、前記プログラムコードは、音声認識ソフトウェアアプリケーションで使用するためのニーモニック言語モデルを作成する方法を処理装置に実施させるための命令を含み、前記処理装置は記憶装置および表示装置と通信し、前記記憶装置は音声認識ソフトウェアアプリケーションを含んでおり、前記方法は、
事前定義の大量の文字本体を含むｎグラム言語モデルを生成するステップであり、前記ｎグラム言語モデルは、前記事前定義の大量の文字本体からの少なくとも１つの文字を含むステップと、
前記少なくとも１つの文字のそれぞれに対して新しい言語モデル（ＬＭ）トークンを構築するステップと、
文字の発音表記を取得するために、事前定義の発音辞書に対応する前記少なくとも１つの文字のそれぞれに対する発音を抽出するステップと、
代替の発音辞書を作成するために、前記文字の発音表記に対応する前記少なくとも１つの文字のそれぞれに対する少なくとも１つの代替の発音を作成するステップと、
前記音声認識ソフトウェアアプリケーションで使用するための前記ｎグラム言語モデルをコンパイルするステップとを含み、前記言語モデルを前記コンパイルするステップは、前記新しい言語モデルトークンおよび前記代替の発音辞書に対応していることを特徴とする媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、音声認識ソフトウェアアプリケーションに関し、より詳細には、音声認識アプリケーションを介してフレーズの文字を処理する方法に関する。
【背景技術】
【０００２】
音声は、おそらく人間によるコミュニケーションの最も古い形式であり、現在、多くの科学者が、音声を介してコミュニケーションする能力は人間の脳の生態中に生まれつき備わっているものと考えている。したがって、ユーザが音声などのＮＵＩ（Ｎａｔｕｒａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を用いてコンピュータとコミュニケーションできるようになることは長い間求められて来た目標である。実は、最近、その目標の取得に向けて大きな進展があった。例えば、いくつかのコンピュータは、現在、コンピュータを動作するためのコマンドと、テキストに変換される口述（ｄｉｃｔａｔｉｏｎ）とを共にユーザが口頭で入力できる音声認識アプリケーションを含んでいる。そのアプリケーションは、通常、マイクロフォンを通して得られた音声サンプルを周期的に記録し、ユーザが話した音素を認識するためにそのサンプルを分析し、発話された音素により構成された単語を識別することによって動作する。
【０００３】
音声認識はより一般のものとなりつつあるが、経験豊富なユーザを失望させ、初めてのユーザを疎外する傾向のある従来の音声認識アプリケーションを使用するにはいくつかの欠点がまだある。このような欠点の１つには、話者とコンピュータの間の対話が含まれる。例えば、人間の対話の場合、人々は、聞いている人からの知覚される反応に基づいて自分の発話を制御することが多い。したがって、会話中、聞いている人は、自分に言われていることを理解していることを示すために、うなずいたり、「はい」または「うん（ｕｈ−ｈｕｈ）」などの音声応答を行うことによってフィードバックすることができる。さらに、聞いている人が、自分に言われていることを理解しない場合、疑問のある表情をしたり、身を乗り出したり、あるいは他の音声または非音声の合図をすることもできる。そのフィードバックに応答して、話者は、通常、話している方法を変更し、いくつかの場合では、話者は、聞いている人との対話方法の変更を、普通、その聞いている人に気付かれずに、速度をもっと遅くし、より大きな声で話し、より頻繁に休止を入れ、あるいはその説明を常に繰り返すようにしてもよい。したがって、会話におけるフィードバックは、聞いている人が話を理解しているかどうかを話者に知らせる非常に重要な要素である。しかし、残念なことに、従来の音声認識アプリケーションは、マン−マシンインターフェースにより可能な音声入力／コマンドに対応するこの種の「ＮＵＩ（Ｎａｔｕｒａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）」フィードバックをまだ提供することができない。
【０００４】
現在、音声認識アプリケーションは、約９０％から９８％の認識精度を達成している。それは、ユーザが典型的な音声認識アプリケーションを使用して文書に口述するとき、音声認識アプリケーションによって、その約９０％から９８％の正確さでユーザ音声が認識されることを意味している。したがって、音声認識アプリケーションによって記録される１００個の文字ごとに、約２個から１０個の文字を訂正する必要があることになる。具体的には、既存の音声認識アプリケーションは、「ｓ」（例えば、エス）、および「ｆ」（例えば、エフ）など、特定の文字を認識することが困難な傾向がある。その問題に取り組むために既存の音声認識アプリケーションを使用する１つの手法には、ユーザに、どの文字を発音しているかを明確にするために事前定義のニーモニックを使用できるようにすることがある。例えば、口述するときに、ユーザは、「ａｐｐｌｅ（リンゴ）のａ」、または「ｂｏｙ（少年）のｂ」ということができる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、残念ながら、その手法は、音声認識アプリケーションに関するユーザの使い勝手のよさを制限しがちな点に関連する欠点がある。１つの欠点は、標準の軍のアルッファベット（例えば、ａｌｐｈａ（アルファ）、ｂｒａｖｏ（ブラボー）、ｃｈａｒｌｉｅ（チャーリー）．．．）とすることの多い事前定義のニーモニックを文字ごとに使用することを含む。その理由は、（例えば、「Ｉｇｌｏｏ（イグルー）のＩ」などと）口述するときに話すニーモニックのリストがユーザに与えられたとしても、ユーザは、自分自身のニーモニックアルファベット（例えば、「Ｉｎｄｉａ（インド）のＩ」を作成し、事前定義のニーモニックアルファベットを無視することが多いためである。予想できるように、音声認識アプリケーションは、非事前定義のニーモニックを認識しないので、文字認識エラーが当たり前のことになる。他の欠点は、いくつかの文字は、それらに関連する主要なニーモニック（すなわち、＞８０％）の小集合（Ａｐｐｌｅ（リンゴ）のＡ、Ａｄａｍ（アダム）のＡ、またはＤｏｇ（犬）のＤ、Ｄａｖｉｄ（デービッド）のＤ、またはＺｅｂｒａ（シマウマ）のＺ、Ｚｕｌｕ（ズールー）のＺ）を有するが、一方、他の文字はそれらに関連する主要なニーモニックを有していない（例えば、Ｌ、Ｐ、Ｒ、およびＳ）。このことは、適切な汎用言語モデルの作成を困難にするだけではなく、事実上不可能にする。
【０００６】
したがって、音声認識ソフトウェアアプリケーションに言語を伝えることは、なお比較的多数のエラーを生むことになり、またそれらのエラーにより、よく使用するユーザをいらいらさせるだけではなく、同様に初めてのユーザも失望させることが多く、音声認識アプリケーションを使用し続けることをユーザが拒否する結果になる可能性がある。
【課題を解決するための手段】
【０００７】
音声認識ソフトウェアアプリケーションで使用するためのニーモニック言語モデルを作成する方法を提供する。本方法は、事前定義の大量の文字本体、例えば、文字、数字、記号などを含むｎグラム言語モデルを生成することを含み、そのｎグラム言語モデルは、事前定義の大量の文字本体からの少なくとも１つの文字を含む。本方法はさらに、少なくとも１つの文字のそれぞれに対して新しい言語モデル（ＬＭ）トークンを構築すること、および文字の発音表記を取得するために、事前定義の発音辞書に対応する少なくとも１つの文字のそれぞれに対する発音を抽出することを含む。さらに、本方法は、代替の発音辞書を作成するために、文字の発音表記に対応する少なくとも１つの文字のそれぞれに対する少なくとも１つの代替の発音を作成すること、および音声認識ソフトウェアアプリケーションで使用するためにｎグラム言語モデルをコンパイルすることを含み、その言語モデルのコンパイルは、新しい言語モデルトークンおよび代替の発音辞書に対応している。
【０００８】
音声認識ソフトウェアアプリケーションで使用するためのニーモニック言語モデルを作成する方法を提供する。本方法は、事前定義の大量の文字本体を含むｎグラム言語モデルを生成することを含み、そのｎグラム言語モデルは、事前定義の大量の文字本体からの少なくとも１つの文字を含む。さらに、本方法は、文字の発音表記を取得するために、事前定義の発音辞書に対応する少なくとも１つの文字のそれぞれに対する発音を抽出すること、および代替の発音辞書を作成するために、文字の発音表記に対応する少なくとも１つの文字のそれぞれに対して少なくとも１つの代替の発音を作成することを含む。
【０００９】
音声認識ソフトウェアアプリケーションで使用するためのニーモニック言語モデルを作成する方法を実施するためのシステムを提供する。本システムは、音声認識ソフトウェアアプリケーションおよび少なくとも１つのターゲットソフトウェアアプリケーションを記憶するための記憶装置を含む。本システムはさらに、データおよびコマンドを音声でシステムに入力するための入力装置、入力されたデータを表示するための表示画面を備える表示装置、および処理装置を含む。処理装置は、記憶装置、入力装置、および表示装置と通信可能であり、したがって、音声認識ソフトウェアアプリケーションに、表示画面に入力データを表示させ、入力されたコマンドに対応する入力データを処理させる命令を受け取ることができる。
【００１０】
マシン可読コンピュータプログラムコードを提供する。本プログラムコードは、音声認識ソフトウェアアプリケーションで使用するためのニーモニック言語モデルを作成する方法を処理装置に実施させるための命令を含み、その処理装置は、音声認識ソフトウェアアプリケーションを含む記憶装置および表示装置と通信可能である。本方法は、事前定義の大量の文字本体を含むｎグラム言語モデルを生成することを含み、そのｎグラム言語モデルは事前定義の大量の文字本体からの少なくとも１つの文字を含んでおり、さらに本方法は、その少なくとも１つの文字のそれぞれに対して、新しい言語モデル（ＬＭ）トークンを構築することを含む。本方法はさらに、文字の発音表記を取得するために、事前定義の発音辞書に対応する少なくとも１つの文字のそれぞれに対して発音を抽出すること、および代替の発音辞書を作成するために、文字の発音表記に対応して少なくとも１つの文字のそれぞれに対する少なくとも１つの代替の発音を作成することを含む。さらに、本方法は、音声認識ソフトウェアアプリケーションで使用するためのｎグラム言語モデルをコンパイルすることを含み、その言語モデルのコンパイルは、新しい言語モデルトークンおよび代替の発音辞書に対応している。
【００１１】
マシン可読コンピュータプログラムコードでエンコードされた媒体を提供する。本プログラムコードは、音声認識ソフトウェアアプリケーションで使用するためのニーモニック言語モデルを作成する方法を処理装置に実施させる命令を含み、その処理装置は記憶装置および表示装置と通信可能であり、その記憶装置は、音声認識ソフトウェアアプリケーションを含む。本方法は、事前定義の大量の文字本体を含むｎグラム言語モデルを生成することを含み、そのｎグラム言語モデルは、事前定義の大量の文字本体からの少なくとも１つの文字を含んでおり、さらに本方法は、その少なくとも１つの文字のそれぞれに対して新しい言語モデル（ＬＭ）トークンを構築することを含む。本方法はさらに、文字の発音表記を取得するために、事前定義の発音辞書に対応する少なくとも１つの文字のそれぞれに対する発音を抽出すること、および代替の発音辞書を作成するために、文字の発音表記に対応する少なくとも１つの文字のそれぞれに対する少なくとも１つの代替の発音を作成することを含む。さらに、本方法は、音声認識ソフトウェアアプリケーションで使用するためのｎグラム言語モデルをコンパイルすることを含み、その言語モデルのコンパイルは、新しい言語モデルトークンおよび代替の発音辞書に対応している。
【００１２】
本発明の前述および他の機能ならびに利点は、添付の図面と共に以下の例示的な諸実施形態の詳細な説明を読めばより完全に理解されよう。図中、同様なエレメントは、いくつかの図で同様の番号が付されている。
【発明を実施するための最良の形態】
【００１３】
大部分の音声認識アプリケーションは、所与の音響的な発話のトランスクリプト（ｔｒａｎｓｃｒｉｐｔ）を単語単位で決定するために典型的な音響パターンおよび典型的な単語パターンのモデルを採用する。次いで、その単語パターンは音声認識アプリケーションによって使用され、それは、総称的に言語モデル（ＬＭ）と呼ばれる。したがって、言語モデルは単語のシーケンス、および所与のテキスト中で生ずるそのシーケンスの確率を表す。したがって、音声認識アプリケーションにおいて有効であるために、言語モデルは、大量のテキスト訓練データから構築されなければならない。ニーモニックは、デスクトップの音声認識ソフトウェアアプリケーションを用いて単語のスペルを訂正するために使用するとき、多大の効力を発揮するように使用できることも理解されたい。例えば、１つのシナリオは、ユーザがニーモニックを使用せずに単語のスペリングを試み、音声認識ソフトウェアアプリケーションが、伝えられた文字のうちの１つ（または複数）を誤認識した状況を含むこともできる。ニーモニックを使用して文字を再度話すことは、ユーザがその文字の再発話に成功する確率を劇的に高めることになる。
【００１４】
図１を参照すると、典型的な音声認識システム１００を示すブロック図が示されており、それは、処理装置１０２、入力装置１０４、記憶装置１０６、および表示装置１０８を含み、音響モデル１１０および言語モデル１１２は、記憶装置１０６に記憶される。音響モデル１１０は、通常、どの単語が話されたかをデコーダが決定できるようにする情報を含む。音響モデル１１０は、入力装置１０４により提供されるスペクトルパラメータに基づいて一連の音素の仮説を立てることによってそれを達成する。音素とは、意味の特徴を搬送できる言語における最小の音声単位のことであり、通常、辞書および隠れマルコフモデルの使用を含む。例えば、音響モデル１１０は、単語およびそれに対応する発音の辞書（語彙目録（ｌｅｘｉｃｏｎ））を含むことができ、その発音は、所与の音素シーケンスが共に生じて１つの単語を形成する確率のインディケータを含む。さらに、音響モデル１１０はまた、独特の音素（ｄｉｓｔｉｎｃｔ  ｐｈｏｎｅｍｅｓ）が他の音素のコンテキスト中で生ずる可能性に関する情報も含むことができる。例えば、「トライフォン（ｔｒｉ−ｐｈｏｎｅ）」は、１つの独特の音素が左側に（前に付加され）、他の独特の音素が右側に（後ろに付加された）あるコンテキストで使用される独特の音素である。したがって、音響モデル１１０のコンテンツは、処理装置１０２によって使用され、どの単語が計算したスペクトルパラメータによって表されるかを予測する。
【００１５】
さらに、言語モデル（ＬＭ）１１２は、単語がどのように、またどのような頻度で共に生ずるのかを指定する。例えば、ｎグラム言語モデル１１２は、ある単語が一連の単語の後に続く確率を推定する。その確率値が集合的にｎグラム言語モデル１１２を形成する。次いで、処理装置１０２は、音響モデル１１０を用いて識別された、最適な単語シーケンス仮説中から選択するために、ｎグラム言語モデル１１２からの確率を使用して、そのスペクトルパラメータによって表される可能性が最も高い単語または単語シーケンスを取得する。その最も可能性の高い仮説は、表示装置１０８によって表示することができる。
【００１６】
本明細書で説明する本発明は、ユーザによって入力された音声コマンドを受け取り、認識するために音声認識アプリケーションを使用する汎用コンピュータで実施されるシステムを用いたスタンドアロンの、かつ／または統合されたアプリケーションモジュールのコンテキスト中で記述される。オブジェクト指向アプリケーションのように、アプリケーションモジュールは、クライアントプログラムがアプリケーションモジュールと通信するためにアクセスできる標準のインターフェースを公開することができる。アプリケーションモジュールはまた、ワードプロセッシングプログラム、デスクトップパブリッシングプログラム、アプリケーションプログラムなどのいくつかの異なるクライアントプログラムに、ローカルにかつ／またはＷＡＮ、ＬＡＮおよび／またはインターネットベースの車両などのネットワークを介して、そのアプリケーションプログラムを使用できるようにさせることができる。例えば、アプリケーションモジュールは、ＥメールアプリケーションまたはＭｉｃｒｏｓｏｆｔ（登録商標）Ｗｏｒｄなどの任意のアプリケーションおよび／またはテキストフィールドを有する制御によって、ローカルにまたはインターネットのアクセスポイントを介してアクセスされ、また使用することができる。しかし、本発明の諸態様を述べる前に、本発明に組み込むことが可能な、かつ本発明からの利益を受ける適切なコンピューティング環境の一実施形態を以下に説明する。
【００１７】
図２を参照すると、音声認識ソフトウェアアプリケーションで使用するためのニーモニック言語モデル１１２を作成する方法を実施するためのシステム２００を示すブロック図が示されており、それは、処理装置２０４、システムメモリ２０６、システムバス２０８を含む汎用コンピュータシステム２０２を含み、そのシステムバス２０８が、システムメモリ２０６を処理装置２０４に結合する。システムメモリ２０６は、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）２１０、およびＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）２１２を含むことができる。起動中などに、汎用コンピュータシステム２０２内のエレメント間で情報を転送することのできる基本ルーチンを含んでいるＢＩＯＳ（基本入出力システム）２１４が、ＲＯＭ２１０に記憶されている。汎用コンピュータシステム２０２はさらに、ハードディスクドライブ２１８、例えば、取外し可能磁気ディスク２２２から読み取りもしくはそれに書きこむための磁気ディスクドライブ２２０、およびＣＤ−ＲＯＭディスク２２６を読み取るための、または他の光媒体から読み取りもしくはそれに書き込むための光ディスクドライブ２２４などの記憶装置２１６を含む。記憶装置２１６は、ハードディスクドライブインターフェース２３０、磁気ディスクドライブインターフェース２３２、および光ドライブインターフェース２３４などの記憶装置インターフェースによってシステムバス２０８と接続することができる。ドライブおよびその関連するコンピュータ可読媒体は、汎用コンピュータシステム２０２に対して不揮発性のストレージを提供する。上記のコンピュータ可読媒体の説明は、ハードディスク、取外し可能磁気ディスク、およびＣＤ−ＲＯＭを指しているが、コンピュータシステムによって読み取り可能であり、かつ磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジなど、所望の最終目的に適切な他のタイプの媒体も使用できることを理解されたい。
【００１８】
ユーザは、キーボード２３６、マウス２３８などのポインティング装置、およびマイクロフォン２４０を含む従来の入力装置２３５を介して、汎用コンピュータシステム２０２にコマンドおよび情報を入力することができ、マイクロフォン２４０は、音声などのオーディオ入力を汎用コンピュータシステム２０２に入力するのに使用することができる。さらに、ユーザは、スタイラスを使用し書込みタブレット２４２上に図形情報を描くことによって、図面や手書きのものなど、図形情報を汎用コンピュータシステム２０２に入力することもできる。汎用コンピュータシステム２０２はまた、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなど、所望の最終目的に適した追加の入力装置を含むこともできる。マイクロフォン２４０は、システムバス２０８に結合されたオーディオアダプタ２４４を介して、処理装置２０４に接続することができる。さらに、他の入力装置がシステムバス２０８に結合されたシリアルポートインターフェース２４６を介してしばしば処理装置２０４に接続されるが、それを、パラレルポートインターフェース、ゲームポート、またはＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）などの他のインターフェースにより接続することもできる。
【００１９】
モニタや他のタイプの表示装置２４７など、表示画面２４８を有する表示装置２４７はまた、ビデオアダプタ２５０などのインターフェースを介してシステムバス２０８に接続されている。表示画面２４８に加えて、汎用コンピュータシステム２０２はまた、通常、スピーカおよび／またはプリンタなどの他の周辺出力装置を含むことができる。汎用コンピュータシステム２０２は、１つまたは複数の遠隔コンピュータシステム２５２への論理接続を用いてネットワーク化された環境中で動作することができる。遠隔コンピュータシステム２５２は、サーバ、ルータ、同位（ｐｅｅｒ）装置、または他の共通のネットワークノードとすることができ、図２には遠隔メモリストレージ装置２５４だけが示されているが、汎用コンピュータシステム２０２に関して説明した任意のまたはすべてのエレメントを含むことができる。図２に示した論理接続は、ＬＡＮ（ローカルエリアネットワーク）２５６、ＷＡＮ（広域ネットワーク）２５８を含む。このようなネットワーキング環境は、オフィスや、企業規模のコンピュータネットワーク、イントラネット、およびインターネットで普通のものである。
【００２０】
ＬＡＮネットワーキング環境で使用される場合、汎用コンピュータシステム２０２は、ネットワークインターフェース２６０を介してＬＡＮ２５６に接続される。ＷＡＮネットワーキング環境で使用される場合は、汎用コンピュータシステム２０２は、通常、インターネットなどのＷＡＮ２５８を介して通信を確立するためのモデム２６２または他の手段を含む。内部または外部とすることができるモデム２６２は、シリアルポートインターフェース２４６を介してシステムバス２０８に接続することができる。ネットワーク化された環境では、汎用コンピュータシステム２０２、またはその一部に関して示されたプログラムモジュールは、遠隔メモリストレージ装置２５４に記憶することができる。図示のネットワーク接続は例示的なものであり、コンピュータシステム間で通信リンクを確立するための他の手段を使用できることを理解されたい。アプリケーションモジュールが汎用コンピュータシステム以外のホストまたはサーバコンピュータシステム上で等価的に実施可能であり、ＣＤ−ＲＯＭ以外の手段、例えば、ネットワーク接続インターフェース２６０により、ホストコンピュータシステムに等価的に送信できることも理解されたい。
【００２１】
さらに、いくつかのプログラムモジュールを汎用コンピュータシステム２０２のドライブおよびＲＡＭ２１２に記憶することができる。プログラムモジュールは、汎用コンピュータシステム２０２がどのように機能し、ユーザ、Ｉ／Ｏ装置または他のコンピュータとどのように対話するかを制御する。プログラムモジュールは、ルーチン、オペレーティングシステム２６４、ターゲットアプリケーションプログラムモジュール２６６、データ構造、ブラウザ、および他のソフトウェアもしくはファームウェアコンポーネントを含む。本発明の方法は、アプリケーションモジュール中に含めることができ、そのアプリケーションモジュールは、本明細書に記載の方法に基づいて音声エンジン訂正モジュール２７０などの１つまたは複数のプログラムモジュール中で実施できるので好都合である。ターゲットアプリケーションプログラム２６６は、本発明と共に使用される様々なアプリケーションを含むことができ、そのいくつかを図３に示す。これらのプログラムモジュールの目的およびそのいくつかのモジュール間の対話については、図３で説明するテキストにおいて十分に論ずる。それらは、例えば、Ｅメールアプリケーション、（米国ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ（マイクロソフト社）により生産されるＭｉｃｒｏｓｏｆｔ（登録商標）Ｗｏｒｄなどの）ワードプロセッサプログラム、手書き認識プログラムモジュール、音声エンジン訂正モジュール２７０、およびＩＭＥ（ｉｎｐｕｔ  ｍｅｔｈｏｄ  ｅｄｉｔｏｒ）などの任意のアプリケーションおよび／またはテキストフィ−ルドを有する制御を含む。
【００２２】
添付の図面で説明し示されたオペレーション、ステップ、および手順は、本発明の例示的な実施形態を当業者が実施できるように十分に開示されていると考えられるので、詳細な説明で述べた様々な手順を実行するための特定のプログラミング言語を何も説明していないことを理解されたい。さらに、例示的な実施形態を実施するのに使用できるコンピュータおよびオペレーティングシステムは数多くあり、したがって、これらの多くの異なるシステムすべてに適用可能なコンピュータプログラムの詳細を提供することはできない。特定のコンピュータの各ユーザは、そのユーザの必要性および目的にとって最も有益である言語とツールに気付かれよう。
【００２３】
図３を参照すると、図２の汎用コンピュータシステム２０２を用いて実施される音声認識ソフトウェアアプリケーションで使用するためのニーモニック言語モデルを作成する方法３００を示すブロック図が示されており、その汎用コンピュータシステム２０２が、入力装置２３５、記憶装置２１６および表示装置２４７と通信する処理装置２０４を含み、その表示装置２４７が、図２に示すように表示画面２４８を含む。前に論じたように、入力装置２３５は、マイクロフォンなど所望の最終目的に適した任意の装置とすることができる。さらに、音声認識ソフトウェアアプリケーションを記憶装置２１６に記憶することができ、それにより、処理装置２０４は音声認識ソフトウェアアプリケーションにアクセスできるようになる。さらに、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）などの少なくとも１つのターゲットソフトウェアアプリケーション２６６を記憶装置２１６に記憶することができ、ユーザは、処理装置２０４に伝えられる命令を介してターゲットソフトウェアアプリケーションを実施することができる。
【００２４】
方法３００は、オペレーションブロック３０２で示すように、文字および／または文字列の事前定義の大量の文字本体中の文字および／または文字列のそれぞれに対してｎグラム言語モデル１１２を生成することを含む。上記で簡単に論じたように、それは、特有の文字が他の文字に続いて出現することに対して確率を割り当てることになる。例えば、単語「ｅｒａ（時代）」における文字列「ｅｒ」の後の文字「ａ」の出現率を考える。ｎグラム言語モデル１１２を生成することにより、確率Ｐ（ａ｜ｅ、ｒ）がその出現に割り当てられる。言い換えると、確立Ｐ（ａ｜ｅ、ｒ）は、文字のシーケンス「ｅｒ」の後にａが出現する可能性を表すことになる。ｎグラム言語モデル１１２は、コミュニティ規格（ｃｏｍｍｕｎｉｔｙ  ｓｔａｎｄａｒｄ）ＡＲＰＡフォーマットにおけるファイルとして記述し、大文字／小文字依存（ｃａｓｅ  ｓｅｎｓｉｔｉｖｅ）とすることができ、したがって、大文字と小文字の両方に対して確率を割り当てることができることを理解されたい。方法３００はまた、オペレーションブロック３０４に示すように、事前定義の大量の文字および／または文字列本体中の文字および／または文字列のそれぞれに対して新しい言語モデルトークンを構築することを含む。例えば、言語モデルトークンがすでに存在している場合の文字「ａ」を考える。新しい言語モデルトークン「ａ―ＡｓＩｎ」がニーモニックスペリングで使用するために構築され、一方、古い言語モデルトークン「ａ」は文字のスペリングで使用するため保持される。このようにすると、性能を維持しかつ言語モデルのサイズを増加させずに、通常のスペリング技法およびニーモニックスペリング技法のためにｎグラム言語モデル１１２を構築することができる。
【００２５】
方法３００はさらに、オペレーションブロック３０６に示すように、文字の発音表記の代替の発音辞書を作成するために、音声認識ソフトウェアアプリケーションの事前定義の発音辞書に対応する文字および／または文字列のそれぞれに対する発音を抽出することを含む。例えば、再度、文字「ａ」を考えると、その場合、「ａ」で始まる単語に対する発音が、デスクトップの口述で使用される音声認識ソフトウェアアプリケーションの発音辞書から抽出される。その辞書を使用すると、単語「ＡＲＯＮ（アロン）」が、図４に示すように「ａｅ  ｒ  ａｘ  ｎ」の文字発音表記を有することが分かる。オペレーションブロック３０８に示すように、事前定義の発音辞書中の文字および／または文字列のそれぞれに対して、新しい言語モデルトークンを各文字の前に付加することによって、また長い無音「ｓｉｌ」を後ろに付加することによって代替の発音を作成することができる。例えば、新しい言語モデルトークン「ａ―ＡｓＩｎ」および単語「ＡＲＯＮ」を考えてみる。上記の関係が与えられた場合、代替の発音は、「ｅｙ  ＡＡ１  ｅｙ  ａｅ  ｚ  ｉｈ  ｎ  ａｅ  ｒ  ａｘ  ｎ  ｓｉｌ」で表されることになり、「ｅｙ  ＡＡ１  ｅｙ  ａｅ  ｚ  ｉｈ  ｎ」は、前に付加される「ａ  ＡｓＩｎ」に対する発音であり、「ａｅ  ｒ  ａｘ  ｎ」は、「ＡＲＯＮ」に対する発音であり、「ｓｉｌ」は後ろに付加された長い無音である。さらに、大文字は同様な方法で処理される。例えば、フレーズ「ｃａｐｉｔａｌ  ａ  ａｓ  ｉｎ  ＡＲＯＮ（アロンにおける大文字ａ）」を考えてみる。上記の関係の場合、代替の発音は、「k ae p ih t ax l ey AA1 ey ae z ih n ae r ax n sil」で表されることになり、ここで、「ｋ  ａｅ  ｐ  ｉｈ  ｔ  ａｘ  ｌ」は、ｃａｐｉｔａｌに対する発音であり、「ｅｙ  ＡＡ１  ｅｙ  ａｅ  ｚ  ｉｈ  ｎ」は、前に付加される「ａ  ＡｓＩｎ」に対する発音であり、「ａｅ  ｒ  ａｘ  ｎ」は、「ＡＲＯＮ」に対する発音であり、「ｓｉｌ」は後ろに付加される長い無音である。
【００２６】
大語彙認識装置（ｌａｒｇｅ  ｖｏｃａｂｕｌａｒｙ  ｒｅｃｏｇｎｉｚｅｒ）で使用できるようにｎグラム言語モデルは、次いで、オペレーションブロック３１０に示すように、標準のコンパイラを使用してコンパイルすることができ、そのコンパイラへの入力は、オペレーションブロック３０２で構築された（ＡＲＰＡフォーマットの）ｎグラム言語モデル、およびオペレーションブロック３０４とオペレーションブロック３０６で構築された（文字ごとに異なる発音の変形をエンコードする）発音辞書を含む。ｎグラム言語モデル１１２は、ＪＩＴ（Ｊｕｓｔ−Ｉｎ−Ｔｉｍｅ）コンパイラなど、所望の最終結果に適した任意のコンパイリング装置を用いてコンパイルすることができることを理解されたい。
【００２７】
方法３００は、１２万を超えるニーモニックを有する言語モデルをユーザが使用できるトライグラムベースの音声言語モデルを容易に作成することができることを理解されたい。それは、ユーザは１２万の単語のうちの１つを言うことができるという事実（ｆａｃｔ）をエンコードし、その単語の発音をエンコードし、および所与のコンテキストの前の２つの単語に現れる１つの単語のトライグラム確率をエンコードすることによって達成することができる。例えば、「ｔｈｉｓ  ｉｓ（それは）」というフレーズが与えられた場合、ユーザが次に話す単語は、「ｎｅａｒ（近い）」または「ｋｎｅｅｌ（ひざまずく）」であり得るが、英語では「ｔｈｉｓ  ｉｓ  ｎｅａｒ」は、「ｔｈｉｓ  ｉｓ  ｋｎｅｅｌ」よりもはるかに普通であるため、「ｎｅａｒ」が選択される。同様に、スペリング言語モデルの場合、「単語」という用語は、実際には複数の文字を指し、その文字は、２６の小文字、２６の大文字、数字、および記号を含む。したがって、本明細書に開示の方法３００は、１文字当たり平均５０００の発音を使用し（ＳａｌｍｏｎのＳ＝Ｓ、ＳｕｇａｒのＳ＝Ｓ、ＳａｌａｍａｎｄｅｒのＳ＝Ｓ．．．）、実際に、１２万の単語口述モデルにおけるすべての単語が、可能なニーモニックとして使用される。各ニーモニックは、文字ごとまたは発音ごとに異なる重みが割り当てられ、あるものには、他のものよりもより大きく重み付けされる。例えば、ニーモニックフレーズで「Ｔｏｍ（トム）のＴ」は、「ｔｅｒｔｉａｒｙ（第３の）のＴ」より大きく重み付けされる。それは、ニーモニックフレーズ「Ｔｏｍ（トム）のＴ」が高い頻度で使用される確率を有しているからである。さらに、ニーモニックシーケンスも確率を有しており、例えば、Ｄｏｎｋｅｙ（ロバ）の「Ｄ」の後にＦｕｎ（楽しみ）の「Ｆ」となる可能性は、Ｄｏｎｋｅｙ（ロバ）の「Ｄ」の後にＳｕｎ（太陽）の「Ｓ」が続く可能性より低い。それらの確率は、特別に生成することもできるが、あるいは、調査（ｓｕｒｖｅｙ）によってサンプリングされたニーモニックの簡単なリストから取得することもできる。本明細書に開示の方法３００により、システム２００は追加の文字および／または文字列を「学習」できることもまた理解されたい。さらに、方法３００が、アメリカ英語音素に関して本明細書に開示され、論じられているが、方法３００は、中国語やロシア語、スペイン語、フランス語などの言語に対する音素を用いて使用することもできる。
【００２８】
例示的な一実施形態によると、図３の処理は、全体的にまたは部分的に、マシン可読コンピュータプログラムに対応して動作する制御装置によって実施することができる。所定の機能および所望の処理、ならびにそのための計算（例えば、本明細書に規定した制御アルゴリズム、制御プロセスの実行など）を実施するために、制御装置は、それだけに限らないが、プロセッサ、コンピュータ、メモリ、ストレージ、レジスタ、タイミング、割り込み、通信インターフェース、および入出力信号インターフェース、ならびに前述の少なくとも１つを含む組合せを含むことができる。
【００２９】
さらに、本発明は、コンピュータまたは制御装置で実施されるプロセスの形で実施することもできる。本発明はまた、フロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードドライブ、および／または他の任意のコンピュータ可読媒体など有形の媒体中で実施される命令を含むコンピュータプログラムコードの形で実施することもでき、そのコンピュータプログラムコードがコンピュータまたは制御装置にロードされ実行されるとき、そのコンピュータまたは制御装置は、本発明を実施する装置となる。本発明はまた、例えば、記憶媒体に記憶されようと、コンピュータまたは制御装置にロードされかつ／または実行されようと、または電気的な配線またはケーブリングを介し、光ファイバを介し、あるいは電磁放射を介するなど何らかの伝送媒体を介して送信されようと、コンピュータプログラムコードの形で実施することが可能であり、そのコンピュータプログラムコードがコンピュータまたは制御装置にロードされ実行されたとき、そのコンピュータまたは制御装置は、本発明を実施するための装置となる。汎用マイクロプロセッサ上に実装された場合、コンピュータプログラムコードセグメントは、特有の論理回路を作成するマイクロプロセッサを構成することができる。
【００３０】
本発明を例示的な実施形態を参照して説明してきたが、当業者であれば、本発明の趣旨および範囲を逸脱することなく、様々な変更、省略、および／または追加を行うことができ、等価な形態をそのエレメントの代用として使用することができることを理解されよう。さらに、本発明の範囲を逸脱することなく、特定の状態または材料を適合させるために、本発明の教示に多くの変更を加えることもできる。したがって、本発明を実行するために企図された最良の形態として開示された特定の実施形態に本発明を限定するものではなく、本発明は、添付の特許請求の範囲に含まれるすべての実施形態を含むものとする。さらに、第１、第２などの用語の使用は、特に説明のない限り、何らかの順序または重要性を示すものではなく、第１、第２などの用語は、１つのエレメントを他のものと区別するときに使用される。
【図面の簡単な説明】
【００３１】
【図１】典型的な音声認識システムを示すブロック図である。
【図２】例示的な一実施形態による音声認識ソフトウェアアプリケーションで使用するためのニーモニック言語モデルを作成する方法を実施するシステムを示す概略のブロック図である。
【図３】例示的な一実施形態による音声認識ソフトウェアアプリケーションで使用するためのニーモニック言語モデルを作成する方法を示すブロック図である。
【図４】アメリカ英語音素テーブルの図である。
【符号の説明】
【００３２】
１０２  処理装置
１０４  入力装置
１０６  記憶装置
１１０  音響モデル
１１２  言語モデル
２０４  処理装置
２０６  システムメモリ
２３０  ハードディスクドライブインターフェース
２３２  磁気ディスクドライブインターフェース
２３４  光ディスクドライブインターフェース
２４４  オーディオアダプタ
２４６  シリアルポートインターフェース
２４８  モニタ
２５０  ビデオアダプタ
２５２  ネットワークインターフェース
２６０  ネットワークインターフェース
２６４  オペレーティングシステム
２６６  アプリケーションプログラムモジュール（ワードプロセッサ）
２７０  音声エンジン訂正モジュール
【図１】
2006146193.tif 000003
【図２】
2006146193.tif 000004
【図３】
2006146193.tif 000005
【図４】
2006146193.tif 000006