(57)【特許請求の範囲】
【請求項１】
音声認識システムのユーザをエンロールするための、コンピュータが実行するエンロールメント方法において、
複数のユーザ・アタランスを含みエンロール用テキストに略々対応しているユーザ音声を表すデータを収集するデータ収集処理を実行し、
１つのユーザ・アタランスに対応したデータの音響コンテンツを解析する解析処理を実行し、
前記解析の結果に基づいて、当該ユーザ・アタランスが前記エンロール用テキストのいずれかの部分とマッチングしているか否かを判定し、
当該ユーザ・アタランスが前記エンロール用テキストのいずれかの部分とマッチングしていたならば、当該ユーザ・アタランスの音響コンテンツに基づいて、前記エンロール用テキストの当該部分に対応した音響モデルを更新し、
当該ユーザ・アタランスが前記エンロール用テキストのいずれかの部分とマッチングしているか否かを判定する際に、ユーザが前記エンロール用テキストの単語を読み飛ばしても当該ユーザ・アタランスのマッチングの有無を判定し得るようにした、
ことを特徴とする方法。
【請求項２】
前記データ収集処理において、前記方法を実行するコンピュータとは物理的に分離した録音装置を用いて録音されたデータを収集することを特徴とする請求項１記載の方法。
【請求項３】
前記録音装置がディジタル録音装置であり、
前記データ収集処理において、前記ディジタル録音装置からファイルを受取るようにした、
ことを特徴とする請求項２記載の方法。
【請求項４】
前記データ収集処理において、ユーザの音声を録音装置で再生することによって生成された信号を受取ることを特徴とする請求項３記載の方法。
【請求項５】
前記録音装置がアナログ録音装置であることを特徴とする請求項４記載の方法。
【請求項６】
前記エンロール用テキストの一部分をアクティブ部分に指定するアクティブ部分指定処理を実行し、１つのユーザ・アタランスに対応したデータの音響コンテンツを解析する前記解析処理において、前記エンロール用テキストのアクティブ部分に対して特定の相対位置にあるデータを解析することを特徴とする請求項１記載の方法。
【請求項７】
直前に解析したアタランスの前記エンロール用テキスト上における位置を識別し、前記エンロール用テキストの一部分をアクティブ部分に指定する前記アクティブ部分指定処理において、前記識別位置に基づいてアクティブ部分の指定を行うことを特徴とする請求項６記載の方法。
【請求項８】
前記アクティブ部分指定処理において、前記識別位置の前後に存在するテキストを含む部分をアクティブ部分に指定することを特徴とする請求項７記載の方法。
【請求項９】
前記アクティブ部分指定処理において、前記識別位置を含むパラグラフ、前記識別位置に先行するパラグラフ、及び前記識別位置に後続するパラグラフを含む部分をアクティブ部分に指定することを特徴とする請求項８記載の方法。
【請求項１０】
前記エンロール用テキストのアクティブ部分に対して特定の相対位置にあるデータを解析する際に、当該データと前記エンロール用テキストの当該アクティブ部分に含まれている単語のモデルとの間のマッチングを探索することを特徴とする請求項６記載の方法。
【請求項１１】
前記エンロール用テキストのアクティブ部分に対して特定の相対位置にあるデータを解析する際に、前記エンロール用テキストの当該アクティブ部分に対応したエンロール用グラマーを使用することを特徴とする請求項６記載の方法。
【請求項１２】
当該ユーザ・アタランスが前記エンロール用テキストのいずれかの部分とマッチングしているか否かを判定する際に、前記エンロール用テキストに対応したエンロール用グラマーを使用することを特徴とする請求項１記載の方法。
【請求項１３】
当該ユーザ・アタランスが前記エンロール用テキストのいずれかの部分とマッチングしているか否かを判定する際に、更にリジェクション・グラマーを使用することを特徴とする請求項１２記載の方法。
【請求項１４】
前記リジェクション・グラマーが、音素グラマーから成ることを特徴とする請求項１３記載の方法。
【請求項１５】
前記リジェクション・グラマーが、前記エンロール用グラマーが使用する音素集合より小さな音素集合を使用してアタランスをモデル化するグラマーであることを特徴とする請求項１４記載の方法。
【請求項１６】
当該ユーザ・アタランスが前記エンロール用テキストのいかなる部分ともマッチングしない場合に、当該ユーザ・アタランスを無視することを特徴とする請求項１記載の方法。
【請求項１７】
音声認識システムのユーザをエンロールするための、コンピュータが実行するエンロールメント方法において、
ポータブル録音装置を用いてエンロール用テキストに略々対応したユーザの音声を録音し、
録音した音声をコンピュータへ転送し、
前記コンピュータを使用して、前記録音音声の音響コンテンツを解析し、
前記コンピュータを使用して、前記解析の結果に基づいて、前記エンロール用テキストの複数の部分の夫々にマッチングする前記音声の複数の部分を識別し、
前記コンピュータを使用して、前記音声のマッチング部分の音響コンテンツに基づいて、前記エンロール用テキストのマッチング部分に対応した夫々の音響モデルを更新する、
ことを特徴とする方法。
【請求項１８】
録音した前記音声が、前記エンロール用テキストのある部分を読み飛ばし、または、前記エンロール用テキストのある部分を反復していることを特徴とする請求項１７記載の方法。
【請求項１９】
プログラムを記録したコンピュータが読取り可能な格納媒体であって、該プログラムはコンピュータに、
複数のユーザ・アタランスを含みエンロール用テキストに略々対応しているユーザ音声を表すデータを収集するデータ収集処理を実行させ、
１つのユーザ・アタランスに対応したデータの音響コンテンツを解析する解析処理を実行させ、
前記解析の結果に基づいて、当該ユーザ・アタランスが前記エンロール用テキストのいずれかの部分とマッチングしているか否かを判定させ、
当該ユーザ・アタランスの音響コンテンツに基づいて、前記エンロール用テキストの当該ユーザ・アタランスにマッチングしている部分に対応した音響モデルを更新させるための命令を含み、
以上の命令がコンピュータのコンフィギュレーションを設定することにより、ユーザが前記エンロール用テキストの単語を読み飛ばしても当該ユーザ・アタランスのマッチングの有無を判定し得るようにした、ことを特徴とするプログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項２０】
ユーザをエンロールする音声認識システムにおいて、
音声信号を受取るための入力デバイスを備え、
プロセッサを備え、
複数のユーザ・アタランスを含みエンロール用テキストに略々対応しているユーザ音声を表すデータを収集するデータ収集処理を実行するように前記プロセッサが設定されており、
１つのユーザ・アタランスに対応したデータの音響コンテンツを解析する解析処理を実行するように前記プロセッサが設定されており、
前記解析の結果に基づいて、当該ユーザ・アタランスが前記エンロール用テキストのいずれかの部分とマッチングしているか否かを判定するように前記プロセッサが設定されており、
当該ユーザ・アタランスの音響コンテンツに基づいて、前記エンロール用テキストの当該ユーザ・アタランスにマッチングしている部分に対応した音響モデルを更新するように前記プロセッサが設定されており、
ユーザが前記エンロール用テキストの単語を読み飛ばしても当該ユーザ・アタランスのマッチングの有無を判定し得るように前記プロセッサが設定されている、
ことを特徴とする音声認識システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音声認識におけるエンロールメントに関する。
【０００２】
【従来の技術】
音声認識システムは、ユーザの音声を解析して、ユーザが何を話しているかを判定するシステムである。音声認識システムの殆どは、フレーム方式のシステムである。フレーム方式のシステムでは、プロセッサが、認識対象音声を表している信号を非常に短い時間部分に分割して、一連のディジタル・フレームを生成する。
【０００３】
連続音声認識システムは、ユーザが個々の単語ごと、ないしは語句ごとに区切って発声する必要がなく、連続して発声した一連の単語ないし語句を認識する能力を備えた音声認識システムである。これに対して、分離音声認識システムは、個々に区切って発声した単語ないし語句を認識するようにした音声認識システムであり、ユーザは、個々の単語ないし語句を発声するたびに、その後に短い間を置かなければならない。一般的に、連続音声認識システムは、分離音声認識システムと比べて誤認識の発生頻度が高いが、それは、連続した音声を認識するための認識作業がそれだけ複雑だからである。
【０００４】
連続音声認識システムのプロセッサは、一般的に、音声の「アタランス（ｕｔｔｅｒａｎｃｅ：前後を沈黙で区切られたひとまとまりの発声）」を解析するように設定されている。１個のアタランスに含まれるフレームの数は一定しておらず、所定長さ以上のポーズ（沈黙）が発生した場合に、そのポーズまでの音声部分をもって、１個のアタランスと見なすようにしている。
【０００５】
ユーザが何を話しているかを判定するために、プロセッサは先ず、１個のアタランスに含まれている複数のディジタル・フレームの各々に対して最良のマッチングを示す夫々の音響モデルを判定し、続いて、それら音響モデルに対応するテキストを判定する。様々な単語、語句、それにコマンドの集合をボキャブラリと呼び、１個の音響モデルは、ボキャブラリのうちの、１個の単語、１個の語句、または１個のコマンドに対応していることもあれば、単語等の部分を構成している１個の音、即ち音素に対応していることもある。１個の単語が複数の音素によって構成されているとき、それら音素の集合により、その単語の表音綴り字（ｐｈｏｎｅｔｉｃ  ｓｐｅｌｌｉｎｇ）が表されている。音響モデルのうちには、沈黙を表す音響モデルや、種々の環境ノイズを表す音響モデルも含まれている。
【０００６】
最良のマッチングを示す音響モデルの集合に対応する単語ないし語句は、認識候補と呼ばれる。プロセッサは、１個のアタランスに対して、ただ１つの認識候補しか生成しない（即ち、ただ１つの単語列ないし語句列しか生成しない）こともあれば、複数の認識候補を生成することもあり、後者の場合には、それら認識候補を列挙したリストを生成することになる。
【０００７】
一般的に、音響モデルとは、その音響モデルに対応した音声単位（例えば、音素）が、様々な発声者によってどのように発声されているかを記述したデータのことをいう。音響モデルがある特定のユーザの音声を表すときの精度を向上させて誤認識の発生頻度を低下させるために、音声認識システムは、音響モデルに対して、特定のユーザの音声に適応させるための修正を加えるようにしている。この音響モデルに対する修正は、音声認識システムの使用開始に際して実行する初期エンロールメント・セッションにおいて実行され、また、その後の音声認識システム使用中にも実行することができ、いずれの場合も、ユーザの音声のサンプルを収集し、その収集したサンプルに基づいて音響モデルに修正を加える。
【０００８】
従来の音声認識システムに組込まれているエンロールメント・セッションは、一般的に、ユーザに所定の単語リストの単語を読み上げさせたり、ユーザにプロンプトを発して特別の単語を読み上げさせるようにしたものであった。例えば、米国、マサチューセッツ州、ニュートン市に所在のドラゴン・システムズ社（Ｄｒａｇｏｎ  Ｓｙｓｔｅｍｓ，  Ｉｎｃ．）が販売している「ＤｒａｇｏｎＤｉｃｔａｔｅ  ｆｏｒ  Ｗｉｎｄｏｗｓ」という製品に組込まれている短時間で実行できるエンロールメント・セッションでは、新ユーザにプロンプトを発して、少数の単語から成る単語リスト中の各単語を発声させ、そのユーザの発声に基づいて音響モデルの適応化を実行するようにしている。
【０００９】
更にその他の様々なエンロールメント方式がこれまでに採用されている。例えば、米国、マサチューセッツ州、ニュートン市に所在のドラゴン・システムズ社（Ｄｒａｇｏｎ  Ｓｙｓｔｅｍｓ，  Ｉｎｃ．）が販売している「ＮａｔｕｒａｌｌｙＳｐｅａｋｉｎｇ」という製品に組込まれているインタラクティブ方式のエンロールメント・セッションは、適当なエンロール用テキストを選択して新ユーザに読み上げさせるようにしており、その際に、そのエンロール用テキスト中のユーザが読み上げるべき位置を、エンロールメント用のディスプレイ（例えば矢印）によって指示するようにしている。
【００１０】
【発明の概要】
本発明は、音声認識システムのユーザをエンロールするための、ノンインタラクティブ方式のエンロールメント方法を提供するものである。この方法はノンインタラクティブ方式であるため、ユーザは、例えばポータブル録音装置を用いてエンロール用音声を録音し、その録音した音声を後刻ダウンロードして処理させることによって、音声認識システムの音響モデルをより精緻なものに更新することができる。この方法によれば、音声はエンロール用テキストに略々対応しているだけでよく、ユーザが、単語、語句、センテンス、ないしはパラグラフを読み飛ばしたり、反復して読み上げたりしても全く問題を生じない。この方法は、ユーザ音声を、エンロール用テキストに対比させて解析するようにしており、それによって、その音声のうちの、エンロール用テキストのいずれかの部分とマッチングする部分を識別し、そして、そのユーザ音声のマッチング部分に基づいて、エンロール用テキストのマッチング部分に対応した夫々の音響モデルを更新するようにしている。この方法を用いれば、エンロールメント・プロセスの融通性を増大させることができ、それによって、エンロールメント作業をより容易に実行できるようにすることができる。
【００１１】
大局的にとらえた特徴の１つは次の通りである。先ず、音声認識システムのユーザをコンピュータがエンロールする際に、エンロール用テキストに略々対応しているユーザの音声を表すデータを収集する。コンピュータは、１つのユーザ・アタランスの音響コンテンツを解析し、その解析の結果に基づいて、当該ユーザ・アタランスが前記エンロール用テキストのいずれかの部分とマッチングしているか否かを判定する。当該ユーザ・アタランスが前記エンロール用テキストのいずれかの部分とマッチングしていたならば、当該ユーザ・アタランスの音響コンテンツに基づいて、前記エンロール用テキストの当該部分に対応した音響モデルを更新する。ユーザが前記エンロール用テキストの単語、センテンス、ないしはパラグラフを読み飛ばし、或いは、反復して読み上げた場合でも、当該ユーザ・アタランスが前記エンロール用テキストのいずれかの部分とマッチングしているか否かを判定することができる。
【００１２】
具体的な実施の形態は、以下に列挙する特徴の１つまたは幾つかを備えたものとすることができる。本発明によるエンロールメント作業は、インタラクティブ方式で行われるものではない。そのため、ユーザ音声を表す前記データは、コンピュータとは物理的に分離した録音装置を用いて録音されたデータとすることができる。例えば、その録音装置をディジタル録音装置として、そのディジタル録音装置からファイルを受取ることで、前記データを収集するようにすることができる。また、ユーザの音声を録音装置で再生することによって生成された信号を受取ることで、前記データを収集するようにすることもでき、この場合の録音装置は、例えばアナログ録音装置であってもよい。
【００１３】
ユーザ・アタランスの解析を実行する前に、コンピュータが、前記データを複数のグループに区分するようにし、区分した各グループが、ユーザが発声したアタランスの１個ずつを表しているようにしてもよい。
【００１４】
コンピュータが、前記エンロール用テキストの一部分をアクティブ部分に指定して、１個のユーザ・アタランスに対応したデータの音響コンテンツを解析する際に、そのエンロール用テキストのアクティブ部分に対して特定の相対位置にあるデータを解析するようにしてもよい。また、コンピュータが、直前に解析したアタランスの前記エンロール用テキスト上における位置を識別し、更に、前記エンロール用テキストの一部分をアクティブ部分に指定する際に、前記識別位置に基づいてアクティブ部分の指定を行うようにしてもよい。その場合、前記識別位置の前後に存在するテキストを含む部分をもってアクティブ部分としてもよい。例えば、前記識別位置を含むパラグラフとそのパラグラフの前後に位置するパラグラフとを含む部分をもってアクティブ部分とすることができる。
【００１５】
コンピュータが、前記データと、前記エンロール用テキストのアクティブ部分に含まれている単語のモデルとの間のマッチングを探索するようにしてもよい。また、その際には、コンピュータが、前記エンロール用テキストのアクティブ部分に対応したエンロール用グラマーを使用するようにしてもよい。
【００１６】
また、リジェクション・グラマーを使用して、当該ユーザ・アタランスが前記エンロール用テキストのいずれかの部分とマッチングしているか否かを判定するようにしてもよい。前記リジェクション・グラマーを、音素グラマーから成るものとしてもよく、また、前記リジェクション・グラマーを、前記エンロール用グラマーが使用する音素集合より小さな音素集合を使用してアタランスをモデル化するグラマーとしてもよい。
【００１７】
各々が対応したエンロール用グラマーを有する複数のエンロール用テキストのうちから、適当なエンロール用テキストを選択して使用するようにしてもよい。また、ユーザからエンロール用テキストを受取って使用するようにしてもよい。更に、その場合には、ユーザ・アタランスがそのエンロール用テキストのいずれか部分にマッチングしているか否かを判定するために使用する、その受取ったエンロール用テキストに対応したエンロール用グラマーは、新たに生成するようにすればよい。
【００１８】
当該ユーザ・アタランスが前記エンロール用テキストのいかなる部分ともマッチングしない場合には、当該ユーザ・アタランスを無視するようにしてもよい。大局的にとらえたもう１つの特徴は、次のようなものである。音声認識システムのユーザをエンロールするために、ポータブル録音装置を用いてユーザの音声を録音し、その録音した音声をコンピュータへ転送する。続いて、コンピュータを使用して、その録音した音声の音響コンテンツを解析し、その解析の結果に基づいて、前記エンロール用テキストの複数の部分の夫々にマッチングする前記音声の複数の部分を識別し、そして、前記音声のマッチング部分の音響コンテンツに基づいて、前記エンロール用テキストのマッチング部分に対応した夫々の音響モデルを更新する。録音した音声は、前記エンロール用テキストのある部分を読み飛ばしていても、また、前記エンロール用テキストのある部分を反復して読み上げていてもかまわない。
【００１９】
大局的にとらえた更に別の特徴は、次のようなものであり、即ち、物理的に独立した録音装置を用いてエンロール用テキストに対応したデータを収集すると共に、そのエンロール用テキストの一部分をアクティブ部分に指定し、そのエンロール用テキストのアクティブ部分に対して特定の相対位置にあるアタランスの音響コンテンツを解析するというものである。
【００２０】
その他の特徴及び利点は、以下の詳細な説明、図面、及び請求項から明らかな通りである。
【００２１】
【詳細な説明】
図１において、音声認識システム１００は、複数の入出力（Ｉ／Ｏ）デバイス（図示例では、マイクロホン１０５，マウス１１０，キーボード１１５，及びディスプレイ１２０）と、汎用コンピュータ１２５とを備えている。汎用コンピュータ１２５は、プロセッサ（ＣＰＵ）１３０，Ｉ／Ｏユニット１３５，及びサウンド・カード１４０を備えている。メモリ１４５には、データ及びプログラムが格納されており、格納されているプログラムには、オペレーティング・システム１５０、アプリケーション・プログラム１５５（例えば、ワード・プロセッサのプログラム等）、それに音声認識ソフトウェア１６０などが含まれている。
【００２２】
マイクロホン１０５は、ユーザの音声をひろって、その音声をアナログ信号の形でサウンド・カード１４０へ伝達する。サウンド・カード１４０では、その信号がＡ／Ｄコンバータで処理され、それによって、そのアナログ信号がディジタル・サンプル集合に変換される。プロセッサ１３０は、オペレーティング・システム１５０及び音声認識ソフトウェア１６０の制御下にあって、ユーザの連続音声に含まれている複数のアタランスの各々を識別する。アタランスとは、十分に長い所定時間長さ（例えば、１６０〜２５０ミリ秒）の休止（ポーズ）によって前後が区切られた、ひとまとまりの発声部分をいう。アタランスには、ユーザの音声中の１個の単語だけから成るアタランスもあれば、２個以上の単語から成るアタランスもある。
【００２３】
この音声認識システムには更に、アナログ・レコーダ・ポート１６５，及び／または、ディジタル・レコーダ・ポート１７０を装備することができる。アナログ・レコーダ・ポート１６５は、サウンド・カード１４０に接続しており、ハンドヘルド型レコーダ（手持型録音装置）を用いて録音した音声をサウンド・カード１４０へ入力する際にこのポート１６５を使用する。このアナログ・レコーダ・ポート１６５は、ハンドヘルド型レコーダをこのポート１６５に挿入したときに、そのレコーダのスピーカと対向する位置にマイクロホンを配設した構成のものとしてもよく、また、マイクロホン１０５をアナログ・レコーダ・ポートとして利用するようにしてもよい。また更に、アナログ・レコーダ・ポート１６５をテープ・プレーヤで構成し、ハンドヘルド型レコーダで録音したテープを、そのテープ・プレーヤに挿入することによって、そのテープに録音されている情報がサウンド・カード１４０へ転送されるようにしてもよい。
【００２４】
ディジタル・レコーダ・ポート１７０は、例えばハンドヘルド型ディジタル録音装置を使用して生成したディジタル・ファイルを転送するためのポートとして構成することができる。またその場合には、そのディジタル・ファイルを直接、メモリ１４５へ転送する構成としてもよい。更に、ディジタル・レコーダ・ポート１７０は、コンピュータ１２５の記憶装置（例えばフロッピー・ドライブ）で構成することもでき、また、リモート・ロケーションとの間で電気通信を行うためのモデム・カードやネットワーク・カードで構成してもよい。
【００２５】
図２は、音声認識ソフトウェア１６０の構成要素を示した図である。理解を容易にするために、以下の説明では、それら構成要素が、ある特定の結果を得るための動作を実行するというように説明する。ただし実際には、それら構成要素の各々は、プロセッサ１３０が特定の処理手順に従って動作することによって実現されるものである。
【００２６】
先ず、フロントエンド処理モジュール２００は、サウンド・カード１４０から（またはディジタル・レコーダ・ポート１７０から）転送されてくる一連のディジタル・サンプル２０５を、１個のアタランスの周波数成分を表す一連のパラメータ・フレーム２１０へ変換する。各々のフレームは、２４個のパラメータを含んでおり、１個のアタランスの非常に短い時間部分（例えば１０ミリ秒に相当する部分）を表している。
【００２７】
認識部２１５は、ある１個のアタランスに対応した一連のフレームを受取ったならば、それらフレームに処理を施して、当該アタランスに対応したテキストを識別する。そのために、認識部２１５は、そのテキストに関する幾つかの仮定を考察して、それら仮定の夫々のスコアを付与する。各々の仮定に付与するスコアは、その仮定がユーザの音声に対応している確率を反映した値を有する。処理を容易にするために、このスコアの値は、負の対数値で表すようにしている。この場合、スコアの値が小さいほど、マッチングは良好であり（即ち、仮定が真実である確率が高い）、一方、スコアの値が大きいほど、マッチングの見込みは小さい（即ち、仮定が真実である確率が低い）。従って、スコアの値が大きければ、それだけマッチングの尤度は低下する。認識部２１５は、１個のアタランスについて以上の処理を完了したならば、スコアが良好な幾つかの仮定を、複数の認識候補を列挙したリスト形で、制御／インターフェース・モジュール２２０へ供給する。この場合、そのリストに列挙されている認識候補は、その各々が、１つずつの仮定に対応しており、また、その各々にスコアが付与されている。それら認識候補のうちには、テキストに対応した認識候補が含まれていることもあり、また、コマンドに対応した認識候補が含まれていることもある。また、コマンドには、単語から成るコマンド、語句から成るコマンド、それに、センテンスから成るコマンドなどがある。
【００２８】
認識部２１５は、１個のアタランスを構成している複数のフレーム２１０を処理する際に、１個または２個以上の制約グラマー２２５に従ってその処理を実行する。制約グラマーは、テンプレートと呼ばれることもあり、また、規制ルールと呼ばれることもある。制約グラマーのうちには、あるアタランスに対応することのできる単語の条件をを規定しているもの、単語どうしの間の並び順の条件を規定しているもの、単語どうしの間の文法形態の条件を規定しているもの、それに、単語どうしの間の並び順の条件と文法形態の条件との両方を規定しているものなどがある。例えば、メニュー操作コマンドに関係した制約グラマーのうちには、メニューに示される項目（例えば「ファイル」や「編集」等）だけを集めた制約グラマーや、メニュー画面内での移動を行わせるコマンド単語（例えば「アップ（ｕｐ）」、「ダウン（ｄｏｗｎ）」、「トップ（ｔｏｐ）」、「ボトム（ｂｏｔｔｏｍ）」等）だけを集めた制約グラマーがある。制約グラマーは、アクティブ状態にされたり、非アクティブ状態にされたりするため、その時々で、アクティブ状態にある制約グラマーは異なっている。例えば、制約グラマーのうちには、特定のアプリケーション・プログラム１５５に関連付けられているものがあり、そのような制約グラマーは、ユーザがそのアプリケーション・プログラムを開いたならばアクティブ状態にされ、ユーザがそのアプリケーション・プログラムを閉じたならば非アクティブ状態にされる。認識部２１５は、アクティブ状態にある制約グラマーに違反する仮定を廃棄する。更に、認識部２１５は、ある種の制約グラマーに関連付けられている仮定のスコアに対しては、その制約グラマーの特性に基づいて調整を加えることがある。
【００２９】
音声認識ソフトウェア１６０が使用する制約グラマー２２５のうちの１つに、ラージ・ボキャブラリ・ディクテーション・グラマーがある。ラージ・ボキャブラリ・ディクテーション・グラマーは、アクティブ・ボキャブラリ２３０に含まれている単語を識別するためのグラマーであり、アクティブ・ボキャブラリ２３０は、ソフトウェアにとって既知の単語から成るボキャブラリである。ラージ・ボキャブラリ・ディクテーション・グラマーは、更に、夫々の単語の出現頻度も示している。ラージ・ボキャブラリ・ディクテーション・グラマーに用いる言語モデルは、各々の単語の出現頻度を、その単語の前後にどのような単語があるかを考慮せずに示したユニグラム・モデルとしてもよく、或いは、各々の単語の出現頻度を、その単語に先行する単語がどのようなものであるかを考慮して示したバイグラム・モデルとしてもよい。例えばバイグラム・モデルを使用する場合には、名詞や形容詞は、動詞や前置詞と比べて、「ザ（ｔｈｅ）」の後にくる確率が高いということを規定することができる。
【００３０】
アクティブ・ボキャブラリ２３０に含まれている各単語は、発音モデルで表されており、より詳しくは、各単語は、その単語の表音綴り字を成す音素列によって表されている。また、各音素は、３個のノードから成るトライフォンで表すことができる。トライフォンは前後関係を考慮した音素であり、例えば「ａｂｃ」というトライフォンは、音素「ｂ」の前に音素「ａ」が存在し、音素「ｂ」の後に音素「ｃ」が存在するものであり、従って、音素「ａ」及び「ｃ」が前後関係として付随する音素「ｂ」を表している。
【００３１】
音素は音響モデル２３５によって表される。音素としてトライフォンを使用している場合には、音響モデル２３５は、トライフォンの各ノードを、複数のガウス型（正規分布型）確率密度関数（ＰＤＦ）の混合によって表すものとなっている。例えば、トライフォン「ａｂｃ」のノード「ｉ」は、次の［式１］に示したａｂiｃで表される。
【００３２】
【数１】
0004510953.tif 000002
この［式１］において、ｗkで表した各係数は混合重みであり、次の［式２］が成り立つ。
【００３３】
【数２】
0004510953.tif 000003
また［式１］において、μkは、確率密度関数（ＰＤＦ）Ｎkの平均ベクトルであり、ｃkは、確率密度関数（ＰＤＦ）Ｎkの共分散行列である。フレーム・シーケンス中の各フレームが２４個のパラメータを含んでいるのと同様に、各ベクトルμkも２４個のパラメータを含んでいる。行列ｃkは、２４×２４行列である。トライフォンの各ノードは、最多では、例えば１６個のＰＤＦの混合として表される。
【００３４】
１つのディクテーション・ボキャブラリの全体は、アクティブ・ボキャブラリ２３０と、バックアップ・ボキャブラリ２４５とで構成されている。これらのうちバックアップ・ボキャブラリ２４５は、例えば、特定ユーザ用バックアップ・ボキャブラリ単語群と、全システム的バックアップ・ボキャブラリ単語群とを収容した複数のファイルで構成されるものである。全システム的バックアップ・ボキャブラリは、システムにとって既知の単語の全てを収容したものであり、ある時点でアクティブ・ボキャブラリに収容されている可能性のある単語は全て、この全システム的バックアップ・ボキャブラリに収容されている。
【００３５】
誤り修正作業の実行中には、バックアップ・ボキャブラリを対象とした単語検索を行うが、その際には、先に、特定ユーザ用バックアップ・ボキャブラリを検索し、その後に、全システム的バックアップ・ボキャブラリを検索する。また、これらバックアップ・ボキャブラリの検索は、ユーザがキーボードから打ち込んだテキストに新単語が含まれていた場合にも実行される。
【００３６】
認識部２１５は、プリフィルタ処理部２４０と並行して動作できるようにしてある。あるアタランスの処理を開始する際には、認識部２１５がプリフィルタ処理部２４０へ要求を発して、そのアタランスの先頭の単語として発声された可能性のある単語（即ち、そのアタランスの先頭の幾つかのフレームに対応する可能性のある単語）のリストを出力させる。プリフィルタ処理部２４０は、それら一連のフレームとアクティブ・ボキャブラリ２３０とを粗比較し、それによって、アクティブ・ボキャブラリ２３０に含まれている単語のうち、認識部２１５において、より精緻な比較を実行することが適当であると判断される単語だけを拾い出すことで、ボキャブラリの部分集合を編成する。
【００３７】
制御／インターフェース・モジュール２２０は、音声認識ソフトウェアの動作を制御しており、また、その他のソフトウェアとの間のインターフェース、並びに、ユーザとの間のインターフェースの機能を担っている。制御／インターフェース・モジュール２２０は、認識部２１５から、各アタランスに対応した複数の認識候補を列挙したリストを受取る。それら認識候補は、ディクテーション・テキストに対応した認識候補であったり、音声認識コマンドに対応した認識候補であったり、外部コマンドに対応した認識候補であったりする。このリスト中の最良スコアの認識候補がディクテーション・テキストに対応した認識候補であったならば、制御／インターフェース・モジュール２２０は、そのディクテーション・テキストを、例えばワード・プロセッサ等の、その時点でアクティブ状態にあるアプリケーションへ転送する。制御／インターフェース・モジュール２２０は更に、その最良スコアの認識候補を、グラフィカル・ユーザ・インターフェースを介してユーザに表示することもできる。更に、制御／インターフェース・モジュール２２０は、音声認識コマンド（例えば「ウェイク・アップ（ｗａｋｅ  ｕｐ）」コマンドや、「メイク・ザット（ｍａｋｅ  ｔｈａｔ）」コマンド）に応答して、音声認識ソフトウェアの動作を制御し、また、外部コマンドを、そのコマンドが対応しているソフトウェアへ転送する。
【００３８】
制御／インターフェース・モジュール２２０は更に、認識部２１５が使用するアクティブ・ボキャブラリ、音響モデル、及び制約グラマーの制御を実行する。例えば、音声認識ソフトウェアが、特定のアプリケーション（例えばＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄ等）に利用されているときには、制御／インターフェース・モジュール２２０は、アクティブ・ボキャブラリを更新して、そのアプリケーションに対応したコマンド単語を組込み、また、そのアプリケーションに対応した制約グラマーをアクティブ状態にする。
【００３９】
制御／インターフェース・モジュール２２０が担当しているその他の機能としては、ボキャブラリ・カスタマイザとしての機能、及びボキャブラリ・マネージャとしての機能がある。ボキャブラリ・カスタマイザは、ユーザから供給されたテキストをスキャンすることによって、特定のトピックの言語モデルを最適化するものである。また、ボキャブラリ・マネージャは、ボキャブラリ、グラマー、及びマクロのブラウズ（閲覧）及び操作を行うために用いられる開発ツールである。制御／インターフェース・モジュール２２０のこれら機能の各々は、メイン音声認識ソフトウェアから分離した実行プログラムとして構成するようにしてもよい。同様に、制御／インターフェース・モジュール２２０それ自体も、独立した実行プログラムとして構成するようにしてもよい。
【００４０】
制御／インターフェース・モジュール２２０は更に、エンロールメント・プログラムを実行する機能も担当している。エンロールメント・プログラムは、エンロール用テキストと、このエンロール用テキストに対応したエンロール用グラマーとを使用して、音声認識ソフトウェアを、特定のユーザに適応するようにカスタマイズするためのプログラムである。エンロールメント・プログラムの動作モードとしては、エンロールメント作業をどのように行うべきかを、エンロールメント・プログラムがユーザに指示するインタラクティブ・モードと、コンピュータとは無関係にユーザに自由にエンロールメント作業を行わせるノンインタラクティブ・モードとの、両方のモードが利用可能である。インタラクティブ・モードでは、エンロールメント・プログラムがエンロール用テキストをユーザに表示して、ユーザはその表示されたテキストを読み上げる。ユーザがそのテキストを読み上げて行くのに合わせて、認識部２１５が、エンロール用グラマーを使用して、ユーザが次々と発声する一連のアタランスとエンロール用テキストのうちのそれらアタランスに対応した夫々の部分とをマッチングさせて行く。そして、認識部２１５が、両者をマッチングさせることができなかったときには、エンロールメント・プログラムがユーザへプロンプトを発して、エンロール用テキストの該当部分の読み上げを再度実行させる。認識部２１５は更に、ユーザが発声するアタランスから得られる音響情報に基づいて、エンロール用テキストのマッチング部分に対応した音響モデル２３５のトレーニング、即ち適応化を実行する。
【００４１】
一方、ノンインタラクティブ・モードにおいては、ユーザは、コンピュータが発するプロンプトによって読み上げを指示されることなく、みずからの判断でエンロール用テキストの読み上げを行う。このモードでは、ユーザは、コンピュータがディスプレイ上に表示したテキストを読み上げるばかりでなく、コンピュータの動作とは全く無関係に、紙に印刷されたテキストを読み上げることによってエンロールメントを行うことも可能であるということが、このモードの大きな利点の１つである。従って、このモードを利用する場合、ユーザは、エンロール用テキストをポータブル録音装置に吹き込み、その録音した情報を後刻コンピュータにダウンロードして認識部２１５に処理を行わせるという方法を採ることもでき、更には、電話線を介してエンロール用テキストの読み上げを行うという方法を採ることもできる。また、このモードを利用する場合には、ユーザは、エンロール用テキストの全ての単語を読み上げる必要はなく、読み飛ばしたい単語やパラグラフは読み飛ばしてかまわない。更に、エンロール用テキストのうちのある部分を反復して読み上げてもかまわない。これらのことによって、エンロールメント作業の融通性が大いに高まっている。
【００４２】
エンロールメント・プログラムは、複数のエンロール用テキストを列挙したリストを提示して、使用するエンロール用テキストをユーザに選択させることができ、それらエンロール用テキストの各々には、そのテキストに対応したエンロール用グラマーが付属している。これとは別の方法として、ユーザが、よそで入手したエンロール用テキストを入力することも可能である。この場合には、エンロールメント・プログラムが、その入力されたエンロール用テキストからエンロール用グラマーを生成するか、或いは、予め生成しておいたエンロール用グラマーを使用するようにすればよい。
【００４３】
図３は、インタラクティブ・エンロールメント・プログラムのユーザ・インターフェース１３００を示した図である。ユーザ・インターフェース１３００は、エンロール用テキスト１３１０を表示して、ユーザが読み上げることができるようにすると共に、例えばそのエンロール用テキスト上を移動する矢印１３２０等によって、ユーザの現在位置を表示するようにしており、このユーザの現在位置のことを「エンロールメント・ポジション」という。図３のディスプレイでは、エンロールメント・ポジションが単語「ｆｏｒ」の位置にあり、これによって、この単語「ｆｏｒ」までの、ユーザによるエンロール用テキストの読み上げがエンロールメント・プログラムによって認識されたことが示されると共に、エンロールメント作業を続行するには、ユーザがこの単語「ｆｏｒ」から先の読み上げを続行すべきことが示されている。一方、図４では、エンロールメント・ポジションが単語「ｐｒｏｇｒａｍ」の位置にある。ユーザ・インターフェースがエンロールメント・ポジションを表示する方法としては、このように矢印を使用する以外に、認識対象となっている部分のテキストをハイライト表示にするという方法もあり、また、エンロールメント・ポジションにカーソルを表示するという方法もある。
【００４４】
図３のユーザ・インターフェース１３００を使用している場合に、ユーザがエンロールメント・プログラムを開始するには、先ず、音声コマンドを発するか、または、マウス等の入力デバイスを操作して、「Ｒｅｃｏｒｄ（録音）」ボタン１３３０を選択する。続いてユーザは、表示されたテキスト１３１０の読み上げを、矢印１３２０で示されているエンロールメント・ポジションから開始する。ユーザが読み上げて行くのに合わせて、認識部２１５が、エンロール用グラマーを使用して、ユーザの音声とエンロール用テキストとのマッチングを次々と調べて行くと共に、エンロールメント・ポジションを（即ち矢印１３２０を）、次に読み上げるべき単語の先頭位置へ進めて行く。そして、ユーザ・アタランスとのマッチングの結果に基づいて、エンロール用テキストに対応した一連の音響モデルを更新する。一般的に、認識部２１５は、エンロールメント作業の実行中は、プリフィルタ処理部２４０を利用していない。
【００４５】
図５に示したように、エンロールメント・プログラムは、先ず最初に、エンロール用テキストの先頭にエンロールメント・ポジションを設定し（ステップ１５１０）、続いてそのエンロールメント・ポジションに矢印を表示する（ステップ１５２０）。次に、エンロールメント・プログラムは、ユーザの音声を表している一連のディジタル・フレームのうちから、あるアタランスに相当するディジタル・フレームを取出す（ステップ１５３０）。次に、認識部２１５が、エンロール用テキストに対応したエンロール用グラマーを使用して、そのアタランスが、エンロール用テキストのうちの、エンロールメント・ポジションからはじまるある長さの部分とマッチングするか否かを判定する（ステップ５４０）。このときには、エンロール用テキストのうちの、どれほどの長さの部分がそのアタランスに対応しているかが分からないため、認識部２１５は、エンロール用グラマーを使用して、エンロール用テキストのエンロールメント・ポジション以降の様々な長さの部分のうち、そのアタランスに対して最良のマッチングを示す部分を識別する。
【００４６】
もし、エンロール用テキストのエンロールメント・ポジション以降のどの部分も、そのアタランスに対して良好なマッチングを示していなかったならば、エンロールメント・プログラムは、ユーザの音声を表している一連のディジタル・フレームのうちから、その次のユーザ・アタランスに相当する複数のディジタル・フレームを取出し、それらをエンロール用テキストと比較する処理を再び実行する（ステップ１５３０、１５４０）。一方、あるユーザ・アタランスとエンロール用テキストのいずれかの部分との間にマッチングが見いだされたならば、エンロールメント・プログラムは、エンロール用テキストのそのマッチング部分に対応した音響モデル２３５を、そのユーザ・アタランスに基づいて更新する（ステップ１５５０）。ただし、これに関する別の方法として、エンロールメント・プログラムが、エンロール用テキストのある特定のセグメント（例えばセンテンスやパラグラフ）の全体について認識作業を完了した後に、または、そのエンロール用テキストの全体について認識作業を完了した後に、音響モデルの更新をまとめて一度に行うようにしてもよい。
【００４７】
あるアタランスとマッチングしたエンロール用テキストのマッチング部分が、エンロール用テキストの末尾部分であって、それより後にはもうエンロール用テキストが残っていなければ（ステップ１５６０）、このエンロール用テキストを使用したエンロールメント・プログラムは終了する（ステップ１５７０）。エンロールメント・プログラムが、複数のエンロール用テキストを用意している場合には、１つのエンロール用テキストについての処理を終了したならば、自動的に次のエンロール用テキストについての処理を開始し、その新たなエンロール用テキストをディスプレイ上に表示して、そのエンロール用テキストの先頭にエンロールメント・ポジションを設定する（ステップ１５１０）。
【００４８】
一方、ステップ１５６０において、エンロール用テキストにまだ残りの部分があると判定されたならば、そのエンロール用テキストのマッチング部分に続く、その次の単語へエンロールメント・ポジションを移動させた上で（ステップ１５８０）、矢印の表示を更新して、その更新後のエンロールメント・ポジションに矢印を表示し（ステップ１５２０）、エンロールメント作業を続行する。
【００４９】
あるユーザ・アタランスがエンロール用テキストのいずれかの部分とマッチングするか否かの判定を行う（ステップ１５４０）ための方法には様々なものがある。例えば、ユーザが異なれば、エンロール用テキストの途中でポーズ（休止）を取る位置も異なるため、異なったユーザが発声したアタランスが、いずれもエンロール用テキストの同じ部分に対応するということはなく、この点を認識するようなエンロール用グラマーを設定するようにしてもよい。記述のごとく、ここに説明しているエンロールメント・グラマーは、エンロール用テキストの様々な長さの部分とユーザ・アタランスとの間のマッチングを調べることができるようにすることで、そのような状況に対処できるようにしたものである。
【００５０】
また、ユーザ・アタランスがエンロール用テキストのいずれかの部分とマッチングしているか否かの判定に際しては、ユーザがエンロール用テキスト読み上げるときの読み上げ方が一通りではないため、様々な読み上げ方を認識して適切に対処できるようにエンロール用グラマーを設定するのがよい。様々な読み上げ方が予想される具体例としては、ディクテーションを行う際の、句読点の発声の仕方についての約束事がある。即ち、センテンスの末尾においてユーザが「ピリオド（ｐｅｒｉｏｄ）」と発声する読み上げ方がある。これに対処するためには、センテンスの末尾で単語「ｐｅｒｉｏｄ」が発声されたときには、それをオプション単語であると認識するようにエンロール用グラマーを設定しておけばよい。この場合、ユーザが「ピリオド」と発声したならば、エンロール用グラマーは、そのユーザの音声を「ｐｅｒｉｏｄ」という単語にマッチングさせ、その音声に基づいて単語に対応した音響モデルの更新を行う。一方、ユーザが「ピリオド」と発声しなかったならば、エンロール用グラマーは、単語「ｐｅｒｉｏｄ」はオプション単語であるものとして無視してしまい、エンロール用テキストの次の単語の処理に取りかかる。
【００５１】
同様のルールを定めることで、段落書式に関するユーザの発声（例えば、ニュー・ライン（行替え）や、ニュー・パラグラフ（新段落）等）、それに、フォーマッティング方式に関するユーザの発声（例えば、キャピタライズ（大文字）、ボールド（太文字）、アンダーライン（下線）、イタリック等）にも対処することができる。例えば、図３中に示したテキストに対応したエンロール用グラマーは、拡張Ｂａｃｋｕｓ−Ｎａｕｒ形式（ＥＢＮＦ）で表したときに、次のように表されるものとすればよい。
＜認識結果＞：：＝［キャピタライズ］ｄｒａｇｏｎ［キャピタライズ］ｓｙｓｔｅｍ  ｉｓ  ｐｌｅａｓｅｄ  ｔｏ  ａｃｋｎｏｗｌｅｄｇｅ［キャピタライズ］ａｒｔｈｅｒ［キャピタライズ］ｃ［ピリオド］［キャピタライズ］ｃｌａｒｋｉｅ  ａｎｄ［キャピタライズ］ｈａｒｐｅｒ［キャピタライズ］ｃｏｌｌｉｎｓ［キャピタライズ］ｐｕｂｌｉｓｈｅｒｓ  ｆｏｒ  ａｌｌｏｗｉｎｇ  ｕｓ  ｔｏ  ｕｓｅ  ｓｅｌｅｃｔｉｏｎｓ  ｆｒｏｍ［キャピタライズ］ａｒｔｈｅｒ［キャピタライズ］ｃ［ピリオド］［キャピタライズ］｛ｃｌａｒｋｅ‘ｓ｜ｃｌａｒｋｅ  Ａｐｏｓｔｒｏｐｈｅ  ｓ｝ｎｏｖｅｌ  ｔｈｒｅｅｔｈｏｕｓａｎｄ［キャピタライズ］ｏｎｅ［コロン］［キャピタライズ］ｔｈｅ［キャピタライズ］ｆｉｎａｌ［キャピタライズ］ｏｄｙｓｓｅｙ［コンマ］ｆｏｒ  ｏｕｒ  ｔｒａｉｎｉｎｇ  ｐｒｏｇｒａｍ［ピリオド］
このＥＢＮＦ表記において、
［］は、オプションであることを表しており、
＜＞は、ルールであることを表しており、
｜は、ＯＲ関数であり、
：：＝は、定義であって、左右両辺が等しいことを表している。
このエンロール用グラマーには、ユーザがエンロール用テキスト上を前進して行くにつれて、変更が加えられて行く。例えばユーザが、図３に矢印１３２０で示したように、エンロール用テキスト上の単語「ｆｏｒ」の位置にきたときには、このエンロール用グラマーは、ＥＢＮＦで表した場合に、次のように表されるものになっている。
0004510953.tif 000004
別法として、このエンロール用グラマーを、複数のルールから成るルール集合で表すことも可能である。添付図Ａに、図３に示したエンロール用テキストに対応したルール型グラマーの可能な例を示した。ルール型グラマーの利点の１つは、ユーザがエンロール用テキスト上を前進して行くにつれて、変更を加えて行く必要がないことである。
【００５２】
一般的に、エンロールメント・プログラムを実行することによって、音声認識システムの誤認識発生率を低下させることができる。それが可能であるのは、ユーザがエンロール用テキストを読み上げることによって、様々な音響モデルに対応したそのユーザの音声が収集され、それら発音に基づいて、それら音響モデルがそのユーザの音声に適応するようにカスタマイズされるからである。ただし、ユーザが、本来読み上げるはずのエンロール用テキスト以外の何か他の言葉を発した場合には、その発声に基づいて、本来読み上げるはずのエンロール用テキストに対応した音響モデルの更新を行う訳には行かない。このような状況が発生することがあるのは、例えば、ディスプレイ上に表示されているテキスト１２１０のうちの１行をユーザが読み飛ばしてしまった場合や、ディスプレイ上に表示されている単語をユーザが別の単語に読み違えてしまった場合、それに、ディスプレイ上に表示されているテキストを読み上げているときに話しかけられて、ユーザが他者と会話をしてしまった場合などである。また、このような状況は更に、音声認識システムが、ユーザの音声以外の咳やくしゃみ、それに交通騒音や犬の吠え声などの環境騒音を拾ってしまった場合にも発生することがある。
【００５３】
エンロール用グラマーを使用することによって、認識部２１５は、エンロール用テキストのうちの、あるユーザ・アタランスに最も良く対応している部分を識別することができる。しかしながら、エンロール用グラマーを使用しても、認識部２１５は、そのユーザ・アタランスが実際にそのエンロール用テキストに対応しているか否かを検証することまではできない。その検証を可能にするために、ここでは、エンロールメント・プログラムが、エンロール用グラマーと併用する形でリジェクション・グラマーを使用するようにしており、これによって、認識部２１５が検出した音声が、本来ユーザが読み上げるはずのエンロール用テキストとマッチングしていないという状況を識別できるようにしている。
【００５４】
図６は、図５のステップ１５４０のプロセスを更に詳細に示した図であり、このプロセスでは、エンロール用グラマーとリジェクション・グラマーとを併用することで、ユーザ・アタランスに基づいてエンロール用テキストの音響モデルの更新を行ってはならない状況を検出するようにしている。そのために、エンロールメント・プログラムは、エンロール用グラマーに対応した最良の認識候補を識別して、認識部２１５がその認識候補に付与したスコアを、エンロールメント・スコアに指定する（ステップ１５４１）。このとき、認識部２１５は、例えば音響モデル及び単語の前後関係についてのマッチングを行うことによって、その認識候補に付与するスコアを決定するようにすればよい。
【００５５】
たとえ最良スコアの認識候補であっても、エンロール用テキストに良好にマッチングしていないことがある。例えば、図３に示すように、エンロールメント・ポジションが単語「ｆｏｒ」に設定されているにもかかわらず、ユーザがそれを見誤って発声したために、そのユーザ・アタランスが、エンロールメント・ポジションの１つ前の行に示されている「ｆｒｏｍ  Ａｒｔｈｕｒ  ｃ．  Ｃｌａｒｋｅ‘ｓ  ｎｏｖｅｌ」になってしまったものとする。この場合、認識部２１５は、そのユーザ・アタランスと、エンロール用グラマーのうちの「ｆｏｒ」以降の部分との間のマッチングを探索するため、認識部２１５が生成する最良のマッチングを示す認識候補は、エンロール用グラマーのうちの「ｆｏｒ」以降の部分に対して最良のマッチングを示す認識候補になってしまう。
【００５６】
エンロールメント・プログラムは更に、リジェクション・グラマーに対応した最良の認識候補を識別して、認識部２１５がその認識候補に付与したスコアを、リジェクション・スコアに指定する（ステップ１５４２）。一般的に、ユーザ・アタランスが、エンロール用テキストのうちの本来読み上げられるはずの部分に対応していない場合には、リジェクション・スコアの方がエンロールメント・スコアより良好なスコアになる。このリジェクション・グラマーをＥＢＮＦで表すと、次のように表される。
＜認識結果＞：：＝＜音素列＞
このＥＢＮＦ表記において、
＜音素列＞：：＝音素［＜音素列＞］、である。
また、ここで音素として表示しているのは、リジェクション・グラマー用音素集合に含まれている任意の音素である。リジェクション・グラマー用音素集合は、発声されることが予想される音声に含まれる殆どの音を、ある程度良好にモデル化できるように選定した音素から成る集合である。上のＥＢＮＦ表記に示したように、リジェクション・グラマーを、それら音素のいかなる組合せをも許容するように定めてある場合には、あるアタランスに対して最良のマッチングを示す音素列を求めるために必要とされる処理量が膨大なものとなるおそれがある。そこで、リジェクション・グラマー音素集合は、認識部２１５が使用する音素集合のうちの部分集合に相当する、少数の音素しか含まないものにしておくのがよい。例えば、添付図Ｂに示した例では、全体の音素集合が５０個の音素から成るのに対して、リジェクション・グラマー用音素集合は、その部分集合に相当する１９個の音素しか含まない音素集合となっている。
【００５７】
リジェクション・グラマーは、そのユーザ・アタランスを構成している複数の音響を、リジェクション・グラマー音素集合に含まれる音素から成る音素列にマッチングさせる。リジェクション・グラマー認識候補に付与されるスコアは、そのユーザ・アタランスが、良好にマッチングしていると判定された音素列にどれ程緊密に対応しているかの程度を反映しており、そのユーザ・アタランスがエンロール用テキストのどの部分にも良好にマッチングしていない場合には、リジェクション・スコアの方がエンロールメント・スコアより良いスコアになる確率が高くなるようにしてある。
【００５８】
再び図３の具体例について説明する。この具体例では、エンロールメント・ポジションは「ｆｏｒ」の位置にあるのに対して、ユーザ・アタランスは「ｆｒｏｍ  Ａｒｔｈｕｒ  Ｃ．  Ｃｌａｒｋｅ‘ｓ  ｎｏｖｅｌ」である。そのため、エンロール用グラマーを使用して得られる認識候補のスコアは、良好ではないマッチングを反映したスコアとなる可能性が大きい。一方、リジェクション・グラマーを使用して得られる認識候補は、たとえ正確に「ｆｒｏｍ  Ａｒｔｈｕｒ  Ｃ．  Ｃｌａｒｋｅ‘ｓ  ｎｏｖｅｌ」とはならないにしても、「ｆｏｒ」からはじまるエンロールメント認識候補と比べれば、これに近いものとなる可能性が大きい。従って、リジェクション・グラマーを使用して得られる認識候補は、より良好なマッチングを示すものとなり、ひいてはより良いスコアを有するものとなる。
【００５９】
エンロールメント・プログラムは、そのユーザ・アタランスがエンロールメント・アタランスとマッチングしているか否かを判定するために、エンロールメント・スコアとリジェクション・スコアとを比較する（ステップ１５４３）。この比較のための具体的な方法としては、様々な方法が利用可能である。例えば、簡単な方式の１つとして、エンロールメント・プログラムが、エンロールメント・スコアとリジェクション・スコアとを比較して、エンロールメント・スコアの方がリジェクション・スコアより良好なスコアであれば、そのユーザ・アタランスがエンロール用テキストのいずれかの部分にマッチングしていると判定するという方法がある（ステップ１５４４）。一方、上述の具体例のように、リジェクション・スコアの方が、エンロールメント・スコアよりも良好なスコアであるならば、エンロールメント・プログラムは、そのユーザ・アタランスが、エンロール用テキストのどの部分にもマッチングしていないものと判定する（ステップ１５４５）。
【００６０】
以上に、リジェクション・グラマーをエンロール用グラマーと併用する場合について説明した。しかしながら、リジェクション・グラマーは、その他の使い方をすることもできる。即ち、リジェクション・グラマーは、一般的に、ラージ・ボキャブラリ・ディクテーション制約グラマーがアクティブ状態にないときに使用することができる。例えば、音声認識ソフトウェアが、リジェクション・グラマーと、「ウェイク・アップ（Ｗａｋｅ  Ｕｐ）」コマンドを認識するためのグラマーとを除いた、その他全ての制約グラマーを非アクティブ状態にする「ゴー・ツー・スリープ（ｇｏ  ｔｏ  ｓｌｅｅｐ）」コマンドを含んでいることがある。通常、このような「ゴー・ツー・スリープ」コマンドが実行されたならば、認識部２１５は、「ウェイク・アップ」コマンドしか認識しなくなる。このような状況において、制御／インターフェース・モジュール２２０は、リジェクション・グラマーを使用することで、「ウェイク・アップ」コマンドと、ノイズ等のその他の音とを区別することができる。
【００６１】
図７は、このノンインタラクティブ方式のエンロールメント・プログラムが動作するときの処理手順１７００を示したものである。エンロールメント・プログラムは、最初に、エンロール用テキストに対応したユーザの音声を収集する（ステップ１７０５）。このユーザの音声は、エンロール用テキストを読み上げたユーザの音声の全体であり、様々な方法で収集し得るものである。例えば、ユーザは、印刷されたテキストを読み上げて、アナログ録音装置に音声を録音するようにしてもよい。この場合、続いてユーザは、その録音した音声をポート１６５を介してコンピュータ１２５へ入力する。ここで使用する印刷されたテキストは、エンロールメント・プログラムが提供するようにしてもよい。
【００６２】
また、ユーザが、ディジタル録音装置を用いて音声を録音するようにしてもよい。この場合には、ユーザは、その録音した音声に対応したディジタル・ファイルをポート１７０を介してコンピュータ１２５へ入力すればよい。
【００６３】
更に、ユーザが、マイクロホン１０５を使用して、印刷されたテキストまたはディスプレイ１２０上に表示されたテキストを読み上げるようにしてもよい。インタラクティブ方式のエンロールメント・プログラムとは対照的に、このノンインタラクティブ方式のエンロールメント・プログラムは、ユーザにプロンプトを発して、エンロール用テキスト上のユーザの位置を指示したりすることはない。即ち、このノンインタラクティブ方式のエンロールメント・プログラムは、例えばテキスト・エディタや、それに類似したプログラムを実行させて、エンロール用テキストの全体をディスプレイ上に表示し、ユーザが、そのエンロール用テキスト上のどこへでも自由に移動できるようにしておくだけでよい。また別法として、エンロールメント・プログラムが、エンロール用テキストを紙上に打ち出して、ユーザがそれを読み上げるようにしてもよい。
【００６４】
ユーザがエンロール用テキストを読み上げたならば、プログラムはその音声を処理して、複数のユーザ・アタランスの夫々に対応した複数のフレーム集合を生成する（ステップ１７１０）。ポート１６５またはマイクロホン１０５を介して音声が入力される場合には、エンロールメント・プログラムは、サウンド・カード１４０を介して、また上述の処理手順３００に従って、その音声を処理する。また、ポート１７０を介して音声が入力される場合には、一般的に、その入力に使用されるディジタル・ファイルの内容のフォーマット変更が必要である。またその場合に、そのディジタル・ファイルの内容を読みっているうちにに十分な長さの沈黙（例えば３０秒）に遭遇したならば、そのことをもって音声が終了したものとエンロールメント・プログラムが判定するようにしてもよい。
【００６５】
次に、エンロールメント・プログラムは、エンロール用テキストのアクティブ部分を指定し、そのアクティブ部分に対応したエンロールメント制約グラマーを構築する（ステップ１７１５）。例えば、最初は、エンロール用テキストの先頭の３個ないし５個のパラグラフを、エンロール用テキストのアクティブ部分として指定してもよい。この場合、エンロールメント・プログラムは、それら指定した複数のパラグラフの各々に対応した夫々の制約グラマーを含むエンロール用グラマーを構築する。一般的に、それら制約グラマーは、融通性を有するものであり、ユーザが、エンロール用テキストに含まれている複数の単語を、それらがエンロール用テキストに出現する順序で発声していること以外は要求しないような制約グラマーである。具体的には、例えば、そのアタランスの先頭の単語及び末尾の単語は、エンロール用グラマーに含まれている複数の単語のうちのどの単語でもよく、単に、そのアタランスの先頭の単語から末尾の単語までの全ての単語がエンロール用グラマーの中に含まれていて、しかも、そのアタランスにおけるそれら単語の順序が、エンロール用グラマーにおけるそれら単語の順番と前後することがないということだけを、要求するような制約グラマーとすることができる。従って、このエンロール用グラマーは、ユーザが、単語やセンテンスを読み飛ばすことも、パラグラフをまるごと読み飛ばすことも許容しており、更には、それらを反復して読み上げることも許容している。
【００６６】
エンロール用テキストの先頭の５個のパラグラフに対応したエンロール用グラマーをＥＢＮＦで表すと次のように表される。
＜認識結果＞：：＝＜第１番パラグラフ＞｜＜第２番パラグラフ＞｜
＜第３番パラグラフ＞｜＜第４番パラグラフ＞｜＜第５番パラグラフ＞
このＥＢＮＦ表記において、
＜第ｎ番パラグラフ＞：：＝［単語1n［単語2n［単語3n．．．単語mn］］］
｜［単語2n［単語3n．．．単語mn］］｜．．．［単語mn］、であり、
また、
「単語in」は、第ｎ番パラグラフの第ｉ番の単語である。
既述のごとく、エンロール用グラマーは、ユーザ・アタランスがエンロール用テキストのいずれかの部分にマッチングしているか否かを判定する際に、ユーザがエンロール用テキストを読み上げるときの予想される読み上げ方のバリエーションを認識して、それら読み上げ方に適切に対処できるように定めるのがよい。そのため、上で説明したインタラクティブ・モードのエンロール用グラマーと同様に、このノンインタラクティブ・モードのエンロール用グラマーも、例えば句読点、段落書式、それにフォーマッティング等を考慮に入れたものとしている。
【００６７】
続いて、エンロールメント・プログラムは、１個のアタランスを取出し（ステップ１７２０）、そして認識部２１５に、アクティブ状態にあるエンロール用グラマーを使用してそのアタランスに対する認識処理を実行するよう指令する（ステップ１７２５）。この認識処理は、リジェクション・グラマーを使用して、インタラクティブ・モードのエンロールメント・プログラムに関連して上で説明した手順で実行される。
【００６８】
認識部２１５が、そのアタランスの中に、エンロール用テキストにマッチングする単語を発見したならば（ステップ７３０）、エンロールメント・プログラムは、その発見した単語の音素に対応した音響モデルの更新を行う（ステップ１７３５）。この点に関する別法として、全てのアタランスの解析が完了した後に、エンロールメント・プログラムが音響モデルの更新を行うようにしてもよい。
【００６９】
音響モデルの更新を行った後に、エンロールメント・プログラムは、エンロール用テキストのアクティブ部分を更新する必要があるか否かを判定する（ステップ１７４０）。一般的に、エンロールメント・プログラムは、アクティブ部分の更新を行うことで、アクティブ状態にあるパラグラフで画成されるアクティブ・ウィンドウが、常に、エンロール用テキスト上のユーザ音声の現在ポジションを包含する位置にあるようにする。従って、例えば、エンロールメント・プログラムが常時、５個のパラグラフをアクティブ部分として維持するようにしている場合に、認識部２１５がエンロール用テキストの第４番パラグラフに含まれているテキストを識別した時点で、エンロール用テキストの第１番パラグラフ〜第５番パラグラフがアクティブ部分として選択されていたならば、エンロールメント・プログラムが実行するアクティブ部分の更新処理においては、新たに第２番パラグラフ〜第６番パラグラフをアクティブ部分として指定すればよい。
【００７０】
エンロールメント・プログラムは、エンロール用テキストのアクティブ部分を更新する必要が生じたならば、そのアクティブ部分の更新を行うと共に、アクティブ・エンロール用グラマーの更新も行う（ステップ１７４５）。従って、上述の具体例についていえば、エンロールメント・プログラムは、その制約グラマーのうちの、エンロール用テキストの第１番パラグラフに対応する部分を削除し、第６番パラグラフに対応する部分を追加すればよい。こうして変更が加えられたエンロール用グラマーをＥＢＮＦで表すと次のように表される。
＜認識結果＞：：＝＜第２番パラグラフ＞｜＜第３番パラグラフ＞｜
＜第４番パラグラフ＞｜＜第５番パラグラフ＞｜＜第６番パラグラフ＞
こうして処理を完了したアタランスが、最後のアタランスではなかったならば（ステップ１７５０）、エンロールメント・プログラムは次のアタランスを取出して（ステップ１７２０）、以上のプロセスを反復して実行する。
【００７１】
最後のアタランスを処理するときに、エンロールメント・プログラムは、エンロールメント・パフォーマンス・リポートをディスプレイ上に表示する（ステップ１７５５）。このリポートには、例えば、ユーザの音声に含まれる単語のうちで認識できた単語のパーセンテージ表示等を含むものである。このリポートには更に、修正済音響モデルを使用した場合の認識パフォーマンスの予測値の表示を含めるようにしてもよい。ユーザは、このレポートの情報に基づいて、同じエンロールメント作業を再度実行することが効果的か否か、また、別のエンロール用テキストを使用してエンロールメント作業を行うことが効果的か否かを判断することができる。
【００７２】
エンロールメント・プログラムは、各ユーザのアタランスに基づいて、そのエンロール用テキストに対応した、発声者独立の（即ち、発声者に依存しない）音響モデルに適応化を施して、特定のユーザに適応した発声者適応音響モデルを生成する。既述のごとく、発声者独立音響モデルは、トライフォンの各ノードを、複数のガウス型（正規分布型）確率密度関数（ＰＤＦ）Ｎkの混合によって表したものであり、それら確率密度関数の平均ベクトルはμkで表され、共分散行列はｃkで表される。また、各ＰＤＦのトライフォンのノードへの寄与は、混合重みｗkで表される。発声者適応音響モデルは、その混合重みｗk及び共分散行列ｃkの値が、発声者独立音響モデルのものと同じ値であり、その平均ベクトルだけが、適応平均ベクトルμkAになっている。
【００７３】
図８は、エンロールメント・プログラムが適応平均ベクトルμkAを生成する際の処理手順１８００を示したものである。エンロールメント・プログラムは、発声者独立音響モデルの平均ベクトルμkを出発値とし（ステップ１８０５）、変換を利用した方式で、適応平均ベクトルμkAを生成する。この変換を利用した方式は、適応平均ベクトルμkAが次の［式３］で表されることを前提としている。
【００７４】
【数３】
0004510953.tif 000005
この［式３］において、Ａ及びｂは変換である。特に、平均ベクトルが２４個の成分を有するベクトルである場合には、Ａは２４×２４の変換行列であり、ｂは２４個の成分を有する変換ベクトルである。
【００７５】
次に、エンロールメント・プログラムは、同一の変換を共有すると予測されるＰＤＦの集合を編成する（ステップ１８１０）。１つの集合Ｃは、音の響きが互いに類似したトライフォンを表す複数のＰＤＦから成り、例えば、母音に関連した全てのＰＤＦや、子音に関連した全てのＰＤＦをもって集合とすることができる。集合を編成するための第２の方法は、平均ベクトルμkの値が互いに類似したＰＤＦを同じグループに入れるというものである。この方法によれば、多数の集合を簡単に編成することができる。一般的に、このような集合の個数は、百個程度から数百個にも及ぶことがある。初歩的な実験を行った結果、第１の方法を用いることで、良好な結果が得られる（即ち、誤認識発生率が低いという結果が得られる）ことが判明した。一般的に、エンロールメント・セッションを実行する前に、予め集合を定めておくのがよい。
【００７６】
次に、エンロールメント・プログラムは、各々の集合について、その集合に含まれているＰＤＦに対応した全ての発声者データをアセンブルする（ステップ１８１５）。この発声者データは、エンロールメント・セッションの実行中に生成されたユーザ・アタランスに対応したデータである。
【００７７】
次に、エンロールメント・プログラムは、各々のＰＤＦｊについて、発声者データのベクトル平均値ｙ［ｊ］を求める。ここで、ｆ［ｎ］を発声者データの第ｎ番フレームのベクトルとし、ｐj（ｎ）を発声者データの第ｎ番フレームがＰＤＦｊ（第ｊ番ＰＤＦ）に対応している確率（即ち、その発声者データの第ｎ番フレームに対応したトライフォン・ノードの混合重みｗj）とし、Ｎをその発声者データのフレームの総数とするとき、平均ベクトルｙ［ｊ］と、第ｊ番フレームのフレーム個数Ｎ［ｊ］とは、次の［式４］及び［式５］で表される。
【００７８】
【数４】
0004510953.tif 000006
【００７９】
【数５】
0004510953.tif 000007
これは、通常、Ｂａｕｍ−Ｗｅｌｃｈアルゴリズム、またはＥＭアルゴリズムと呼ばれているものである。
【００８０】
次に、エンロールメント・プログラムは、各集合Ｃの変換（ＡC及びｂC）を求め、それには、発声者データの平均値と、発声者独立音響モデルのＰＤＦとの間の関係を利用する（ステップ１８２５）。この関係は、次の［式６］で表される。
【００８１】
【数６】
0004510953.tif 000008
この［式６］において、ｘ［ｊ］は、第ｊ番ＰＤＦの平均ベクトルμjに対応したベクトルであり、ｅは誤差項である。この［式６］の関係に基づいて変換行列ＡCの転置行列ＡCTを求めると、次の［式７］に示すようになる。
【００８２】
【数７】
0004510953.tif 000009
この［式７］において、ｘT［ｊ］はベクトルｘ［ｊ］の転置ベクトルであり、ｙT［ｊ］はベクトルｙ［ｊ］の転置ベクトルであり、ＮCは集合Ｃの元の個数である。
【００８３】
続いて、ＡCTの転置行列を求めることによって、変換行列ＡCを求め、また、次の［式８］に従って変換ベクトルｂCを求める。
【００８４】
【数８】
0004510953.tif 000010
続いて、エンロールメント・プログラムは、以上のようにして求めた変換行列及び変換ベクトルを用いて、集合Ｃの各成分の適応平均ベクトルμjAを求める（ステップ１８３０）。具体的には、適応平均ベクトルμjAは、次の［式９］によって求められる。
【００８５】
【数９】
0004510953.tif 000011
続いて、エンロールメント・プログラムは、適応平均ベクトルμjAと、発声者識別情報とを組合せたものを、発声者適応音響モデルとして格納し、この音響モデルを、後刻そのユーザの音声を認識する際に使用する。以上のプロセスを、適応モデルを使用して数回反復して実行することで、フレーム個数（Ｎ［ｊ］）と、発声者データ（ｙ［ｊ］）と、変換行列とを更新する。
【００８６】
別の実施の形態として、発声者独立の平均値（ｘ［ｊ］）と、特定発声者の平均値とを用いて、ｙ［ｊ］及びＮ［ｊ］の値を次の［式１０］及び［式１１］に従って算出してもよい。
【００８７】
【数１０】
0004510953.tif 000012
【００８８】
【数１１】
0004510953.tif 000013
これらの［式１０］及び［式１１］において、係数ｒは、発声者独立の平均値及び観測データの相対的重要度を制御する係数である。この係数ｒの値の最適化の程度は、利用可能な適応データの量の関数となる。
【００８９】
請求項に記載した範囲には、その他の実施の形態も含まれる。例えば、エンロールメント・グラマーとリジェクション・グラマーとを用いてユーザ・アタランスに夫々にスコアを付与するための具体的な方法は、様々な方法とすることができる。また同様に、それらスコアを評価して、そのユーザ・アタランスがエンロール用テキストのある部分にマッチングするか否かを判定する方法も、様々な方法とすることができる。
【００９０】
以上に説明した様々な技法は、特定のハードウェアないしソフトウェアの形態に限定されるものではなく、音声認識を実行することのできるコンピュータ環境ないし処理環境であれば、いかなる環境においても適用可能な技法である。また、それら技法は、ハードウェアで実施することも、ソフトウェアで実施することも、更にはハードウェアとソフトウェアとを組合せて実施することも可能である。それら技法は、プログラム可能なコンピュータ上で動作するコンピュータ・プログラムによって実施することが好ましく、この場合のコンピュータは、プロセッサと、そのプロセッサで読出しが可能な格納媒体（揮発性ないし不揮発性のメモリや、格納装置等）と、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを備えたものであることが好ましい。更にその場合に、入力デバイスを使用して入力したデータに対して、プログラム・コードを適用することで、以上に説明した機能を実行し、出力情報を生成すればよい。そして、その出力情報を、１つないし複数の出力デバイスに供給するようにすればよい。
【００９１】
いずれのプログラムも、コンピュータ・システムとコミュニケートすることのできるハイレベルの手続型またはオブジェクト指向のプログラミング言語で作成したプログラムとすることが好ましい。ただし場合によっては、それらプログラムをアセンブリ言語またはマシン語で作成することが好ましいことがあるかもしれず、そのような場合には、それら言語を使用すればよい。更に、いずれの場合も、それら言語をコンパイルして使用するようにしてもよく、或いは、インタープリター言語として使用するようにしてもよい。
【００９２】
それらコンピュータ・プログラムは、いずれも、記録媒体ないし記録装置（例えば、ＣＤ−ＲＯＭ、ハード・ディスク、または磁気ディスケット）に格納しておき、それらに格納してあるものを、プログラム可能な汎用型ないし特定用途向けのコンピュータが読出し、その読出したコンピュータ・プログラムによって、そのコンピュータのコンフィギュレーションを設定し、また、そのコンピュータを動作させ、それによって、本明細書に説明した処理手順を実行させるようにすることが好ましい。本発明の音声認識システムは更に、コンピュータによって読出しが可能な、コンピュータ・プログラムを設定した記録媒体として実現することもでき、この場合、コンピュータ・プログラムを設定したその記録媒体が、コンピュータを、以上に説明した特定の方式で動作させることになる。
【図面の簡単な説明】
【図１】音声認識システムのブロック図である。
【図２】図１のシステムの音声認識ソフトウェアのブロック図である。
【図３】エンロールメント・プログラムのためのユーザ・インターフェースを示した図である。
【図４】エンロールメント・プログラムのためのユーザ・インターフェースを示した図である。
【図５】エンロールメント作業の手順を示したフローチャートである。
【図６】エンロールメント作業の手順を示したフローチャートである。
【図７】エンロールメント作業の手順を示したフローチャートである。
【図８】音響モデル適応化作業のフローチャートである。
【図１】
0004510953.tif 000014
【図２】
0004510953.tif 000015
【図３】
0004510953.tif 000016
【図４】
0004510953.tif 000017
【図５】
0004510953.tif 000018
【図６】
0004510953.tif 000019
【図７】
0004510953.tif 000020
【図８】
0004510953.tif 000021