(57)【特許請求の範囲】
【請求項１】
自動音声認識システムを用いて学習を行う方法であって、
前記方法は、
口述テキストに対する変更を検出するステップと、
前記変更が訂正であるか、又は編集であるかを推論するステップと、
前記変更が訂正であると推論される場合、追加的なユーザ対話なしで前記訂正の性質から選択的に学習するステップと、
を含み、
前記訂正の性質から選択的に学習するステップは、
訂正されたワードがユーザのレキシコンに存在するか否かを判定するステップと、
前記訂正されたワードがユーザのレキシコンに存在する場合に、ユーザの発音が前記システムに既知の発音であるかどうかを判定するステップと、
前記ユーザの発音が前記システムに既知の発音である場合に、既存の発音に関連付けられる見込みを増加させるステップと
をさらに含み、
前記ユーザの発音が前記システムに既知の発音であるかどうかを判定するステップは、
前記訂正されたワードに対応付けられる文脈語に基づいて波形の強制整列を行うステップと、
前記強制整列を分析して前記訂正されたワードの発音である前記波形の一部を識別するステップと、
前記訂正されたワードの発音と前記訂正されたワードに対応するレキシコン内の既存のワードの発音との距離を計算するステップと
をさらに含むことを特徴とする方法。
【請求項２】
前記距離を計算するステップは、前記既存のワードの発音と、前記訂正されたワードの発音との距離に基づいて、信頼性スコアを生成するステップをさらに含む、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記信頼性スコアは、関数、１／［ｄ／ｆ／ｌｏｇ（ｌｅｎ１＋ｌｅｎ２）］を用いて計算され、ここで、ｄは前記レキシコン内の既存のワードの発音の１つと前記訂正されたワードの発音との間の距離であり、ｆは前記訂正されたワードの発音が発音される周波数であり、ｌｅｎ１およびｌｅｎ２は音素の長さを表す値である、ことを特徴とする請求項２に記載の方法。
【請求項４】
前記距離を計算するステップは、前記既存のワードの発音と、前記訂正されたワードの発音との音響モデルスコアに基づいて、信頼性スコアを生成するステップをさらに含む、ことを特徴とする請求項１に記載の方法。
【請求項５】
前記信頼性スコアを閾値と比較するステップをさらに含むことを特徴とする請求項２または４に記載の方法。
【請求項６】
新たな発音が、予め選択された回数だけ生じたか否かを判定するステップをさらに含む、ことを特徴とする請求項５に記載の方法。
【請求項７】
前記訂正されたワードの可能性のある発音および認識結果に基づいてラティスを構築するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記推論するステップは、前記ユーザが前記変更を行うために代替リストから選択を行ったか否か検出するステップを含む、ことを特徴とする請求項１に記載の方法。
【請求項９】
前記推論するステップは、ディクテーションと前記変更との間の時間を測定するステップを含む、ことを特徴とする請求項１に記載の方法。
【請求項１０】
前記推論するステップは、前記口述テキストの音声認識エンジンスコアおよび前記変更されたテキストの音声認識エンジンスコアを比較するステップを含む、ことを特徴とする請求項１に記載の方法。
【請求項１１】
前記推論するステップは、変更されたワードの数を検出するステップを含む、ことを特徴とする請求項１に記載の方法。
【請求項１２】
前記訂正の性質から選択的に学習するステップは、前記訂正されたワードが前記ユーザのレキシコンに存在しない場合は、前記レキシコンに前記訂正されたワードを追加するステップを含む、ことを特徴とする請求項１に記載の方法。
【請求項１３】
前記訂正の性質から選択的に学習するステップは、前記ユーザのレキシコンに少なくとも１つのワード対を追加するステップを含む、ことを特徴とする請求項１に記載の方法。
【請求項１４】
前記ユーザのレキシコンに少なくとも１つのワード対が一時的に追加されることを特徴とする請求項１３に記載の方法。
【請求項１５】
自動音声認識システムを用いて学習を行うシステムであって、
前記システムは、
口述テキストに対する変更を検出する手段と、
前記変更が訂正であるか、又は編集であるかを推論する手段と、
前記変更が訂正であると推論される場合、追加的なユーザ対話なしで前記訂正の性質から選択的に学習する手段と、
を備え、
前記訂正の性質から選択的に学習する手段は、
訂正されたワードがユーザのレキシコンに存在するか否かを判定する手段と、
前記訂正されたワードがユーザのレキシコンに存在する場合に、ユーザの発音が前記システムに既知の発音であるかどうかを判定する手段と、
前記ユーザの発音が前記システムに既知の発音である場合に、既存の発音に関連付けられる見込みを増加させる手段と
をさらに備え、
前記ユーザの発音が前記システムに既知の発音であるかどうかを判定する手段は、
前記訂正されたワードに対応付けられる文脈語に基づいて波形の強制整列を行う手段と、
前記強制整列を分析して前記訂正されたワードの発音である前記波形の一部を識別する手段と、
前記訂正されたワードの発音と前記訂正されたワードに対応するレキシコン内の既存のワードの発音との距離を計算する手段と
をさらに備えたことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータによる音声認識(speech recognition)に関し、より詳細には、コンピュータ音声認識システムのトレーニングに関する。
【背景技術】
【０００２】
コンピュータシステムによって、人間の声を高速かつ正確に認識することは、コンピュータシステムの開発者によって長い間目指されてきた目標である。このようなコンピュータ音声認識（ＣＳＲ:computer speech recognition）システムから得られるであろう利益は多数ある。例えば、コンピュータシステムに文書をタイプ入力するのではなく、人は、文書(document)中のワード(word)を単に話すだけでよく、ＣＳＲシステムがワードを認識し、ワードがタイプ入力されたかのように各ワードの文字を格納する。人々は概して、タイプ入力するよりも速く話すことができるので、効率が向上することになる。また、人々は、タイプ入力の方法を学ぶ必要がなくなる。人の手がタイプ入力以外の作業で塞がれているために現時点ではコンピュータの使用が不可能な多くの適用範囲においても、コンピュータを使うことができるであろう。
【０００３】
一般的なＣＳＲシステムは、発声された言葉(spoken utterance)を語彙(vocabulary)中の各ワードのモデルと比較することによってワードを認識する。発話(utterance)とモデルが最も一致するワードが、発声されたワード(spoken word)として認識される。ＣＳＲシステムは、ワードを構成する一連の音素(a sequence of phonemes)として各ワードをモデル化することができる。発話(utterance)を認識するために、ＣＳＲシステムは、発話と音素が最も一致するワードシーケンスを識別する。ただし、こうした音素は、ワードを構成する音素と正確には対応しない。したがって、ＣＳＲシステムは一般に、識別された音素にどのワードが最も厳密に対応するか判定するために、確率分析(probability analysis)を用いる。
【０００４】
発話(utterance)を認識すると、ＣＳＲシステムは、発話を表すアナログ信号を、さらに処理するのにより有用な形に変換する。ＣＳＲシステムは最初に、アナログ信号をデジタル形式に変換する。ＣＳＲシステムは次いで、高速フーリエ変換（ＦＦＴ）、線形予測コーディング（ＬＰＣ）、またはフィルタバンクなどの信号処理技術をデジタル形式に適用して、発話の適切なパラメータ表現を抽出する。一般的に用いられる表現は、（「フレーム(frame)」と呼ばれる）様々な間隔で発話の周波数および／またはエネルギー帯を表すＦＦＴまたはＬＰＣ係数を有する「特徴ベクトル(feature vector)」である。こうした間隔(interval)は、コンピュータシステムの計算能力および認識プロセスの所望の正確さに基づいて、短くても長くてもよい。一般的な間隔は、１０ミリ秒の範囲となり得る。つまり、ＣＳＲシステムは、１０ミリ秒の発話の度に特徴ベクトルを生成する。各フレームは一般に、２５ｍｓの長さである。したがって、２５ｍｓの長さのフレームが、１０ｍｓごとに生成される。後続フレームの間にはオーバーラップが存在する。
【０００５】
特徴ベクトルの処理を円滑にするために、各特徴ベクトルは、限られた数（例えば２５６個）の「量子化ベクトル(quantization vector)」の１つに量子化される。つまり、ＣＳＲシステムは、一般的または平均的な範囲の特徴ベクトルを表すために選択されるいくつかの量子化ベクトルを定義する。ＣＳＲシステムは次いで、各特徴ベクトルを量子化ベクトルそれぞれと比較し、特徴ベクトルを表すために、特徴ベクトルと最もよく似ている量子化ベクトルを選択する。各量子化ベクトルは、「コードワード(codeword)」と呼ばれる（例えば１と２５６の間の）数によって一意に識別される。特徴ベクトルが量子化ベクトルとして表されると、異なる多くの特徴ベクトルが同じ量子化ベクトルと結びつくので、情報の損失が起こる。この情報損失が認識に深刻な影響を与えないようにするために、ＣＳＲシステムは、数千または数百万の量子化ベクトルを定義することができる。このような多数の量子化ベクトルの定義を格納するのに必要とされる記憶域の量は、相当な量になり得る。したがって、必要とされる記憶域の量を削減するために、ＣＳＲシステムは、特徴ベクトルをセグメント化し、各セグメントを、少数（例えば２５６個）の量子化ベクトルの１つに量子化する。したがって、各特徴ベクトルは、各セグメントごとに、（コードワードによって識別される）量子化ベクトルによって表される。説明を簡単にするために、特徴ベクトルをセグメント化せず、したがって特徴ベクトル（またはフレーム）ごとにただ１つのコードワードをもつＣＳＲシステムについて説明する。
【０００６】
上述したように、発声される発話はしばしば、ワードのモデルに正確に対応しない。正確な対応を見つける際に困難なのは、ワードモデルによって完全かつ正確に取り込まれない、音声の変動の大きさによるものである。こうした変動は例えば、話者のアクセント、人が話す速度およびピッチ、話者の現在の健康状態（例えば、風邪を引いている）、話者の年齢および性別などから生じる。確率技術を用いるＣＳＲシステムは、正確な対応を求める技術よりも、音声を正確に認識することに成功している。
【０００７】
音声認識用に一般に用いられるこのような確率技術の１つは、隠れマルコフモデルである。ＣＳＲシステムは、語彙中の各ワードに対して隠れマルコフモデル（「ＨＭＭ」）を用いることができる。ワードに対するＨＭＭは、どの一連のコードワードがそのワードに対応する確率もそこから導出され得る確率情報を含む。したがって、発話を認識するために、ＣＳＲシステムは、発話を一連のコードワードに変換し、次いで、ワードが発話に対応する確率を判定するために、各ワードに対してＨＭＭを用いる。ＣＳＲシステムは、確率が最も高いワードを発話として認識する。
【０００８】
ＨＭＭは、状態図(state diagram)で表される。状態図は従来から、一連の入力を受け取った後にシステムが入る状態を判定するのに用いられる。状態図は、状態ならびに原始状態と目標状態の間の遷移を含む。各遷移は、システムがその入力を受け取り、かつ原始状態にあるとき、システムが目標状態に遷移することを示す入力を関連づけてある。このような状態図は、例えば、語彙中のワードを構成する一連の各コードワードを認識するシステムによって使われ得る。システムは、各コードワードを処理すると、現在の状態および処理されているコードワードに基づいて、次の状態を判定する。この例では、状態図は、各ワードに対応するある特定の最終状態をもつ。しかし、あるワードの複数の発音が表される場合、各ワードは複数の最終状態をもち得る。コードワードを処理した後、システムが、ワードに対応する最終状態にある場合、その一連のコードワードは、最終状態のワードとして認識される。
【０００９】
しかし、ＨＭＭは、各コードワードごとに、ある状態から別の状態への各遷移に関連した確率を有する。例えば、ＨＭＭが状態２にある場合、ある特定のコードワードが現在の状態から次の状態への遷移を起こす確率は０．１となり、同じコードワードが現在の状態から次の異なる状態への遷移を起こす確率は０．２になり得る。同様に、異なるコードワードが現在の状態から次の状態への遷移を起こす確率は０．０１になり得る。ＨＭＭは、その状態図に関連した確率を有するので、所与の一連のコードワードに関する最終状態の判定は、確率によってのみ表現されることができる。したがって、一連のコードワードに対して起こり得る各最終状態の確率を判定するために、ＨＭＭの状態図に対して起こり得るそれぞれの一連の状態を識別する必要があり、その状態に関連した確率を計算する必要がある。このような一連の各状態は、状態パス(state path)と呼ばれる。
【００１０】
一連のコードワードが音素を表す確率を判定するために、ＣＳＲシステムは、確率ラティス(probability lattice)を生成することができる。音素のＨＭＭ用の確率ラティスは、一連のコードワードに対して各状態パスが起こり得る確率の計算を表す。確率ラティスは、ＨＭＭがシーケンス中の各コードワードに対して入り得る各状態ごとに、１つのノードを含む。各ノードは、それまでに処理されたコードワードがそのノードに関連した状態にあるＨＭＭに帰結する累積確率を含む。ある特定のコードワードに対するノードにおける確率の和は、それまでに処理されたコードワードが音素の接頭辞部分を表す見込みを示す。
【００１１】
ＣＳＲシステムの正確さは、各音素に対するＨＭＭの出力および遷移確率の正確さに部分的に依存する。一般的なＣＳＲシステムは、出力および遷移確率が平均的な話者の音声を正確に反映するようにＣＳＲシステムを「トレーニング(training)」する。トレーニングの間、ＣＳＲシステムは、多様なワードに関して、様々な話者からコードワードシーケンスを集める。ワードは、各音素が何度も発声されるように選択される。こうしたコードワードシーケンスから、ＣＳＲシステムは、各ＨＭＭごとに出力および遷移確率を計算する。こうした確率を計算する様々な反復手法は公知である。
【００１２】
しかし、このようなトレーニング技術に伴う問題は、このような平均的ＨＭＭが、音声パターンが平均とは異なる人々の音声を正確にモデル化できないことである。概して、どの人も、平均と異なる特定の音声パターンをもつ。したがって、ＣＳＲシステムは、話者の音声パターンに適合させるようにＨＭＭを話者がトレーニングすることを可能にする。このようなトレーニングにおいて、ＣＳＲシステムは、出力および遷移確率、ならびにコードワードで表される量子化ベクトルなどのＨＭＭパラメータを、システムの実際のユーザによって発声されるトレーニング用の発話を用いて洗練する。適合されたパラメータは、ユーザ供給データならびに話者に依存しない大量のデータから生成される情報およびパラメータ両方を用いて導出される。したがって、確率は、話者依存特性を反映する。
【００１３】
ＣＳＲシステムは一般に、予め選択された多様なワードを話者に提示することによってトレーニングされる。こうしたワードは、各音素に対応する音声の代表的なサンプルが集められ得るように選択される。この代表的なサンプルを用いて、ＣＳＲシステムは、その音素の話者の発音を正確に反映しないどのＨＭＭも適切に適合することができる。ＣＳＲシステムは確率によって機能するので、行われるトレーニングが多い程、その後の音声認識はより正確になる。ただし、トレーニングがより多く行われるに従って、所与の量の追加トレーニングに対して認識の正確さが向上していく程度は低下し始める。さらに、ユーザがトレーニングにかなりの時間をかける必要があるので、ユーザの経験量を減らす可能性がある。
【００１４】
したがって、ユーザがシステムをトレーニングするよう要求される程度と、ユーザがシステムを効果的に使うことができる程度との間には一定の均衡がある。自然言語の複雑さを考慮すると、過度のトレーニングの後でさえも、システムが時にはエラーを生成することが十分に考えられる。発声された発話が、対応するワードのモデルと一致しないことになる別の原因は、ワードが未知の場合である。可能な解決法には、語彙サイズを大きくすることがあるが、これは認識の正確さを低下させ得る。別の解決法は、ユーザが新たなワードを追加するユーザトレーニングによるものである。現在のシステムでは、ワード追加／削除ダイアログボックスのような、ユーザにワードを追加または削除させるユーザインターフェースを用いることによって、システムレキシコン（語彙目録，辞書 :lexicon）、ベンダまたはアプリケーションレキシコン（語彙目録，辞書）、あるいはユーザ特有(user-specific)のレキシコン（語彙目録，辞書）でよい適切なレキシコン（語彙目録，辞書）に、新たなワードをユーザに自分の発音で手作業によって追加させる。しかし、この方法は、ユーザが多数のワードを追加する必要がある場合は手間がかかる。ユーザによって作成された文書およびｅメールを使って言語モデル（ＬＭ）を適合させることも公知である。この手法は、発音がレキシコン（語彙目録，辞書）に追加されず、言語モデル適合の品質がソース文書のフィルタリングに大きく依存する点において制約を受ける。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
したがって、大幅なユーザ介入を必要とすることなく、ユーザから新たなワードおよびワードの発音を容易に学習することができるシステムが必要である。この目的を達成することにより、過度のトレーニング作業を要求することによってユーザの経験量を減らすことなく、自動音声認識システムの高度な学習が可能になる。
【課題を解決するための手段】
【００１６】
本発明を適用した自動音声認識システムは、ユーザによる、口述テキスト(dictated text)への変更(change)を認識(recognize)し、このような変更がユーザの意向(mind)の変化から生じたものであるか、それともこのような変更が、認識エラー(recognition error)を訂正(correct)した結果(result)であるかを推論(infer)する。認識エラー(recognition error)からの訂正(correction)が検出(detect)された場合、本発明を適用した自動音声認識システムは、ユーザ訂正のタイプ(type of user correction)を用いて、このような認識エラーが再度起こる見込み(chance)を低下(reduce)させるようにシステム自体を修正(modify)する。したがって、本発明を適用したシステムおよび方法は、追加的なユーザ対話(additional user interaction)をほとんどまたはまったく用いずに、音声認識の大幅な学習を可能にする。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明を実施するのに適切なコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲に対するどのような限定を示唆することも意図していない。コンピューティング環境１００は、例示的な動作環境１００に示されるどのコンポーネントまたはその組合せに関するどのような依存も要件も有していると解釈すべきではない。
【００１８】
本発明は、他の数多くの汎用または専用のコンピューティング環境または構成と共に動作する。本発明と共に使用するのに適切であり得る他の公知の計算システム、環境、および／または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、電話システム、上記のシステムまたはデバイスのいずれをも含む分散型コンピューティング環境などを含むが、それに限定されない。
【００１９】
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令という一般的な状況において説明することができる。概して、プログラムモジュールは、特定のタスクを実施しまたは特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、通信ネットワークを介してリンクされるリモート処理ユニットによってタスクが実施される分散型コンピューティング環境においても実施することができる。分散型コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモートコンピュータ記憶媒体両方に置かれ得る。
【００２０】
図１を参照すると、本発明を実施する例示的なシステムは、汎用計算装置をコンピュータ１１０の形で含む。コンピュータ１１０のコンポーネントは、中央処理ユニット１２０と、システムメモリ１３０と、システムメモリなど様々なシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１とを含むことができるが、それに限定されない。
【００２１】
システムバス１２１は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスなどいくつかのタイプのバス構造のいずれでもよい。限定ではなく例として、このようなアーキテクチャは、ＩＳＡ（業界標準アーキテクチャ）バス、ＭＣＡ（マイクロチャネルアーキテクチャ）バス、ＥＩＳＡ（拡張ＩＳＡ）バス、ＶＥＳＡ（米国ビデオ電子装置規格化協会）ローカルバス、およびメザニン（Ｍｅｚｚａｎｉｎｅ）バスとしても知られるＰＣＩ（周辺装置相互接続）バスを含む。
【００２２】
コンピュータ１１０は通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセスされ得ると共に揮発性媒体および不揮発性媒体両方、取り外し可能な媒体および取り外し不可の媒体を含む、市販のどの媒体でもよい。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するためのどの方法でも技術でも実施される揮発性媒体および不揮発性媒体両方、取り外し可能な媒体および取り外し不可の媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは、所望の情報を格納するのに使われ得ると共にコンピュータ１１０によってアクセスされ得る他のどの媒体も含むが、それに限定されない。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、例えば搬送波や他の移送機構などの変調データ信号にまとめ、どの情報配信媒体も含む。「変調データ信号」という用語は、信号に情報を符号化するようにその信号特性の１つまたは複数が設定または変更された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体を含む。上記のどの組合せも、やはりコンピュータ可読媒体の範囲に含まれる。
【００２３】
システムメモリ１３０は、コンピュータ記憶媒体を、ＲＯＭ（読み出し専用メモリ）１３１およびＲＡＭ（ランダムアクセスメモリ）１３２など、揮発性および／または不揮発性メモリの形で含む。ＢＩＯＳ（基本入出力システム）１３３は、例えば起動中にコンピュータ１１０内部の要素間で情報を転送するのを助ける基本ルーチンを含み、通常はＲＯＭ１３１に格納される。ＲＡＭ１３２は一般に、処理ユニット１２０に対してただちにアクセス可能な、かつ／または処理ユニット１２０によって現在操作されているデータおよび／またはプログラムモジュールを含む。限定ではなく例として、図１では、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００２４】
コンピュータ１１０は、他の取り外し可能な／取り外し不可の、揮発性／不揮発性コンピュータ記憶媒体を含むこともできる。単なる例として、図１では、取り外し不可の不揮発性磁気媒体からの読み出しまたはそこへの書込みを行うハードディスクドライブ１４１、取り外し可能な不揮発性磁気ディスク１５２からの読み出しまたはそこへの書き込みを行う磁気ディスクドライブ１５１、および、ＣＤ  ＲＯＭや他の光学媒体など取り外し可能な不揮発性光ディスク１５６からの読み出しまたはそこへの書き込みを行う光ディスクドライブ１５５を示す。例示的な動作環境で使われ得る、他の取り外し可能な／取り外し不可の、揮発性／不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどを含むが、それに限定されない。ハードディスクドライブ１４１は通常、インターフェース１４０などの取り外し不可のメモリインターフェースによって、システムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、インターフェース１５０などの取り外し可能なメモリインターフェースによって、システムバス１２１に接続される。
【００２５】
上述し、かつ図１に示されているディスクドライブおよびそれに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ１１０用の他のデータの格納を可能にする。図１では、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するものとして示されている。こうしたコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じでも、異なってもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７は、少なくとも異なるものであることを示すために、ここでは異なる番号が与えられている。
【００２６】
ユーザは、入力デバイス、例えばキーボード１６２、マイクロホン１６３、およびマウス、トラックボール、またはタッチパッドなどのポインティングデバイス１６１を介して、コマンドおよび情報をコンピュータ１１０に入力することができる。他の入力デバイス（図示せず）は、ジョイスティック、ゲーム用パッド、衛星パラボラアンテナ、スキャナなどを含み得る。こうしたおよび他の入力デバイスはしばしば、システムバスに結合されたユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されるが、他のインターフェースおよびバス構造、例えば並列ポート、ゲームポート、ＵＳＢ（ユニバーサルシリアルバス）によって接続することもできる。モニタ１９１または他のタイプの表示デバイスも、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタに加え、コンピュータは、出力周辺インターフェース１９５を介して接続され得るスピーカ１９７およびプリンタ１９６など、他の周辺出力デバイスも含むことができる。
【００２７】
コンピュータ１１０は、リモートコンピュータ１８０など、１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク接続された環境において動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードでよく、通常、コンピュータ１１０に関連して上述した要素の多くまたはすべてを含む。図１に示される論理接続は、ＬＡＮ（ローカルエリアネットワーク）１７１およびＷＡＮ（ワイドエリアネットワーク）１７３を含むが、他のネットワークを含むこともできる。このようなネットワーク環境は、会社、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいてよく見られる。
【００２８】
ＬＡＮネットワーク環境において使われる場合、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境において使われる場合、コンピュータ１１０は通常、モデム１７２、または、例えばインターネットなどのＷＡＮ１７３を介して通信を確立する他の手段を含む。モデム１７２は、内部にあっても外部にあってもよく、ユーザ入力インターフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク接続された環境では、コンピュータ１１０に関連して図示したプログラムモジュールまたはその一部は、リモートメモリ記憶装置に格納することができる。限定ではなく例として、図１は、リモートアプリケーションプログラム１８５を、リモートコンピュータ１８０に常駐するものとして示す。図示したネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段も使用し得ることが理解されよう。
【００２９】
図２は、例示的なコンピューティング環境であるモバイルデバイス２００のブロック図である。モバイルデバイス２００は、キャッシュメモリ２０３を含むマイクロプロセッサ２０２、メモリ２０４、入出力（Ｉ／Ｏ）コンポーネント２０６、およびリモートコンピュータまたは他のモバイルデバイスと通信するための通信インターフェース２０８を含む。一実施形態では、上述したコンポーネントは、適切なバス２１０を介して互いに通信するために結合される。
【００３０】
メモリ２０４は、モバイルデバイス２００全体の電源がシャットダウンされたときにメモリ２０４に格納された情報が失われないように、不揮発性電子メモリ、例えばバッテリバックアップモジュール（図示せず）を有するＲＡＭ（ランダムアクセスメモリ）として実装される。メモリ２０４の一部分は、好ましくはプログラム実行用にアドレス指定可能なメモリとして割り振られ、メモリ２０４の別の部分は、好ましくは記憶用に、例えばディスクドライブ上で記憶をシミュレートするのに用いられる。
【００３１】
メモリ２０４は、オペレーティングシステム２１２、アプリケーションプログラム２１４、ならびにオブジェクトストア２１６を含む。動作中、オペレーティングシステム２１２は、好ましくは、メモリ２０４から、プロセッサ２０２によって実行される。オペレーティングシステム２１２は、好ましい一実施形態では、マイクロソフトコーポレーションから販売されているＷＩＮＤＯＷＳ（登録商標）ＣＥブランドのオペレーティングシステムである。オペレーティングシステム２１２は好ましくは、モバイルデバイス用に設計され、公開されている１組のアプリケーションプログラミングインターフェースおよびメソッドを介してアプリケーション２１４によって利用され得るデータベース機能を実施する。オブジェクトストア２１６内のオブジェクトは、公開されているアプリケーションプログラミングインターフェースおよびメソッドに対する呼出しに少なくとも部分的に応答して、アプリケーション２１４およびオペレーティングシステム２１２によって維持される。
【００３２】
通信インターフェース２０８は、モバイルデバイス２００が情報を送受信するのを可能にする多数のデバイスおよび技術を表す。こうしたデバイスは、いくつか例を挙げると、有線モデムおよび無線モデム、衛星受信機、ならびに放送チューナを含む。モバイルデバイス２００は、データ交換を行うコンピュータに直接接続することもできる。このような場合、通信インターフェース２０８は、赤外線送受信機でも、直列または並列通信接続でもよく、これらはすべて、ストリーム情報を伝送することができる。
【００３３】
入力／出力コンポーネント２０６は、タッチスクリーン、ボタン、ローラ、およびマイクロホンなどの様々な入力デバイス、ならびに音声ジェネレータ、振動デバイス、およびディスプレイを含む様々な出力デバイスを含む。上に列挙したデバイスは例であり、すべてがモバイルデバイス２００上になくてもよい。さらに、他の入力／出力デバイスが、本発明の範囲内において、モバイルデバイス２００に取り付けられてもよく、モバイルデバイス２００に備わっていてもよい。
【００３４】
本発明の態様は概して、自然なユーザ対話を利用して、新たなワード、発音、およびワード対を自動的に学習する。概してこうした学習は、ユーザが考え直したためにテキストを修正しているのか、それともシステムがユーザの音声を認識することができないためにユーザが訂正を行っているのか推論することによって遂行される。
【００３５】
図３は、本発明の実施形態によるシステムを用いて、ユーザ対話から自動的に学習を行う方法のフローチャートである。本方法は、ブロック３００で始まり、ユーザによる口述テキストの変更がシステムによって認識される。この変更は概して、ユーザが代替リストから新たなワードを選択し、ユーザがワードまたはフレーズを再口述させ、ユーザがいくつかのワードを削除し、ユーザが既存のワードを修正し、あるいはユーザがいくつかの新たなワードをタイプ入力する形式で行われる。変更が認識されると、制御はブロック３０２に移り、ここでシステムは、ユーザが実際に訂正を行っているのか、それとも単に考え直しているのか推論する。推論を行わせるために、いくつかのヒントまたは指示を使うことができる。例えば、ユーザが代替リストから選択を行っているとき、ユーザは訂正を行っている。別の例では、元のディクテーションと訂正されたワードの間の音響特性が類似しているとき、ユーザは訂正を行っている。反対に、テキストが口述されてから比較的長い時間の後でユーザが訂正を行っている場合、ユーザは、おそらく意向の変化によって編集を行っている。さらに、ユーザが、口述された文の中の多数のワードを変更している場合、ユーザは、おそらく意向の変化によって編集を行っている。任意選択として、システムは、ユーザの意図について確認するためにユーザに単に質問してもよい。
【００３６】
訂正(correction)が生じるセグメント（群）を識別するために、動的時間伸縮（ＤＴＷ：dynamic time warping）を例示的に用いている。次いで、口述テキスト(dictated text)および訂正されたテキスト(corrected text)の音声認識エンジンスコア(speech recognition engine score)が比較される。こうすることによって、システムは、ユーザが、発音が類似しているワードに対して訂正を行っているのか、あるいは意向の変化によって新たなワードを編集しているのかを判定できるようになる。追加的な信頼性スコア(confidence score)または測定基準(metric)も、訂正(correction)かそれとも編集(editing)かという推論(inference)を向上させるために、要望に応じて用いることができる。結果として、ユーザが単に考え直しただけであると本システムが判定した場合、制御は、ライン３０３を介してブロック３００に戻る。
【００３７】
ブロック３０４において、本システムは、レキシコン（語彙目録，辞書）を照会して、訂正されたワードがレキシコン（語彙目録，辞書）にあるか否かを判定する。訂正されたワードがユーザレキシコン（語彙目録，辞書）にない場合、制御はブロック３０６に移り、ここでワードがレキシコン（語彙目録，辞書）に追加され、選択的に新たな発音を追加し、言語モデルがそれに応じて適合される。新たな発音を追加するか否かを判定する処理は、図４も参照してより詳細に説明する。ブロック３０６の後、制御はブロック３００に戻る。
【００３８】
しかし、訂正されたワードがユーザレキシコン（語彙目録，辞書）にある場合、制御はブロック３０８に移り、ここで本システムは、発音が新たなものか否かを判定する。新たな発音は、新規ワードの発音、または既存のワードのユーザ特有の発音によってもたらされ得る。発音が新たなものか否かを判定する処理は、図４を参照してより詳細に説明する。発音が新たな発音である場合、制御はブロック３１０に移り、ここで、新たな発音が選択的に学習される。ブロック３１０の後、制御はブロック３００に戻る。
【００３９】
発音が新しくない場合、制御はブロック３０８からブロック３１２に移る。これは、訂正されたワード(corrected word)がユーザのレキシコン（語彙目録，辞書:lexicon）にあり、かつ訂正されたワードの発音も既知である状況(situation)である。この場合、ワードが関連づけられる見込みを増すために、ワード対および／またはフレーズがレキシコン（語彙目録，辞書）に追加され、または訂正されたテキストに関連した言語モデルのスコアがアップデートされる。ほとんどの場合、これは、例えば１から２日間継続する一時的な変更である。したがって、「ｗａｖｅ  ｔｗｏ」が「ｗａｖｅ  ｔｏｏ」と誤認識され、ユーザによって訂正された場合、システムは自動的に、ユーザレキシコン（語彙目録，辞書）に「ｗａｖｅ  ｔｗｏ」を一時的に追加する。「一時的に(temporarily)」というのは、ワード対が観察される最も近い時間、およびその対が過去に観察された相対頻度に基づいて、ある程度動的である。ワード対および／またはフレーズの追加に加え、本システムがサポートする場合は、新たに観察された既知の発音の確率も増大され得る。図３に示したステップはすべて、最良の結果を生じるために単一システムで実施することができるが、本発明の実施形態は、このようなステップが必ずしも単一システムに共存しなくてもよい。ブロック３１２の後、制御はブロック３００に戻る。
【００４０】
図４は、図３を参照して説明した方法の一部を示す。すなわち図４は、ブロック３０８および３１０をより詳細に示す。ブロック３０８において、ブロック４００は最初に、文脈語に基づいて、波形（デジタル化された音）の整列を強制するように作用する。文脈語は概して、訂正されたワードの前後両方にある単一のワードである。例えば、口述された文が「Ｔｈｉｓ  ｉｓ  ａ  ｔｅｘｔ  ．＼ｐｅｒｉｏｄ」であり、かつユーザが「ｔｅｘｔ」を「ｔｅｓｔ」となるように変更した場合、フレーズ「ａ  ｔｅｓｔ  ．＼ｐｅｒｉｏｄ」および対応する波形は、各ワードの正しい境界を判定するための整列を行うのに用いられる。この強制整列(forced alignment)が完了(complete)し、境界(boundary)が判定(determine)されると、制御はブロック４０２に移り、ここで、訂正されたワードの発音は、好ましくはラティス(lattice)を用いて識別される。このラティスは、ＬＴＳ(Letter to Speech)コンポーネントによって生成され得る発音に基づいて構築される。ＬＴＳコンポーネントは、テキスト入力に基づいて一連の音素を生成することができる、適切などのコンポーネントでもよい。ラティスは、認識結果中の、または基本音素認識装置からの音素シーケンスを用いても構成される。そのように構成された音素ラティス(phoneme lattice)は、正しい発音(correct pronunciation)として、ラティス中の最良音素パス(best phoneme path)を本システムが選ぶことを可能にする。最良音素が選ばれると、制御はブロック４０４に移り、ここで、新たに識別された発音と既存の発音の間の相違（距離:distance）が計算される。
【００４１】
ブロック４０４で、新たに識別された発音と既存の発音の間の相違（距離）を計算するために、音の混同マトリックスおよび動的時間伸縮が用いられる。代替的な相違（距離）計算方法も使うことができる。例えば、相違（距離）は、新たな発音および既存の発音についての音響モデルスコアに基づいて計算することができる。相違（距離）は好ましくは、予め選択された閾値または動的な閾値と比較され、発音が学習されるべきか否かを判定する。したがって、相違（距離）がある程度の閾値を超える発音のみが学習される。
【００４２】
ブロック４０６において、本システムは、新たな発音を追加すべきか否かを判定する。この判定は好ましくは、ブロック４０４から計算された相違（距離）、最も近い既存の発音、音響モデル（ＡＭ）信頼性、および新たな発音がユーザのディクテーションに現れた際の周波数に基づく。こうした要因に選択的に基づいた、発音を追加するか否かの判定は、誤整列によるエラーおよび／またはユーザが訂正を行っているか否かについての間違った推論によって、本システムの有効性を低下させる学習が引き起こされないようにするのを助ける。発音信頼性計算(pronunciation confidence calculation)の一例は、以下の計算を含む。
【００４３】
Ｃ(pron)＝１−（１−ｐ(d,AM))f、および
Ｃ(pron)＝１／[ｄ／ｆ／log（len1＋len2）]
上式において、ｄは、レキシコン（語彙目録，辞書）における認識された発音と最良一致の間の相違（距離）であり、ｆは、認識された同じ発音が発音される周波数であり、ｐ(d,AM)は、このような相違（距離）ｄおよびＡＭスコアを有する発音が正しい発音である確率である。len1およびlen2は、それぞれ新たな発音および最も近い発音における音素の長さである。Ｐ(d,AM)は、トレーニングによって学習される。
【００４４】
ブロック４０８において、本システムは、新たな発音を選択的に追加する。好ましくは、ブロック４０６で計算された信頼性スコア(confidence score)が十分に高く、かつユーザのディクテーションにおいて新たな発音が、選択された回数（Ｎ回）生じた場合に発音が追加される。
【００４５】
計算された信頼性スコアに閾値(threshold)を適用することによって、本実施形態によるシステムは、単なるユーザの意向の変化による編集からの学習によってシステムが過度に影響されないようにするために、最少量のみを学習する。
【００４６】
これまでは特定の実施形態を参照して本発明を説明してきたが、本発明の精神(spirit)および範囲(scope)から逸脱することなく、形体および細部において変更を行い得ることが当業者には理解されよう。例えば、上記の説明のほとんどは、正確さを向上するための、システムへの情報の追加に焦点を当てているが、本発明の実施形態は、システムからのワードの削除も含む。
【図面の簡単な説明】
【００４７】
【図１】本発明を実施するためのコンピューティング環境を例示したブロック図である。
【図２】本発明を実施するための代替コンピューティング環境を示すブロック図である。
【図３】本発明の一実施形態による音声認識システムを用いた学習方法を示す流れ図である。
【図４】本発明の一実施形態による音声認識システムを用いた学習方法の一部分を詳細に示す流れ図である。
【符号の説明】
【００４８】
１２０  処理ユニット
１３０  システムメモリ
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  他のプログラムモジュール
１３７  プログラムデータ
１４０  取り外し不可の不揮発性メモリインターフェース
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  他のプログラムモジュール
１４７  プログラムデータ
１５０  取り外し可能な不揮発性メモリインターフェース
１６０  ユーザ入力インターフェース
１６１  ポインティングデバイス
１６２  キーボード
１６３  マイクロホン
１７０  ネットワークインターフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  ワイドエリアネットワーク
１８０  リモートコンピュータ
１８５  リモートアプリケーションプログラム
１９０  ビデオインターフェース
１９１  モニタ
１９５  出力周辺インターフェース
１９６  プリンタ
１９７  スピーカ
２０２  プロセッサ
２０４  メモリ
２０８  通信インターフェース
２１４  アプリケーション（群）
２１６  オブジェクトストア
【図１】
0004657736.tif 000002
【図２】
0004657736.tif 000003
【図３】
0004657736.tif 000004
【図４】
0004657736.tif 000005