(57)【特許請求の範囲】
【請求項１】
パターンに対する連続的な標準モデルを決定する方法であって、
モデル化されるべきパターンを含む複数の接続されたパターンを表す一つ又は複数の信号を入力する入力工程と、
前記入力工程で入力された入力信号を、該入力信号と同様のパターンを含む複数の接続されたパターンと関連させるアライメント工程と、
前記アライメント工程の結果から、前記入力信号内において、分離的に入力されたパターンの位置を決定する決定工程と、
前記位置から前記入力信号の特徴を抽出し、分離された標準モデルを検出、形成する抽出工程と、
前記分離された標準モデルを、モデル化されるべきパターンを含む複数の接続されたパターンを表す信号に対応付ける第２のアライメント工程と、
前記対応付けの結果を統合することにより、連続的な標準モデルを決定する第２の決定工程とを備え、
前記分離された標準モデルはパラメータフレームシーケンスを備え、複数の接続されたパターンを表す各信号はパラメータフレームシーケンスを備え、
前記第２の決定工程は、複数の接続されたパターンを表す信号の少なくとも１つのパラメータフレームに対応付けられた分離標準モデルの各パラメータフレームに対して、それに対応付けられたパラメータフレームを平均化することにより連続的な標準モデルの対応するパラメータフレームを生成し、分離された標準モデルのパラメータフレームのうちの、どのパラメータフレームにも対応つけられないパラメータフレームについて、連続標準モデルの対応するパラメータフレームを該連続標準モデルの隣接するパラメータフレームを用いた補間或いは外挿によって生成することを特徴とする標準モデル決定方法。
【請求項２】
前記入力信号は音声信号であり、該入力信号内の前記パターンは分離的に発声された音声の一部であり、前記複数の接続されたパターンを表す信号は連続的に発声されたフレーズを表すものであることを特徴とする請求項１に記載の方法。
【請求項３】
前記発声された音声の部分はワードもしくはワードのグループであることを特徴とする請求項２に記載の方法。
【請求項４】
前記入力信号は複数の接続パターンを表す複数の信号に関連付けられ、該複数の接続されたパターンの一つが該入力信号内のパターンと同様であり、
当該方法は更に、前記アライメント工程によってなされた各アライメントに基づいて前記決定工程によって決定された位置を平均化する平均化工程を更に備えることを特徴とする請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記複数の信号は少なくとも２つの異なる信号を備えることを特徴とする請求項４に記載の方法。
【請求項６】
前記アライメント工程は、前記入力信号内におけるパターンの開始及び終了位置を制限しないフレキシブルダイナミックプログラミング処理を用いることを特徴とする請求項１乃至５のいずれかに記載の方法。
【請求項７】
前記対応するパラメータフレームは、連続的標準モデルの最も近くに隣接するパラメータフレームを用いて補間もしくは外挿することによって生成されることを特徴とする請求項１に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、標本的な信号内におけるパターンの位置を識別するための方法及び装置に関する。本発明は、連続音声認識システムにおいて使用するためのワードモデルの決定に関して説明されるが、これに限定されるものではない。
【０００２】
【従来の技術】
音声認識は未知の発声音声を認識する処理である。現在、数種類の異なるタイプの有用な音声認識システムが存在し、これらは数種類の方法で分類される。例えば、あるシステムは話者依存型であり、他のものは話者非依存型である。また、あるシステムは大量の語彙（１００００ワード以上）に関して動作し、他のものは限られた量の語彙（１０００ワード以下）に関して動作する。幾つかのシステムは分離ワード（単語）のみを認識し得るものであり、他のものは一連の連続単語を含むフレーズを認識しうる。
【０００３】
入力された発声音声を認識するために、音声認識システムは入力された発声音を既知の音声の特徴と比較する。既知の音声の特徴は、標準パターン（特徴）の生成のために既知の音声サンプルが提供される学習セッションのおいて決定される。
【０００４】
連続音声認識（文音声認識）システムにおいては、一般に、標準パターンは与えられた言語の音素を表す。ＩＢＭはそのような連続音声認識システムを創るための開発システムを製造した。これはＩＢＭ連続音声シリーズ（IBM continuous speech series、ＩＣＳＳ）と呼ばれる。この開発システムは、音声標記によって綴られたワードの巨大な辞書と、北米英語の音素の標準音響モデルと、音声認識システムで使用するための言語モデルを生成するためのツールとを備える。ＩＢＭシステムによれば、アプリケーション開発者が、例えばＰＣもしくは電話システムといった特定の応用において使用される音声認識システムを開発することが可能となる。開発者は、まず始めに音声認識システムにおいて用いられることになるであろう文をタイプ入力してファイルにし、ＩＢＭ辞書に存在しないあらゆるワードについて音声標記を提供し、最後に文章ファイルをコンパイルすることにより、適切な言語モデルを構築できる。結果として得られる音声認識システムは、こうしてエンドユーザに売られ、適応した使用範囲で用いられることになる。
【０００５】
【発明が解決しようとする課題】
上述した種類の連続音声認識システムの一つの問題は、標準モデルが音素であることである。このため、システムは言語及びアクセントに依存したものとなる。加えて、このシステムにおいては、エンドユーザに提供される言語モデルは固定的であり、新たな文章を含ませるべくこれを更新することはできないという欠点を有している。
【０００６】
全ての連続音声認識システムが音素に対応する標準モデルを使用するわけではない。ＵＳＰ4,783,808（Texas Instruments Incorporated）は、全ワードに対応する標準モデルを使用した連続音声認識システムを提案する。従って、このシステムは、音素ベースのシステムが有していた言語及びアクセント依存性という問題を有することは無いであろう。しかしながら、このようなワードベースの連続音声認識システムは、連続音声において発声されたときのワードを識別可能とするための良いワードモデルを生成することが困難であるという問題を有する。分離的に発声されたワードを識別するための良いワードモデルを生成することは、比較的簡単である。しかしながら、接続音声において発声されたワードは、それらが分離的に発声された場合と大きく異なる。このため、分離ワードモデルは接続音声において発声された場合の対応ワードを識別するには十分に適したものではない。このような相違の理由の一つは、接続音声において発声されるワードは、一般に、同じワードが分離的に発声される場合に比べてかなり速いことにある。また、相違に対するもう一つの理由は、接続音声において発声されるワードには言語音の相互作用（co-articulation effect）、すなわち隣接するワードとの結合が生じてしまうことにある。
【０００７】
ＵＳＰ4,783,808によれば、接続ワードモデルは次の手順で生成される。すなわち、まずはじめにワードの分離的な発声音から分離ワードモデルを生成し、次に、異なる発声速度に対応するよう分離ワードモデルを圧縮し、続いて、分離ワードモデルと接続音声とのマッチングを行い、最後に、マッチングがとれたワードから音声的特徴を抽出することによって接続ワードモデルを決定する、という手順となる。
【０００８】
ＵＳＰ4,783,808において開示されたシステムの一つの問題点は、自動的にワードモデルを生成しないことである。それは、ワードモデルから生成された出力音声信号に基づいて、分離ワードモデルそして連続ワードモデルが十分にあることを示すアクノリッジメントという形態のユーザの仲介を必要とする。ＵＳＰ4,783,808において開示されたシステムのもう一つの問題点は、分離ワードモデルに対して一定の圧縮を実行することである。このような一定の圧縮処理は現実的でないし、ある場合においては、分離ワードモデルとそのワードを含む連続単語音声とのマッチングを低下させてしまう。
【０００９】
本発明は上記の問題に鑑みてなされたものであり、接続パターン中に現れる分離パターンに対応した部分の信号的特徴を容易に抽出可能とすることを目的とする。
【００１０】
また、本発明の目的は、上記のようにして抽出された信号的特徴を用いて、接続されたパターンの認識に適応しうる分離標準モデルを容易に構築可能とすることにある。特に、連続音声認識のための分離ワードモデルの生成を容易化するとともに、その更新及び追加をも極めて容易化することを目的とする。
【００１１】
【課題を解決するための手段】
本発明の一態様によれば、入力信号と、位置付けるべきパターンを含む複数の標本的な信号を比較することによって、標本的入力信号内においてパターンの位置を決定する方法及び装置が提供される。
【００１２】
本発明の一実施形態では、分離的に入力されたときのパターンの、標本的入力信号内における位置を決定する方法が提供される。この方法は、入力信号と実質的にこの入力信号と同じパターンを含む複数の接続パターンを表す信号との対応付けを行う工程を備える。また、好ましくは、そのパターンは音声の部分を表すものである。
【００１３】
この方法を用いて決定された位置は分離標準モデルを決定するのに用いられる。すなわち、その検出された位置から入力信号の特徴を抽出することで分離標準モデルが決定され得る。更に、この分離標準モデルはパターンの連続標準モデルを生成するのにも用いられ得る。これは、分離標準モデルを、モデル化されるべきパターンを含む複数の接続パターンを表す信号に対して対応付けるアライメント処理を実行することで行なわれる。
【００１４】
他の実施形態によれば、新たな入力フレーズに対処するために、音声認識システムにおいて用いるための言語モデルを適応させる方法が提供される。ここで、言語モデルは少なくともスタートノードとエンドノードとを有し、（ａ）第１のワードをスタートノードの出力に接続し、（ｂ）前記フレーズ中の最後のワードを除く全てに対して、（ｉ）中間ノードを生成してその入力に前記フレーズ中の現在のワードを接続し、（ii）前記フレーズ中の次のワードを該中間ノードの出力側に追加し、そして、（ｃ）最後のワードをエンドノードの入力側に接続する。
【００１５】
また、本発明の第２の態様によれば、エンドユーザが新しいワードを継続的にワードモデルに追加できる連続単語音声認識システムが提供される。
【００１６】
本発明の別の実施形態によれば、連続音声認識装置が提供される。この装置は、認識されるべき信号を入力する入力手段と、前記入力信号と複数の標準モデルとをマッチングするマッチング手段と、前記マッチング手段に応答して、認識結果を提供する認識手段とを備え、エンドユーザが継続的に新たな標準モデルを追加することを可能とする手段を更に備えることを特徴とする。好ましい実施形態においては、音声認識システムはさらに言語モデルを備える。この言語モデルは、出力されるワードの許容シーケンスを限定し、エンドユーザによって更新され得る。
【００１７】
【発明の実施の形態】
以下、添付の図面を参照して本発明の一実施形態を説明する。
【００１８】
本発明の実施形態はコンピュータのハードウェアで実施され得るが、以下に説明する実施形態は、例えばパーソナルコンピュータ、ワークステーション、複写機、ファクシミリ等の装置の処理ハードウェアとともに動作するソフトウェアにおいても用いられ得るものである。
【００１９】
図１は、本発明の一実施形態を処理するように構成されたパーソナルコンピュータ（ＰＣ）１を示す。キーボード３、ポインティングデバイス５、マイクロフォン７および電話線９は、インタフェース１１を介して接続される。キーボード３およびポインティングデバイス５によって、ユーザはシステムを制御できる。マイクロフォン７は、ユーザの音響的音声信号をそれに相当する電気信号に変換し、この電気信号をＰＣ１に処理のために供給する。本実施形態において、処理されるべき入力音声の始点および終点は、入力発声音が継続されている間キーボード３上のスペースバーを押すことによって認識される。このような方法で、システムは認識されるべき入力発声音を処理する。内蔵モデムおよび音声受信回路（図示されていない）は電話線９に接続され、ＰＣ１は、例えば遠隔地のコンピュータまたはユーザと通信することができる。
【００２０】
本発明で規定するようにＰＣ１を動作させるためのプログラム命令は、既存のＰＣで用いるために磁気ディスク１３のような記憶装置上に供給されてもよいし、または電話線９を介してリモートコンピュータと通信する内蔵モデムによって供給されてもよい。
【００２１】
本実施形態の限定された語彙による連続音声認識システムの処理を、図２を参照して説明する。例えば、マイクロフォン７からの入力音声を示す電気信号は、プリプロセッサ（PREPROCESSOR）１５に入力される。プリプロセッサ１５は、入力音声信号をパラメータフレームのシーケンスに変換する。ここで、各パラメータフレームは、入力音声信号に対応する時間フレームを示すものである。次に、パラメータフレームのシーケンスは、認識ブロック（RECOGNITION）１７に供給される。認識ブロック１７において、入力されたパラメータフレームのシーケンスを標準モデル即ちワードモデル（WORD MODELS）１９と比較することによって、入力音声が認識される。標準モデル、即ちワードモデル１９の各モデルは、認識されるべき入力音声と同様の種類のパラメータで表されるパラメータフレームのシーケンスで構成されている。
【００２２】
言語モデル（LANGUAGE MODEL）２１およびノイズモデル（NOISE MODEL）２３も認識ブロック１７に対する入力として供給され、認識プロセスにおいて用いられる。本実施形態において、ノイズモデルは沈黙またはバックグラウンドのノイズを示し、認識されるべき入力音声信号のパラメータフレームと同様のタイプの１つのパラメータフレームから構成される。言語モデル２１が用いられ、システムに認知されたワードのシーケンスに適応させるように、認識ブロック１７から出力されたワードの取り得るシーケンスを制限する。認識ブロック１７から出力されたワードシーケンスはコピーされ、例えばワードプロセッシングパッケージ等で用いられる。または、そのワードシーケンスは、オペレータコマンドとして用いられ、ＰＣ１の動作を開始したり、中止させたりまたは修正したりする。
【００２３】
以下、上記の装置に関するより詳細な説明を行う。
【００２４】
＜プリプロセッサ＞
プリプロセッサ１５について図３〜図１０を参照して説明する。
【００２５】
プリプロセッサ１５の機能は、必要な情報を音声から抽出することにより処理されるべきデータを削減することである。音声分析の技術分野において、音声を前処理する方法は多数知られており、以下に説明する方法は、一実施形態として示されているものである。よって、以下に説明するような方法に限定されると解釈されるべきではない。本実施形態において、プリプロセッサ１５は、「フォルマント（formant）」関連情報を抽出するように設計されている。フォルマントとは、ユーザの声道の共振周波数として定義され、声道の変化にしたがって変化する。
【００２６】
図３は、入力音声信号に対して行われる前処理を示すブロック図である。マイクロフォン７または電話線９からの入力音声Ｓ（ｔ）は、フィルタブロック（FILTER）６１に供給され、入力音声信号内のあまり重要でない情報を含む周波数を除去する。音声信号の中で、もっとも重要な情報は、４ＫＨｚ以下の周波数に含まれる。したがって、フィルタブロック６１は、４ＫＨｚを上回るすべての周波数を除去する。その後、濾過音声信号は、ＡＤコンバータ（ＡＤＣ）６３によって、ディジタルサンプルに変換される。ナイキストサンプリング基準にしたがって、ＡＤＣ６３は、８０００回／秒のレートで濾過信号をサンプリングする。本実施形態において、全入力発声音声はディジタルサンプルに変換され、音声信号を処理するための次のステップの前に、バッファ（図示されていない）に記憶される。
【００２７】
入力音声が抽出された後、入力音声は、分割ブロック（DIVISION INTO FLAMES）６５で互いに一部が重なり合う等しい長さのフレームに分割される。入力音声をフレームに分割する理由をより詳細に説明する。上記のとおり、連続的に音声が発せられる間、フォルマント関連情報は連続的に変化し、その変化の割合は、生理学的抑制によって制限される音声発声器官の動作の割合に直接的に関連する。したがって、変化するフォルマント周波数を追跡するためには、音声信号は短時間の周期または短いフレームで分析されなければならない。この方法は、音声分析の技術分野において、「短時間」音声分析として知られている。短時間分析を行う際、考慮しなければならない点が２つある。すなわち、（ｉ）どのくらいの速度で、時間フレームが音声信号から抽出されなければならないか、（ｉｉ）どのくらいの大きさの時間フレームが用いられなければならないか、という２点である。
【００２８】
第１の考慮に関しては、音声発声器官の動作速度に依存する。すなわち、重要なイベントを見逃さないことを保証するとともに、適当な連続性を保証するようように、フレームは十分に近寄っている必要がある。本実施形態において、１つのフレームは１０ｍｓｅｃに１回の割合で抽出される。第２の考慮に関しては、フレーム間の音声信号の特性が一定になるような十分に短い時間フレームと、フォルマントを区別するのに十分な周波数を提供するのに十分に長い時間フレームとの間の妥協しうる点で決定される。 本実施形態において、フレームの長さは２０ｍｓｅｃであり、上記サンプリング速度で、１つのフレームにつき１６０個のサンプルに相当する。
【００２９】
これらのフレームを音声サンプルから直接抽出することによって発生させる場合、かなりの周波数のひずみが生じる。したがって、このようなひずみを低減するため、スムーズウィンドウ機能を用いるべきである。ハミング（Hamming）、ハニング（Hanning）、ブラックマン（Blackman）、バートレット（Bartlett）およびカイザー（Kaiser）等のようなウィンドウは多数存在し、何れも適用可能である。これらすべてのウィンドウは、音声分析の当業者に知られている。本実施形態において、ハミングウィンドウが用いられ、これは以下の等式によって表される。
【００３０】
【数１】
0003847879.tif 000002
【００３１】
ここで、Nsはウィンドウ内のサンプルの数、すなわち、１６０個のサンプルを示す。
【００３２】
図４は、本実施形態において行われる短時間分析処理を詳細に示す図である。フレーム１（Flame1）、すなわち、時刻ａと時刻ｂとの間の音声信号に、上記の式（１）で求められるウィンドウ関数が乗算される。さらに、選択されたフレームの速度およびフレームの長さに従って、次のフレームであるフレーム２は、フレーム１の中間、すなわち時刻ｃから始まる。
【００３３】
入力音声信号のフレームがいったん抽出されると、ブロック６７（ＤＦＴ６７）においてフレームの離散フーリエ変換（ＤＦＴ）の振幅が計算される。すなわち、｜Sk(f)｜が計算される。ここで、ｆは離散周波数変数を示す。このプリプロセッサの多くの態様は、人間の聴覚システムの動作をシミュレートするために設計されているので、振幅情報のみが必要であり、入力音声信号の位相に対しては比較的敏感でない。図５は、１６０個のサンプル、すなわちｒ＝０，１，．．．１５９から構成される１つのフレームSk(r)の典型的な音声信号を示す。高速フーリエ変換（ＦＦＴ）アルゴリズムをＤＦＴの計算で有効に用いるため、フレームSk(r)内のサンプルの数を２のべき乗まで増加させる必要がある。これを達成する方法の１つとして、１６０個のサンプルの後に９６個の０を追加し、２５６個のサンプルを得ることが挙げられる。この技術は「０の充填」として知られ、音声分析の分野において公知であるので、これ以上の説明はしない。
【００３４】
Sk(r)のＤＦＴをコンピュータで演算する場合、計算処理のために、スペクトルの第１の１２８個のサンプルだけが必要である。なぜならば、音声は実際の信号であり、後半の１２８個のサンプルは前半の１２８個のサンプルの鏡像だからである。図６は、図５に示されるフレームSk(r)内の音声信号のＤＦＴ｜ Sk(f)｜の振幅の最初の１２８個のサンプルを示し、最終のサンプルはサンプリング周波数の半分の周波数、すなわち、４ＫＨｚの周波数で発生するものとなる。
【００３５】
上記のとおり、プリプロセッサ１５の目的は、データレートを低減し、入力音声信号の特定成分を強調することである。１つのフレームにつき１２８個のサンプルしか存在しないので、ＤＦＴによるデータレートの低減はわずかである。さらにデータレートを低減する方法の１つとして、スペクトルを等しい周波数帯に分割し、各周波数帯内のサンプルを平均化することが挙げられる。すなわち、図６に示されるサンプルをフィルタバンクに通過させることである。
【００３６】
人間の聴覚システムに関する研究によれば、耳の周波数分解能が周波数が増加するとともに減少することが示されている。従って、高周波数領域と比較して低周波数領域の中に多くの周波数帯を有するフィルタバンク、すなわち対数スペースフィルタバンクは、直線スペースフィルタバンクよりも好ましい。なぜなら、対数スペースフィルタバンクの方が知覚的に重要な情報をより多く保持することができるからである。
【００３７】
本実施形態において、４０個の周波数帯を有するメルスペースフィルタバンク（MEL FILTER BANK）６９が用いられる。メルスケールは音声分析の分野で公知であり、音声の知覚周波数を線形スケール上にマップしようとする対数スケールである。図７は、メルスペースフィルタバンク６９の出力｜S~k(f')｜を示し、図６に示されるサンプルがバンク６９を通過したときの出力を示す。振幅スペクトルの結果エンベロープ１００は、フィルタバンク６９の平均化効果のためにかなりなめらかであるが、フィルタバンクの対数スペースのために低周波数帯ではなめらかではない。
【００３８】
次に、フォルマント関連情報が、図３のブロック７１、７３および７５を用いて、下記のプロセスによって音声から抽出される。
【００３９】
励起信号E(t)およびフィルタV(t)の項を用いて、ユーザの音声信号S(t)をモデルにすることができる。ここで、励起信号E(t)は声道に入る空気流を示し、フィルタV(t)は声道の濾過効果を示す。結果的に、音声信号の周波数スペクトル｜S(f)｜の振幅は、励起信号の周波数スペクトル｜E(f)｜の振幅と声道フィルタのスペクトル｜V(f)｜の振幅を乗算することによって求められる。すなわち、以下の（２）式によって求められる。
【００４０】
【数２】
0003847879.tif 000003
【００４１】
ケプストラム法（cepstral method）として知られる方法、すなわち、音域情報を入力音声から抽出する方法の一つを以下に示す。この方法は、音声振幅応答｜S(f)｜の対数を取ることによって、音域フィルタ振幅応答｜V(f)｜を励起振幅応答｜E(f)｜から分離することを含む。この結果、励起および声道フィルタの特性の和で表わされるようになる。すなわち、（３）式によって求められる。
【００４２】
【数３】
0003847879.tif 000004
【００４３】
図８は、メルフィルタバンク６９からのログ出力のエンベロープ、すなわち、 log｜S~k(f')｜を示し、２つの成分１０１および１０３の加算性を図示するものである。成分１０１は、声道特性、すなわち、 log｜V(f)｜を示す。成分１０３は、励起特性、すなわち、 log｜E(f)｜を示す。成分１０１のピークは、声道のフォルマント周波数で発生する。また、成分１０３の等間隔のピークは、話者のピッチのハーモニック周波数で発生する。
【００４４】
声道特性１０１は、ブロック（ＬＯＧ）７１から出力されたサンプルに離散コサイン変換（ＤＣＴ）を行い、その結果をフィルタリングすることによって、励起特性１０３から抽出できる。
【００４５】
図９は、ＤＣＴブロック７３の出力を示す。これは、ケプストラム（cepstrum）Ck(m)として知られている。ケプストラムの独立変数（図９のｘ軸）は時間の次元を有し、「クエフレンシ（quefrency）」と名づけられている。図８に示される強い周期性を有する成分１０３は、話者のピッチ周期Ｔに等しい位置で、ケプストラムのピーク１０５になる。また、図８に示されるゆっくり変化する成分１０１は、ケプストラムの原点付近の多数の小さいピーク１０に変換され、その位置および振幅はフォルマントに依存する。
【００４６】
音声の声道特性および励起特性がクエフレンシスケール上の分離した部分にあらわれるので、これらは、濾過プロセスまたはケプストラム用語で言ういわゆる「リフタリング（liftering）」プロセスによって、互いに分離される。図９に示されるケプストラムCk(m)は、１組の離散ケプストラム係数（discrete cepstral coefficient）（C0, C1, ... C39）から構成される。したがって、リフタリングは、１つの矩形ウィンドウによって達成されうる。しかしながら、信頼性が劣ると考えられるスペクトルの部分を強調しないようにするため、より漸次的なウィンドウ機能が好ましい。本実施形態において、以下のウィンドウ機能が、リフタリングブロック（LIFTERING）７５で用いられる。
【００４７】
【数４】
0003847879.tif 000005
【００４８】
ここで、 Ncは、リフタリングブロック７５から各フレーム毎に出力されたケプストラム係数の所望の個数であり、本実施形態では１２である。
【００４９】
また、上記の１２個のケプストラム係数に加えて、各フレーム内の音声信号のパワー、すなわち、「フレームパワー」もまた計算される。これは、フレーム内の入力音声信号が発生音声信号に対応するか否かを示すのに用いられるので、とりわけ重要な特徴である。フレームパワーは、音声分析の分野では公知の一般的な方法を用いて、図３に示されるフレームパワーブロック（FRAME POWER）８１で計算される。変化しうる記録環境や音の大きさ等に影響されないように、ブロック８１で決定されたパワーは、パワー正規化ブロック（POWER NORMALIZING）８３で正規化され、パワー係数Pkを求める。パワー係数Pkは、リフタリングブロック７５から出力されたケプストラム係数に結合される。パワーは、バッファ（図示されていない）に記憶された発声音全域にわたって最大パワー（ｄＢ）を決定し、これを各フレームのパワーから減じ、その結果と正規化定数とを掛けることによって、ブロック８３で正規化される。
【００５０】
本実施形態においては、各フレーム内の入力音声信号のパワーが決定されるが、各フレーム内の入力音声信号を示す他の値も用いられる。例えば、フレーム内の入力音声信号の平均振幅の尺度が決定され、正規化され得る。
【００５１】
以上のように、プリプロセッサ１５は、各時間フレームで、１組の係数、すなわち、１２個のケプストラム係数および１つのパワー係数を出力する。便宜上、フレームｋを示す係数は、パラメータフレームｆkとして示され、次のフレームを示す係数は、パラメータフレームｆk+1等として示す。
【００５２】
＜バッファ＞
プリプロセッサ１５から出力されたパラメータフレームｆkは、図２に示されるバッファ（BUFFER）１６に供給される。本実施形態において、バッファ１６は、ＡＤＣ６３から出力された入力音声のディジタルサンプルを記憶するバッファ（図示されていない）に記憶された音声に関して生成されたすべてのパラメータフレームを記憶するのに十分な容量を有する。全入力発声音がプリプロセッサ１５によって処理された後、バッファ１６に記憶されたパラメータフレームは、それらが受信された順番で認識ブロック１７に供給され、入力発声音が認識される。
【００５３】
＜標準モデル＞
上記のとおり、どのワードがプリプロセッサ１５からの出力信号によって表現されているかを決定するため、出力信号は記憶されている標準モデルと比較される。この記憶された標準モデルは、システムに既に認知されたワードおよびシステム周辺の音響環境をモデルにしたものである。特定のワードに関連する各モデルは、上記プリプロセッサ１５から出力されたパラメータフレームと同じタイプのパラメータフレームのシーケンスで構成される。しかしながら、ワードモデルのフレームと認識されるべき入力発声音のフレームとを区別するため、ワードモデルのフレームはステート（state）と表現することにする。
【００５４】
本実施形態による音声認識システムの１つの特徴は、ワードモデル、環境（または、ノイズ）モデルまたは言語モデルがシステムに前もって記憶されていないエンドユーザに供給され得ることである。これによって、ユーザは自由にシステムを学習させ、ユーザが必要とするフレーズを認識させるようにすることができる。さらに、ユーザにとって有用でないワードが予め記憶されていることで、システムが過負荷となることを防止できる。さらに、以下の記載から明らかなように、記載された特定の学習方法はこの状況において特に適している。なぜならば、それは、学習のために費やされる時間を必要とせずに新しいフレーズがシステムによって学習されることを可能とするからである。さらに、標準モデルは、すべてのワードに対応し、音素には対応しないので、システムは、いかなる言語または言語の組み合わせに対しても動作する。学習プロセスを、図１０から図１７を参照してより詳細に説明する。
【００５５】
＜学習＞
図１０は、学習プロセスで用いられる構築／更新モジュール（BUILD/UPDATE MODULE）９１を示す概略図である。特に、構築／更新モジュール９１は、システムによって学習されるべき１つ以上のワードを示すパラメータフレームｆkのシーケンスと、矢印９２で示される１つ以上の入力音声ワードに対応するテキストを示すユーザ情報とを受ける。十分な情報が構築／更新モジュール９１に入力されると、入力ワードに対応するワードモデルを発生し、言語モデル２１を更新する。本実施形態において、ワードモデルおよび言語モデルの両方は、ハードディスク９３のような高容量のデータ記憶装置に記憶される。
【００５６】
ノイズモデル２３が本実施形態において決定される方法を以下に説明する。まず、ユーザは新しいノイズモデルを構築したり、または既存のノイズモデル２３を変化させる必要があることを指示する。この指示に応じて、システムは、ユーザに沈黙を示す音を入力するよう促す。この処理は、沈黙状態の間、ユーザがキーボード３上のスペースバーを押すことによって行われる。沈黙の周期の終わりには、ユーザはワードを発生しなければならない。システムが沈黙を示すべく生成されたパラメータフレームのパワー係数を正規化できるようにするためである。ユーザが沈黙の周期の終わりにワードを発声しない場合、ノイズモデル２３のパワー係数が非現実的に高くなり、非認識エラーが生じることになる。最後に、ノイズモデル２３を決定するため、システムは沈黙の期間に対して生成されたパラメータフレームを平均化し、ノイズモデル２３として用いられる１つのパラメータフレームを形成する。
【００５７】
本実施形態の音声認識システムは、連続的に発声されるワード、すなわち、フレーズ内に含まれるワードを認識するために設計されている。良い認識結果を得るため、標準モデル（または、連続ワードモデル）は、重要なワードを含むフレーズ例から得るべきである。好ましくないことに、連続的に発声されたフレーズ内のワードの始めと終わりを確認する作業は容易ではない。本実施形態が連続ワードモデルを発生させる方法の概略を以下に示す。まず、システムは、分離的に発声されたワードからワードモデルを決定する。このモデルは、分離ワードモデルとして示す。しかし、音声認識の当業者が以下の記載から理解するように、これらの分離ワードモデルは、本技術分野における一般的な分離モデルには相当しない。システムは分離ワードモデルを用い、分離ワードモデルとそれに相当するワードを含むフレーズ例とを比較することによって、連続ワードモデルを生成する。
【００５８】
分離ワードモデルを生成するため、ワードは、マイクロフォン７または電話線を介して分離的にシステムに入力されなければならない。上記のとおり、スペースバーが用いられ、各入力発声音を確認する。したがって、分離的に発声されたワードの発声音を示すパラメータフレームのシーケンスは、沈黙に対応するパラメータフレームをワードの始めと終わりに有する。次にシステムは、分離ワードの発声音と当該ワードを含むフレーズ例とを比較する。この比較によって、分離的発声音内のワードのおよその始めと終わりを確認する。この始点と終点は平均化され、そのワードに対する分離ワードモデルは、確認された始点と終点との間にある平均化されたパラメータフレームのシーケンスを抽出することによって、決定される。この方法で分離ワードモデルを決定することによって、ワードの始めと終わりの沈黙を除去するだけではなく、そのワードの部分であって、連続的な発声音声の間において発音されない部分も除去される。したがって、本実施形態の分離ワードモデルは一般的な分離的ワードモデルには対応せず、沈黙を入力発声音の始めと終わりから除去することによって決定され、連続音声が発せられているときのワードをより適切に表すものとなる。
【００５９】
いったん分離ワードモデルが決定されると、フレーズ内の当該ワードの位置を確認するために、当該ワードを含むフレーズ例と整合される。最後に、標準ワードモデルまたは連続ワードモデルは、フレーズにおける確認位置からの音声を抽出及び結合することによって、決定される。システムがワードモデルを生成する方法の詳細について、以下に説明する。
【００６０】
ユーザがシステムに１つ以上の新しいフレーズを教えたい場合、図１１に示されるサブルーチンを起動する。ステップＳ１で、ユーザは、新しいワードまたはフレーズのテキストをキーボード３を介してシステムに入力する。システムは、ステップＳ３において、そのワードまたはフレーズが既知のものであるか否かをチェックし、そのワードまたはフレーズが未知のものであれば同じワードまたはフレーズをマイクロフォン７を介して入力するようユーザに促す。そして、ステップＳ１に入力されたワードまたはフレーズに対応するテキストに、マイクロフォン７を介して入力されたフレーズを関連させる。次にステップＳ５において、ＰＣ１は、前もって入力されていたすべてのテキストを用い、フレーズ内のどのワードが（分離された状態で）既知となっているかをチェックし、未入力（未知）のワードをマイクロフォン７を介して入力するようユーザに促す。
【００６１】
ステップＳ５の後、ユーザは、ステップＳ７にて他の新しいワードまたはフレーズを入力するかどうかを決定する。新たに入力する場合は、ステップＳ１に戻る。他方、ユーザがこれ以上ワードを入力しないことを決定した場合、処理はステップＳ９に移動する。ステップＳ９において、標準モデルは、システムに入力された少なくとも２つのフレーズに含まれる未知ワードについて生成される。例えば、学習フレーズが入力されておらず、システムには標準モデルがまだ記憶されていない状態で、ユーザが「get an image（画像を得る）」および「get the earth（接地する）」という２つのフレーズを入力し、ステップＳ７でユーザがこれ以上フレーズを入力する意志がないことを指示した場合を説明する。この場合、入力フレーズの両方に含まれるワードは「get（得る）」の１つだけなので、システムは「get」というワードのワードモデルを生成するだけでよい。他方、ユーザが「get an image（画像を得る）」というフレーズを２回入力する場合、システムは、当該フレーズ内の各ワードの標準モデルを生成させ得る。さらに、上記の前者の例を取れば、ユーザが「get an image（画像を得る）」および「get the earth（接地する）」という２つのフレーズを入力した後、第２の学習セッションで「get the earth（接地する）」というフレーズを入力した場合、「get（得る）」というワードは既に分離して入力されているので、システムは、ステップＳ５で「get（得る）」というワードを入力する必要がないことをユーザに伝える。さらに、「the（その）」及び「アース（earth）」というワードはシステムに入力されている２つのフレーズによって表されるので、システムは「the（その）」及び「アース（earth）」というワードの標準モデルを発生させることができる。この方法で学習を進めることにより、ユーザはシステムをユーザにとって都合よく学習させることができる。
【００６２】
図１２を参照すると、上記方法で入力された各フレーズは、フレーズ番号Ｐを付され、ハードディスク９３のフレーズアレー１１５に記憶される。同様に、入力される各分離ワードにはワード番号Ｗが付され、ハードディスク９３のワードアレー１１７に記憶される。図１２に示されるように、フレーズアレー１１５内の各フレーズＰは、自身に関連する次のようなデータを有する。すなわち、パラメータフレーム（PARAMETER FRAMES）１２３、フレーズを形成するワードシーケンス（PHRASE WORDS）１２５およびステータスフラグ（STATUS）１２７を有する。ワードシーケンス１２５内の各ワードは、自身に関連するテキスト（TEXT）１２９、フレーズ番号Ｐ、ワード番号（WORD No.）１３１（すなわち、フレーズ内のワードの位置）、フレーズ内のワードの（最初は認知されていない）時間境界（TIME BOUNDRIES）１３３、およびワードアレー１１７内の対応するワードＷを示すワードインデックス（WORD INDEX）１３５を有する。
【００６３】
ワードアレー１１７内の各分離ワードＷは、自身に関連する次のようなデータを有する。すなわち、パラメータフレーム（PARAMETER FRAMES）１３７、当該ワードが見出されたフレーズへの戻りを示す発声音インデックス（UTTERANCE INDEX）１３９およびステータスフラグ（STATUS）１４１を有する。まず、分離ワードおよび分離フレーズがシステムに入力されると、各ワードまたはフレーズに関連するステータスフラグ１２７および１４１は、それらがまだ処理されていないことを示すFLEXIにセットされる。なお、時間境界１３３は、フレーズのワードシーケンス内の各ワード毎に存在し、UNKNOWN（未知）に設定される。
【００６４】
次に、図１１のステップＳ９で行われる未知ワードのワードモデルを生成するための処理の詳細を図１２から図１６を参照して説明する。ここでは、学習フレーズとして「get an image（画像を得る）」というフレーズが２回、「get the earth（接地する）」というフレーズが１回入力された場合を例として用いて説明する。したがって、フレーズアレー１１５には３つの要素Ｐ１、Ｐ２およびＰ３が存在し、「get an image（画像を得る）」という発声音声のフレーズが２つと「get the earth（接地する）」という発声音声のフレーズが１つ含まれる。さらに、ワードアレー１１７には５つの要素Ｗ１、Ｗ２、Ｗ３、Ｗ４、Ｗ５があり、上記２種類のフレーズを構成するそれぞれ異なるワードが１つずつ含まれる。上記のとおり、各フレーズおよび異なる各ワードに対応するパラメータフレームのシーケンスは、フレーズアレー１１５およびワードアレー１１７の各対応する要素毎に記憶される。
【００６５】
図１３には、２つの「get an image（画像を得る）」のフレーズの発声音を示す音声信号１５１および１５３と、「get the earth（接地する）」のフレーズの発声音を示す音声信号１５５とが示されている。また、図１３には、「get（得る）」、「an（１つの）」および「image（画像）」という各ワードの分離的発声音を示す発声信号１５７、１５９および１６１も示されている。更に、図１３には、「get an image（画像を得る）」の２つのフレーズの発声音に相当するパラメータフレーム１５２および１５４と、「get the earth（接地する）」のフレーズの発声音に相当するパラメータフレーム１５６と、「得る（get）」、「１つの（an）」および「画像（image）」という各分離ワードの発声音に相当するパラメータフレーム１５８、１６０、１６２も示す。なお、「the（その）」および「earth（接地）」というワードについては、それらが入力された２つ以上のフレーズに含まれていないためワードモデルは生成されない。従って、これら、「その（the）」および「接地（earth）」というワードは、図１３には示されていない。
【００６６】
図１４は、各未知ワードのワードモデルを生成するために必要な処理を詳細に示すフローチャートである。ステップＳ２１で、未知ワードを含むフレーズに対応するパラメータフレームシーケンスが、分離して発声された当該未知ワードに対応するパラメータフレームシーケンスと関連付けられる。この関連付け処理には、フレキシブルダイナミックプログラミングアラインメント処理が用いられる。このアラインメント処理は、そのプロセスの初期段階における未知ワードの始点と終点に関する情報の欠乏を緩和する、特に、各ワードの最適アラインメントパスが始まらなければならない場所或いは終わらなければならない場所を制限しないフレキシブルダイナミックプログラミングアラインメントプロセスが用いられる。このフレキシブルダイナミックアラインメントプロセスについては、ダイナミックプログラミングアラインメントについて論じた後に、詳細に後述する。
【００６７】
このフレキシブルダイナミックプログラミングアラインメントの結果、未知ワードに対するパラメータフレームシーケンス内の当該未知ワードのおよその始点および終点が特定される。例えば、「get an image（画像を得る）」というフレーズの第１の発声音に相当するパラメータフレームシーケンス１５２が、未知ワード「get（得る）」の発声音に相当するパラメータフレームシーケンス１５８に関連付けられるとき、パラメータフレームシーケンス１５８内の始点および終点は上記アラインメントの結果から確認される。上記のとおり、始点前および終点後のパラメータフレームは、バックグラウンドのノイズまたはフレーズ例におけるワードの発音されない部分に相当しているので、除去される。
【００６８】
ステップＳ２１において、学習フレーズ例に対して行われるアラインメントでは、「get（得る）」というワードの３組の始点および終点と（「get」というワードは３つのフレーズに含まれているため）、「an（１つの）」と「image（画像）」のワードの２組の始点および終点と（「an」と「image」のワードは、２つのフレーズに示されているので）を確認する。ステップＳ２３で、それぞれの未知ワードの平均始点および平均終点が決定され、平均スタートフレームの前にあるフレームおよび平均エンドフレームの後にあるフレームが捨てられる。例えば、「get」というワードをステップＳ２１で処理した後、３つのフレーズ１５１、１５３、１５５を用いて確認された始点がそれぞれフレームｆ8W1、フレームｆ9W1、フレームｆ13W1である場合、その平均はフレームｆ10W1（［８＋９＋１３］／３）である。そして、フレームｆ10W1の前にあるパラメータフレーム１５８のシーケンス内のすべてのフレームは、捨てられる。終点についても、捨てられるフレームがエンドフレームを越えるものであるという点を除いて、上記した始点の場合と同様の手順が用いられる。その結果、各ワードのパラメータフレームシーケンスは、上記のワードの分離ワードモデルとなる。
【００６９】
図１５は、「get」、「an」、「image」の各ワードの分離ワードモデル音声信号１５７'、１５９'、１６１'、およびそれぞれに対応するパラメータフレームシーケンス１５８'、１６０'、１６２'を示す。処理のこの段階で、処理された各ワードのステータスフラッグ１４１（図１２）は、FLEXIからCHOPPEDに変わる。なお、CHOPPEDは、未知ワードが始めと終わりが除去されたフレームシーケンスを有していることを示す。
【００７０】
次に、図１４に示されるステップＳ２５において、未知ワードを含むフレーズに対応するパラメータフレームシーケンスは、当該ワードの分離ワードモデルのパラメータフレームシーケンスに関連付けられる。例えば、「get」というワードが出現するフレーズの発声音に対応するパラメータフレームシーケンス１５２、１５４、１５６の各シーケンスと、「get」というワードの分離ワードモデル１５８’に対応するパラメータフレームシーケンスとの整合がチェックされる。図１６は、本例を行った対応付け（アラインメント）の結果を示し、ここで破線は、フレーム間のアラインメントを示す。例えば、パラメータフレームシーケンス１５２と分離ワードモデルのパラメータフレームシーケンス１５８’とのパラメータフレームのシーケンスとの間のアラインメントでは、フレームｆ2P1およびｆ3P1がフレームｆ10W1に関連付けられ、フレームｆ4P1およびｆ5P1がフレームｆ11W1に関連付けられる等、アラインメントが確立されている。
【００７１】
次に、図１４のステップＳ２７において、分離ワードモデルの個々のフレームを、フレーズに対応するパラメータフレームのシーケンスからの関連フレームの平均で置き換えることによって未知ワードの標準モデルが生成される。例えば、図１６に示される分離ワードモデル１５８'のパラメータフレームシーケンスにおいて、フレームｆ10W1は、フレームｆ2P1、 ｆ3P1、 ｆ1P2、 ｆ2P3の平均に置き換えられる。また、フレームｆ11W1は、フレームｆ4P1、ｆ5P1、 ｆ2P2、ｆ3P2、ｆ3P3の平均に置き換えられる。分離ワードモデルのフレームの１つに関連付けられるフレームがフレーズに存在しない場合、そのフレームは、隣接する置き換えられたフレームの間を補間するかまたはフレームから外挿することによって得られるフレームに置き換えられる。例えば、図１６に示されるパラメータフレーム１５８'のシーケンスにおいて、フレームｆ12W1は、パラメータフレームシーケンス１５２、１５４または１５６内のいずれのフレームにも関連付けられない。従って、ｆ12W1は、ｆ11W1、ｆ13W1の置換後のフレームで捕間することによって得られたフレームに置き換えられる。或いは、分離ワードモデル内における、入力フレーズのいずれのフレームにも関連しないフレームを捨てるように構成しても良い。
【００７２】
ステップＳ２７で生成された基準ワードモデルは、システムの音声認識部で用いられるものであり、その詳細を以下に示す。なお、処理された各ワードのステータスフラグ１４１は、CHOPPEDからIN-USEに変化する。
【００７３】
いったん標準ワードモデルがフレーズ内のすべてのワードについて生成されると、フレーズは、図２に示される言語モデル２１に追加される。本実施形態において、言語モデル２１は、バイグラムモデル（Bigram Model）と同様で、網目上に相互に接続するノードを備える。ここで、相互接続は、システムに既知となったワードを示す。しかしながら、この相互接続には、例えば、正しい英語の用法に関する文法規則は含まれていない。すなわち、システムに認知されたフレーズに従って、どのワードが他のどのワードに続くかを制限するだけである。図１７ａは、以下の各フレーズがシステムによって学習されたときに取り出される言語モデル２１を示す。
【００７４】
【表１】
0003847879.tif 000006
【００７５】
図１７ａに示されるように、スタートノードＮ0、エンドノードＮn、８個の中間ノードＮ1からＮ8がある。認識されるべき入力フレーズのために、システムは、スタートノードＮ0からエンドノードＮnまでのパスを見つけなければならない。しかしながら、システムは一度学習されると妥当な程度にフレキシブルになり、ユーザが「make it smaller」というフレーズの代わりに「make smaller」と入力しても、システムはその入力されたフレーズを認識することができる。しかしながら、フレーズの個々のワードが既知であっても、そのフレーズがシステムに認知されていない場合、システムはフレーズを認識しない。例えば、上記の言語モデルにおいて、ユーザが「save the image」と言った場合、たとえシステムにとって「save」、「the」、「image」の各ワードが既知であっても、システムはこの入力フレーズ（「save the image」）を認識しない。
【００７６】
言語モデル２１は、図１１のステップＳ３で入力されたテキストによって示される必要なワードのシーケンスを抽出することによって作成され、各新しいフレーズが入力された後に更新され、フレーズ内の各ワードにはワードモデルが提供される。言語モデル２１を更新する方法について、図１７ｂを参照して以下に説明する。
【００７７】
新しいフレーズが入力され、入力フレーズの各ワードに対応するワードモデルが決定されると、ステップＳ３０においてシステムは、フレーズの第１のワードがスタートノードＮ0の出力に接続されているかどうかを判断する。接続されている場合、処理はステップＳ３２に進む。他方、第１のワードがスタートノードＮ0の出力にまだ接続されていない場合は、ステップＳ３１でスタートノードＮ0からの新しい出力として第１のワードが追加される。
【００７８】
処理はステップＳ３２に進み、ここでシステムはワードループカウンタｗを初期化する。以降の処理で、システムは、このワードループカウンタｗを用いて、当該フレーズ内の全ワードを数える。処理はステップＳ３３に進み、ここでシステムはワードｗが当該フレーズの最後のワードか否かを判断する。ワードｗが最後のワードでない場合、処理はステップＳ３４に進み、ワードｗがノード（エンドノードＮnを除いた）の入力に接続されているか否かを判断する。接続されていれば処理はステップＳ３６に進み、ここでシステムは、次のワードｗ＋１がワードｗを入力として有するノードの出力に接続されているかどうかをチェックする。他方、ステップＳ３４で、ワードｗがいずれのノードの入力にも接続されていないとシステムが判断した場合、処理はステップＳ３５に進み、ここで新しいノードが作成され、ワードｗは、新しいノードの入力に接続される。それから、上記のとおり、処理はステップＳ３６に進む。
【００７９】
ステップＳ３６で、次のワードｗ＋１がワードｗを入力として有するノードの出力に接続されていないとシステムが判断した場合、処理はステップＳ３７に進む。ステップＳ３７では、次のワードｗ＋１が当該ノードの出力として追加される。一方、ステップＳ３６で、次のワードｗ＋１が既にワードｗを入力として有するノードの出力に接続されているとシステムが判断した場合は、そのままステップＳ３８に進み、ここでワードカウンタｗがインクリメントされる。そして、処理はステップＳ３３に戻り、入力フレーズの次のワードに対して同様の処理が行われる。また、ステップＳ３３で、ワードｗがフレーズの最後のワードであることを判定された場合、処理はステップＳ３９に進む。ステップＳ３９において、システムは、最後のワードがエンドノードＮnの入力に接続されているか否かを判断する。最後のワードがエンドノードＮnの入力に接続されていない場合、処理はステップＳ４０に進み、ここでシステムは、フレーズの最後のワードをエンドノードＮnの入力に接続する。最後のワードがエンドノードＮnに既に接続されているか、またはステップＳ４０で最後のワードがエンドノードＮnに接続されると、本処理を完了し、処理された入力フレーズは言語モデル２１の一部を形成することになる。
【００８０】
本学習プロセスの特徴の１つは、システムに個々にフレーズを学習させることもできるし、一度に多数のフレーズを学習させることもできる。新しいフレーズが入力され、この時点でシステムが既にフレーズ内のいくつかのワードのワードモデルを有する場合、システムは言語モデル２１を更新する前に、当該フレーズの未知ワードについてワードモデルを生成する必要がある。
【００８１】
＜ダイナミックプログラミング（ＤＰ）＞
図１４のステップＳ２１およびＳ２５で行われる処理において、フレーズのパラメータフレームとワードのパラメータフレームとを関連付けるために、アラインメント処理が用いられた。より効果的な方法で２つのシーケンスを関連させるため、アラインメントプロセスは、例えば、ワードが分離して発せられたり、ワードが連続的に発せられるフレーズに含まれる場合に生じるワードの発声速度の差を補償することが要求される。上記のダイナミックプログラミング（ＤＰ）のアラインメントプロセスは、あるワードを別のワードに合致させる一つの方法である。これは、最適な非線形の時間スケールのひずみを適用して、すべての時点で最適にマッチさせる方法で行われる。
【００８２】
ＤＰマッチングプロセスの概略を、図１８から図２０を参照して以下に説明する。図１８は、横座標方向に入力ワードを示すパラメータフレームのシーケンスを示し、縦座標方向にワードモデルを示すパラメータフレームのシーケンスを示す。本例を図１４のステップＳ２５で行われる処理と比較すると、入力ワードを示すパラメータフレームは、入力フレーズの１つに相当するパラメータフレームシーケンスの一部分を示す。また、ワードモデルを示すパラメータフレームシーケンスは、切り出されたワードの１つに相当するフレームシーケンスを示す。
【００８３】
ワードモデルと入力ワードとのトータル的な違いを見つけるため、図１８の左下隅と右上隅との間のあらゆるパスに沿って最短累積距離が得られる数対のフレームに関してすべての距離の和を求める必要がある。この限定は、類似するワードの対応するフレームが正しく関連付けられることを保証する。このような総距離を計算する１つの方法は、すべてのありうるパスを考慮し、各パスに沿った各点のｄ（ｋ，ｊ）の値（フレームｋとフレームｊとの間の距離）を加算することである。２つのワードの間で評価された距離の最小値を取り、累積距離を求める。この方法は正しい答えを与えるが、有効パスの数が増加するので、実用的な音声認識システムのためのコンピュータ処理は不可能となる。
【００８４】
ダイナミックプログラミングは数学的技術であり、すべての取り得るパスの距離を計算することは行わずに、最適なパスの累積距離を求めることができる。累積距離が計算されるべきパスの数は、さらにＤＰプロセスを制限することによって、低減される。例えば、最適パスは負の傾斜にはなり得ない。負方向の傾斜に進む場合、ワードの１つは他のワードの時間を逆にさかのぼる状態になる。ＤＰプロセスに対するもう１つの制限は、基準ワードに対する入力ワードの時間圧縮／拡張の最大量を制限することである。本実施形態において、この制限は、マッチングプロセスで飛ばされたりまたは繰り返されるフレームの数を制限することによって、実現される。例えば、図１９において、フレームシーケンスは、フレームｆkがフレームｆjmに合致する場合、フレームｆk+1がフレームｆjm、ｆj+1m、ｆj+2mまたはｆj+3mに合致するように制限される。したがって、入力ワードのフレームｆkおよびワードモデルのフレームｆjmが最適パス上にある場合、上記制限において、最適パス上で直ちに処理する点は、図２０に示すように、（ｋ−１，ｊ）、（ｋ−１，ｊ−１）、（ｋ−１，ｊ−２）、（ ｋ−１，ｊ−３）のいずれかである。
【００８５】
図１８は、フレームｆk-1まで伝わる「有効パス」を示し、入力ワードとワードモデルとの間のマッチング候補を示す。フレームｆkが認識ブロック１７に入力されるとき、各有効パスは、現フレームｆkと有効パスの最後にあるワードモデルのフレームとの間の局部距離を有する。この局部距離は累積距離に追加されるべきものである。多数のパスが同じ点で出会う場合、最短の累積距離の有効パスが継続され、他のパスは捨てられる。例えば、図１８で、パスＡ、Ｂ、Ｃは点（ｋ，ｊ）で出会うが、最短累積距離を有するパス（Ａ、ＢまたはＣのいずれか）は継続され、その他の２つのパスは捨てられる。
【００８６】
したがって、Ｄ（ｋ，ｊ）を、ワードの始めから点（ｋ，ｊ）までの有効パスに沿った累積距離とすれば、
【００８７】
【数５】
0003847879.tif 000007
【００８８】
で表される。
【００８９】
また、上述した制限は以下のとおりである。すなわち、
【００９０】
【数６】
0003847879.tif 000008
【００９１】
となる。
【００９２】
上記制限で、Ｄ（０，０）の値は、ｄ（０，０）、ｄ（１，０）、ｄ（２，０）またはｄ（３，０）と等しくなければならず、すべてのパスはこれらの点のうちの１つから始まらなければならない。したがって、始点の１つから始め、Ｄ（ｋ，ｊ）の値は、帰納的な処理ルーチンを介して決定され得る。ルーチンがマッチングされるべきワードの終わりに到達すると、ＤＰプロセスによって計算された最小累積距離は、２つのワードをマッチさせる最適なパスのスコアを示す。認識されるべき入力発声音がワードシーケンスから構成される場合、採用された方向を示すバックポインタが用いられなければならない。ＤＰプロセスが最適のパスの終わりを示した後、そのバックポインタで戻りながら跡をたどることによって、入力発声音を認識することができるようにするためである。
【００９３】
上記のＤＰプロセスは、すべてのパスを網羅して探索することと比較して、大幅にコンピュータ処理の付加を低減するが、各入力ワードとのマッチングを行うために多数のワードモデルと比較しなければならない場合、他のコンピュータ処理も重要となり得る。したがって、認識結果の精度に大した影響を及ぼさないコンピュータ処理を省略することは望ましい。可能なコンピュータ処理の省略は、スコアの悪いパスが必要以上に形成されることを防ぐことである。成長するパスが木の枝に似ているので、この処理は「刈り込み（pruning）」として知られている。このようにパスの刈り込みによって、最適パスの両側の候補パスを含むパスの狭帯のみが考慮される。このような借り込みが用いられる部分では、ダイナミックプログラミングプロセスが最適のパスを確実に見つけるとは限らないことが認められる。しかしながら、刈り込みしきい値を用いて、例えば５〜１０の要因でコンピュータ処理の平均量を低減し、ワードがよく類似する場合であれば殆ど常時正しいパスが求められる。
【００９４】
なお、本実施形態において、図２に示される認識ブロック１７は、上記と同様のダイナミックプログラミングマッチングプロセスを用い、ワードモデル１９およびノイズモデル２３で認識されるべき発声音のパラメータフレームのシーケンスのマッチングを行う。
【００９５】
＜認識検索＞
本実施形態による音声認識システムのもう１つの特徴は、ダイナミックプログラミングプロセスが行われる方法にある。特に、本実施形態は、上記等式（６）で行われた最小値の計算、すなわち、以下の式（７）が処理される現フレームｆkに影響されないことを利用する。したがって、前フレームｆk-1が処理されるとき、等式（６）のこの部分が計算される。
【００９６】
【数７】
0003847879.tif 000009
【００９７】
ダイナミックプログラミングプロセスを実施する方法を、図２１〜図３１を参照して以下に説明する。
【００９８】
図２１は、認識すべき入力発声音を入力した際に、認識ブロック１７で行われる処理を示すフローチャートである。システムは、プリプロセッサ１５によって生成された入力発声音のパラメータフレームシーケンスを処理する。フレームカウンタ変数ｋはこの処理に供され、変数ｋは、ステップＳ４１で０に初期化され、各フレームが処理される毎にステップＳ６１で順次インクリメントされる。処理される各フレームは、ステップＳ４７で用いられ、各ワードモデル内の他の有効パスの累積距離を更新する。ワードカウンタｗはこの処理に供され、ステップＳ４３で０に初期化され、ステップＳ４７の後、ステップＳ４９でインクリメントされる。ステップＳ４５で、システムは、現フレームを用いて、すべてのワードモデルが処理されたかどうかをチェックする。すなわち、システムは、ワードカウンタｗがシステムに認識されたワードの数ｎwを下回るかどうかをチェックする。
【００９９】
現フレームｆkを用いて、全ワードモデルがいったん処理されると、処理はステップＳ５１に進み、ここで図１７ａに示される言語モデル２１のノードが、現フレームを用いて処理される。ステップＳ５１で行われる処理は、現パラメータフレームが、入力音声の始めと終わりまたは入力音声の許されたワードシーケンス間の沈黙に対応するという状況を処理する。また、この処理は、有効パスが、許容されたワードシーケンスの範囲に沿って成長するのを保証する。
【０１００】
ステップＳ５１でノードが処理された後、各ワードモデルの始め、即ち「エントリステート」の１つで終わる有効パスの累積距離がステップＳ５７で更新される。この処理は、現パラメータフレームｆkがあるワードモデルの終わりにマッチングするときに、次のパラメータフレームｆk+1が他のワードモデルの始めに合致するという状況に対処する。これを達成するため、ワードカウンタｗは、ステップＳ５３で再度初期化される。ステップＳ５５でシステムは、すべてのワードモデルが処理されているかどうかをチェックする。ステップＳ５７でシステムは、現ワードモデルのエントリステートに対する累積距離を更新し、ワードカウンタｗが、ステップＳ５９でインクリメントされる。そして処理は、ステップＳ５５に戻る。
【０１０１】
すべてのワードモデルが現パラメータフレームｆkについて処理された後、パラメータフレームカウンタ変数ｋは、ステップＳ６１でインクリメントされる。ステップＳ６３でシステムは、処理されるべき入力発声音がこれ以上存在するかどうかを判断する。これはステップＳ６３で変数ｋをシステム限界（ＬＩＭＩＴ）及び音声終了識別子（ＥＯＳ）と比較することによって、この処理は行われる。システム限界は、図３に示されるＡＤＣ６３から出力された音声サンプルを記憶するために用いられるバッファの容量によって決定される。
【０１０２】
入力発声音のすべてのパラメータフレームが処理された場合、ＤＰプロセスが完了し、回帰アルゴリズムを用いて最適パスを決定し、それによって、認識結果を決定する。他方、ステップＳ６３でシステムが処理されるべきパラメータフレームがさらに存在すると判断された場合、ステップＳ６５でシステムは刈り込みしきい値を調整し、ステップＳ４３に戻る。刈り込みしきい値Ｔｈは、次の入力フレームが処理されるとき、ステップＳ４７、Ｓ５１、Ｓ５７で処理される有効パスの数を制限するべくステップＳ６５で調整される。
【０１０３】
図２１のステップＳ４７で行われる処理の詳細を、ワードモデルの特定の例を示す図２２から図２６を参照して以下に説明する。図２２は、ワードモデル２０１の一例を示す。特に例示されているワードモデル２０１は、学習セッションの間に得られたステートＳ0〜Ｓ9のシーケンスと、ワードモデル２０１の終わりの出口ステートＳDとを備える。これらの目的を以下に説明する。
【０１０４】
ワードモデル（WORD）２０１の各ステートＳは、そのステートで終わる有効パスの累積距離を記憶する累積距離記憶Ｄ[Ｓ]を有する。本実施形態において、ワードモデル２０１は、現フレームｆkの現アクティブリスト（ACTIVE LIST）２０３を有する。ここで、現アクティブリストは、現フレームｆkの有効パスの終わりにあるワードモデルのステートを降順に登録する。したがって、現アクティブリスト２０３の各ステートは、そのステートで終わる各有効パスの累積距離を記憶する。この例において、現フレームｆkの現アクティブリスト２０３は、ステートＳ7、Ｓ5、Ｓ4、Ｓ3、Ｓ2、Ｓ1、Ｓ0を登録している。現アクティブリスト２０３に掲載されたステートはアクティブステートとして示される。本実施形態において、ワードモデル２０１は、関連付けられた新アクティブリスト（NEW ACTIVE LIST）２０５も有する。この新アクティブリスト２０５は、ステップＳ４７で行われる処理の間に完成し、次のフレームｆk+1のための有効パスの終わりにおけるワードモデル２０１のステートを登録する。
【０１０５】
現アクティブリスト２０３および新アクティブリスト２０５の重要性を図２３を参照して説明する。図２３は、ｐ１〜ｐ７の７つの有効パスを示し、７つの有効パスは、入力されたワードとワードモデル２０１との間の現フレームｆkまでの７つのマッチング候補を示す。図示されるとおり、７つの有効パスｐ１〜ｐ７はそれぞれ、ワードモデル２０１のステートＳ7、Ｓ5、Ｓ4、Ｓ3、Ｓ2、Ｓ1、Ｓ0で終わっている。現アクティブリスト２０３で降順に登録されているのは、これら有効パスの終わりのステートである。新アクティブリスト２０５に登録すべきステートを決定するため、すなわち、次の入力フレームｆk+1に残るパスを決定するため、ある入力パラメータフレームから他のパラメータフレームへの移行が許可されている状態を考慮しなければならない。
【０１０６】
入力発声音に対する標準モデルの時間圧縮の最大量は、入力発声音の隣接するフレーム間においてスキップできるステートの最大数によって決定される。本実施形態において、この最大数は２に設定される。すなわち、ＤＰプロセスは、図１９に示される状態遷移図に従う。入力発声音に対する標準モデルの時間伸長の最大量は、同じステートにマッチし得る連続した入力フレームの最大数によって決定される。本実施形態においては、続いて入力される２つの連続フレームが同じステートにマッチし得る。これらの状態を監視するため、各ステートＳは、関連する自己反復カウンタ、すなわち、SELFを有する。SELFは、対応する有効パスが入力フレームｆkから次のフレームｆk+1が同じステートで終わる度にインクリメントされる。したがって、例えば、パスｐ５は、図２３に破線で示されるパス２０７の１つまたはすべてに沿って伝わる。図２３に示される他のパスｐ１〜ｐ４およびｐ６、ｐ７も、同様の方法で伝わる。２つ以上のパスが同じ点で合う場合、最小の累積距離を有するパスが維持され、他のパスは捨てられる。さらに、パスの累積距離が刈り込みしきい値より大きい場合、このパスも捨てられる。このように、新しいパスが連続的に作成され、一方、他のパスは捨てられる。刈り込みしきい値の目的は、各入力パラメータフレームのために処理される有効パスの数を制限し、それによって、アルゴリズムに必要な時間量およびメモリを制限することである。
【０１０７】
図２４は、図２１のステップＳ４７で行われる処理ステップを詳細に示す。まず、ステップＳ７１でポインタＬＡが初期化される。また、ワードモデル２０１の出口ステートに記憶される累積距離、すなわちＤ［ＳD］は、大きい値を示すHUGEに設定される。ポインタＬＡは、新アクティブリスト２０５に登録された最後のアクティブステートを示すのに用いられる。最初、新アクティブリスト２０５にはアクティブステートがなく、従って、ポインタＬＡは、出口ステートＳDを示すように設定される。ステップＳ７３でシステムは、現アクティブリスト２０３にアクティブなステートがあるかどうかをチェックする。言い換えれば、現ワードにおける、現フレームｆkで終わる有効パスがあるかどうかチェックする。本例では、現アクティブリスト２０３には７つのアクティブステートがあり、システムは各アクティブステートを順次処理する。カウント変数ｉが与えられ、カウント変数ｉは、現アクティブリスト２０３におけるアクティブステートすべてをカウントするために用いられる。カウント変数ｉは、ステップＳ７５で０に設定され、現アクティブリスト２０３の全アクティブステートが処理されるまで、ステップＳ７９でインクリメントされる。システムは、ステップＳ８１でカウント変数ｉと現アクティブリスト２０３のアクティブステートの数ｎａとを比較することによって、すべてのアクティブステートが処理されたかどうかを判断する。
【０１０８】
現アクティブリスト２０３のすべてのアクティブステートがいったん処理されると、ステップＳ７７の処理の間に発生された新アクティブリスト２０５が、ステップＳ８３にて、処理されるべき入力発声音の次のフレームｆk+1の現アクティブリスト２０３に置き換えられる。実際には、２つのアクティブリストを示すために用いられるポインタを交換することによってこの処理は行われる。古くなった現アクティブリストは、次の入力フレームｆk+1の処理中に新アクティブリストとして上書きされる。最後に、ステップＳ８５において、アクティブステートになり、新アクティブリスト２０５に登録された、ポインタＬＡによって示される最終ステートが図２１に示されるステップＳ５７で用いるために格納される。
【０１０９】
ステップＳ７７で行われる処理の概略を、アクティブステートＳ7、Ｓ5を例に揚げて説明する。図２３に示されるように、アクティブステートＳ7、Ｓ5はそれぞれ、パスｐ１、ｐ２の終わりである。図２５は、２つの有効パスｐ１、ｐ２の一部分を示し、有効パスｐ１、ｐ２はそれぞれ、現フレームｆkのアクティブステートＳ7、Ｓ5で終わる。図２５の破線は、各２つのパスｐ１、ｐ２が次のフレームｆk+1に伝わり得る態様を示す。破線２１３で示すように、パスｐ１は、フレームｆk+1で他のワードに拡張することができる。したがって、（アクティブステートＳ7に記憶される）パスｐ１の累積距離は、出口ステートＳDに複写される。破線２１５、２１７、２１９で示すように、パスｐ１は、ステートＳ9、Ｓ8、Ｓ7のそれぞれにも伝わり得る。したがって、パスｐ１の累積距離がステートＳ9、Ｓ8、Ｓ7に複写される。更に、ステートＳ9、Ｓ8、Ｓ7は、降順に新アクティブリスト２０５に追加され（ただし、入力フレームと比較されず、当該ワードを離れる全てのパスの最短累積距離を記憶するためだけに用いられる出口ステートは追加されない）、最終アクティブポインタＬＡは、最後に追加されたステート（すなわち、ステートＳ7）を示すように設定される。
【０１１０】
図２６ａは、現アクティブリスト２０３の第１のステートＳ7が処理された後の新アクティブリスト２０５を示す。図示されるように、ステートＳ9、Ｓ8、Ｓ7はそれぞれ、新アクティブリスト２０５の最初の３つの要素で、最終アクティブポインタＬＡは、ステートＳ7を示す。
【０１１１】
図２５をもう一度参照すると、破線２２１、２２３、２２５、２２７で示すように、パスｐ２は、ステートＳ8、Ｓ7、Ｓ6、Ｓ5それぞれに伝わリ得る。しかしながら、２つのステートＳ8、Ｓ7は次のフレームｆk+1のために記憶された累積距離をすでに有するので、パスｐ２の累積距離を単に各ステートにコピーするという処理だけではない。すなわち、これら２つのステートＳ8、Ｓ7では、すでに記憶されている累積距離とパスｐ２に関連する累積距離とを比較し、最小の累積距離がこれら２つのステートにコピーされることになる。言い換えれば、図２３に示されるパスのステートＳ8、Ｓ7に記憶されるべき累積距離は、アクティブステートＳ5を処理した後に、min(D[S7], D[S5])によって求められる。一方アクティブステートＳ5に記憶された累積距離はステートＳ6に直接に複写される。ステートＳ6には、次のフレームｆk+1に対する累積距離が記憶されていないからである。２つのステートＳ6、Ｓ5は、新アクティブリスト２０５に追加され、最終アクティブポインタＬＡは、ステートＳ5を示すように設定される。
【０１１２】
図２６ｂは、現アクティブリスト２０３の第２番目のアクティブステートＳ5が処理された後の新アクティブリスト２０５を示す。図示されるように、ステートＳ8、Ｓ7、Ｓ6、Ｓ5はそれぞれ、新アクティブリスト２０５の最初の５つの要素となり、最終アクティブポインタＬＡは、ステートＳ5を示す。現アクティブリスト２０３の他のアクティブステートも同様の方法で処理され、処理は図２１で示されるステップＳ４９に進み、ここでワードカウントがインクリメントされる。
【０１１３】
最終アクティブポインタＬＡが設けられているので、システムは比較処理を必要とするステートおよび比較を必要としないステートを確認するために新アクティブリスト２０５を検査する必要が無くなる。即ち、ステートがアクティブポインタＬＡによって示されたステート番号と等しいかまたは上回る場合、比較処理が必要であることがわかる。また、ステート番号よりも下回る場合、累積距離がそのステートにコピーされればよい。
【０１１４】
図２４に示されるステップＳ７７で行われる処理を、図２２に示されるワードモデル２０１の例を用いて、図２７ａおよび図２７ｂを参照して詳細に説明する。ステップＳ７７でｉ＝０の場合に、処理をしなければならない第１のアクティブステートＳは、ステートＳ7である。したがって、図２７ａのステップＳ９１で、システムは、ステートＳ7で終わる有効パスの累積距離が刈り込みしきい値Ｔｈを下回るかどうかをチェックする、すなわち、Ｄ［Ｓ7］はＴｈと比較される。 Ｄ［Ｓ7］が刈り込みしきい値Ｔｈを上回る場合、このパスは捨てられ、処理は、図２４に示されるステップＳ７９に移行する。 Ｄ［Ｓ7］が刈り込みしきい値Ｔｈを下回る場合、処理は、ステップＳ９２に進み、ここで現フレームｆkのために処理されるアクティブステートの総数を数えるために用いられる変数ACOUNTをインクリメントする。ステップＳ９３で、システムは、処理中である現アクティブステートＳ7と処理中である現フレームｆkとの間の局部距離を計算し、この計算結果を累積距離Ｄ［Ｓ7］に加算する。
【０１１５】
本実施形態においては、以下のユークリッドの距離公式を用い、現フレームｆkと現アクティブステートＳとの間の局部距離の値を得る。
【０１１６】
【数８】
0003847879.tif 000010
【０１１７】
累積距離Ｄ［Ｓ7］がステップＳ９３で更新された後、ステップＳ９５でシステムは、現アクティブステートＳ7で終わる有効パスが次の入力フレームｆk+1でワードから離れ得るかどうかをチェックする。上記ＤＰの制限によって、この処理では、処理される現アクティブステートＳの先の３つ目のステートがワードモデル２０１の最後のステートの先に進むかどうかを決定して示す。本例では、現アクティブステートＳ7の先の３つのステートが最後のステートＳ9を過ぎているので、ステップＳ９７に進み、ワードモデル２０１の終わりである出口ステートＳDを示すようにポインタｊが設定される。ステップＳ１０１で、ポインタｊによって示されるステートが最終アクティブポインタＬＡによって示されるステートと比較される。この処理は（現時点では）、処理されるべき現アクティブリスト２０３内の第１番目のアクティブステートであるので、最終アクティブポインタＬＡは、出口ステートＳDを示している（図２４に示されるステップＳ７１を参照）。したがって、処理はステップＳ１０３に進み、ここでポインタｊによって示されたステート、すなわち、出口ステートＳDに記憶された累積距離が、処理される現アクティブステートＳ7で終わる有効パスｐ１の累積距離と比較される。
【０１１８】
図２４のステップＳ７１で、出口ステート、すなわち、Ｄ［ＳD］に記憶された累積距離は、大きな値を示すHUGEに設定されている。したがって、累積距離は、処理される現アクティブステートＳ7に記憶されている累積距離を上回る。結果的に、処理は、ステップＳ１０５に進み、ここでＤ［Ｓ7］がＤ［ＳD］にコピーされる。次に、ステップＳ１０７で、ポインタｊによって示されるステート、すなわち、出口ステートＳDに対応する自己反復カウンタは０に設定される。ステップＳ１０９で、ポインタｊはデクリメントされ、ステートＳ9を示すようになり、処理はステップＳ１０１に戻る。
【０１１９】
次に、ポインタｊによって示されるステート（ステートＳ9）は、最終アクティブポインタＬＡによって示されるステート（ステートＳD）の前なので、処理は図２７ｂに示されるステップＳ１１１に進む。ステップＳ１１１で、システムは、ポインタｊによって示されるステート、すなわち、ステートＳ9が処理される現アクティブステートＳ7と等しいかどうかをチェックする。ここでは、等しくないので、処理はステップＳ１１３に進み、ここでステートＳ9に記憶された累積距離が現アクティブステートＳ7に記憶された累積距離と等しくされる。言い換えれば、パスｐ１の累積距離がステートＳ9に複写される。そして、ステップＳ１１５で、ステートＳ9が、図２２に示される新アクティブリスト２０５に追加される。ステップＳ１１７で、ステートＳ9に対応する自己反復カウンタが０に再設定される。そして、続くステップＳ１１９でポインタｊがデクリメントされ、ポインタｊはステートＳ8を示す。処理はステップＳ１１１に戻り、ステートＳ8はステートＳ9と同様の方法で処理される。
【０１２０】
ステートＳ8がステップＳ１１３、Ｓ１１５、Ｓ１１７で処理された後、ｊはステップＳ１１９でデクリメントされてステートＳ7を示すようになる。ステートＳ7は処理される現アクティブステートでもある。したがって、このとき、処理はステップＳ１１１からステップＳ１２１に進み、ここでステートＳ7に関連する自己反復カウンタがチェックされる。すなわち、ステートＳ7で終わる有効パスが、当該入力発声音の過去の２つのフレームに渡ってそこで終わったかどうかをチェックする。ステートＳ7に対応する自己反復カウンタの値が２つのフレームと等しい場合、ステートＳ7は新アクティブリスト２０５には追加されず、処理はステップＳ１２３に進む。ステップＳ１２３では、最終アクティブポインタＬＡが、現アクティブステートに１を加えられた値に設定され、ステートＳ8を示すようになる。このルーチンによって、現アクティブステートに対応する自己反復カウンタが２つのフレームと等しいかどうか確認され、等しい場合には現アクティブステートで終わる有効パスが、次のフレームｆk+1の同じステートに伝わることを防ぐ。図２３に示されるパスの例においては、現フレームｆkのステートＳ7で終わるパスｐ１はステートＳ6から入るので、自己反復カウンタは０となっている。結果的に、ステートＳ7は、ステップＳ１２５で新アクティブリスト２０５に追加される。ステートＳ7の自己反復カウンタは、ステップＳ１２７でインクリメントされ、ステップＳ１２９で、最終アクティブポインタＬＡが現アクティブステート、すなわち、ステートＳ7を示すように設定される。
【０１２１】
ステップＳ１２９またはステップＳ１２３の後、処理はステップＳ１３１に進み、ここで現アクティブステートＳ7に記憶された累積距離は、現フレームｆkのために処理されたすべてのワードにおけるすべての有効パスの最短累積距離MINSCOREと比較される。ステートＳ7に記憶された累積距離がMINSCORE を下回る場合は、 ステップＳ１３３でMINSCOREがステートＳ7に記憶された累積距離に置き換えられる。その後、処理は、図２４に示されるステップＳ７９に戻る。一方、MINSCOREに記憶された累積距離が現ステートＳ7に対応する累積距離を下回る場合、処理は、そのまま図２４に示されるステップＳ７９に戻る。ステップＳ７９に戻ると、カウント変数ｉがインクリメントされ、現アクティブリスト２０３の次のアクティブステート、すなわち、ステートＳ5が、ステップＳ７７で処理されることになる。
【０１２２】
アクティブステートＳ5は、上記アクティブステートＳ7と同様の方法で処理される。ステートＳ5で終わる有効パスの累積距離が刈り込みしきい値Ｔｈを下回る場合、ステップＳ９３で、システムは、現アクティブステートＳ5と処理される現フレームｆkとの間の局部距離を計算し、その計算結果を現アクティブステートＳ5に記憶された累積距離に加算する。ステップＳ９５で、システムは、現アクティブステートＳ5で終わるパスｐ２が、上記ＤＰの制限によって、次のフレームｆk+1の他のワードに拡張できないと判断する。言い換えれば、ステートＳ5から３つ目のステートは、ステートＳDと等しくないかまたはステートＳDを越えないので、処理はステップＳ９９に進み、ここでポインタｊが、ステートＳ5の３段階先のステート、すなわち、ステートＳ8を示すように設定される。次に、ステップＳ１０１で、ポインタｊによって示されるステートが、最終アクティブポインタＬＡによって示されるステートと比較される。
【０１２３】
この時点において、最終アクティブポインタＬＡはステートＳ7を示し、ポインタｊはステートＳ8を示す。したがって、処理がステップＳ１０３に進み、ここで（アクティブステートＳ7の処理の結果として）ステートＳ8にすでに記憶されていた累積距離が、アクティブステートＳ5に記憶された累積距離と比較される。ステートＳ8に記憶された累積距離がステートＳ5に記憶された累積距離を上回る場合、ステートＳ8に記憶された累積距離は、ステートＳ5に記憶された累積距離に置き換えられる。ステップＳ１０７で、ステートＳ8に関連する自己反復カウンタは０に再設定され、ポインタｊは、ステップＳ１０９でデクリメントされ、ステートＳ7を示すようになる。そして、処理はステップＳ１０１に進み、ここで上記と同様の処理が行われる。
【０１２４】
この再帰処理ルーチンは、システムに認知されたすべての標準ワードの全ての現アクティブステートについて行われる。
【０１２５】
現フレームｆkについて上記方法で各ワードを処理した後、言語モデル２１の各ノードが順次処理される。上記のとおり、言語モデル２１は、許容されるワードのシーケンスを決定する。この情報は、ノードによって、特にノードの入力および出力に接続されるワードによって、決定される。図２１のステップＳ５１のノードの処理によって、有効パスは確実に許容されたワードシーケンスの中を伝わる。以下、ステップＳ５１で行われる処理を、図２８を参照して詳細に説明する。
【０１２６】
まず、ノードを処理する前に、バックグラウンドのノイズを示すフレームと現フレームｆk（すなわち、d(noise, ｆk)）との間の局部距離が、ステップＳ１５１で計算される。ステップＳ１５３で、ノードポインタｖがスタートノードＮ0を示すように初期化される。ステップＳ１５５で、ノードポインタｖによって示されるノードに記憶された累積距離、すなわち、Ｄ［ｖ］が、刈り込みしきい値Ｔｈと比較される。 Ｄ［ｖ］が刈り込みしきい値Ｔｈを下回る場合、処理はステップＳ１５７に進み、ここでd(noise, ｆk)が、処理される現ノードｖに記憶された累積距離に加算される。ステップＳ１５９で、システムは、Ｄ［ｖ］と最小値記憶MINSCOREに記憶された値を比較する。 Ｄ［ｖ］がMINSCOREに記憶された値を下回る場合、ステップＳ１６１でＤ［ｖ］をMINSCOREにコピーする。カウント値ACOUNT（現フレームのために処理されたアクティブステートおよびノードの数を示す）はステップＳ１６３でインクリメントされ、処理はステップＳ１６５に進む。一方、ステップＳ１５５において、Ｄ［ｖ］が刈り込みしきい値Ｔｈを上回る場合は、ステップＳ１６７でＤ［ｖ］は大きな値を示すHUGEに設定され、処理はステップＳ１６５に進む。
【０１２７】
ステップＳ１６５、Ｓ１６８で行われる処理について、図２９に示されるノードＮを例にして説明する。図示のノードＮには、３つのワード「get」、「save」、「load」がその入力に接続され、２つのワード「an」、「the」がその出力に接続されている。このようなノードの生成は、図１７ｂに示される手順を用いては実現できないが、ダイナミックプログラミングプロセスがより複雑な言語モデルのために動作することを示すために本例が選択されている。特に、定型文法では、ノードが図２９に示されるようなものが一般的である。
【０１２８】
ステップＳ１６５で、システムは、ノードＮの入力に接続されたワードの出口ステート、すなわち、ワード「get」、「save」、「load」の出口ステートに記憶されたすべての累積距離の最小値を決定する。一般的な場合、この計算は以下の式によって、示される。
【０１２９】
【数９】
0003847879.tif 000011
【０１３０】
ここで、Ｉｗ［ｖ］は、ノードｖの入力に接続されたすべてのワードを示す。システムがノードＮについてこの最小累積距離を決定した後、その最小累積距離がすでに記憶されている累積距離を下回る場合には、当該最小累積距離がノードＮに記憶された累積距離Ｄ［Ｎ］に複写される。事実上、これは、当該ノードの入力に接続されたワードの一つであって、現在そのノードにおいて成長しているパスの累積距離よりも小さい累積距離を有する有効パスが存在するかどうかの判断である。
【０１３１】
バックグラウンドのノイズフレームにマッチするギャップが、フレーズ内の各ワードの手前、間及び終わりに存在し得るので、有効パスはそのノード内を伝わることができる。図２９の矢印２３１が示すように、有効パスが、入力されたフレームから次の入力フレームまでの間１つのノードに残ることもできる。この場合、有効パスはノードＮを出発してノードＮに戻る。ワードモデルのステートと異なり、パスは、連続して入力されたフレームのいくつ分でも、ノード内に残ることが可能である。システムがステップＳ１６５の処理を行った後、ノードＮに記憶された累積距離がすでに記憶されている値より小さい場合、ノードＮに記憶された累積距離は、ステップＳ１６８で、一時的記憶INSCOREに複写される。この一時的記憶INSCOREは、ワード「an」、「the」のためのボックス２３３、２３５で示される。２つ以上のワードがノードの出力に接続されるので、比較処理が行われなければならない。接続ワードに伝わるのは最小累積距離を有するパスだけだからである。図２１に示されるステップＳ５７の処理において、ワードの一時的記憶INSCOREに記憶された累積距離を用いて当該ワードのエントリステートが更新される。
【０１３２】
ステップＳ１６９で、システムは、Ｄ［ｖ］がHUGEに等しいかどうかをチェックする。等しい場合、終了する有効パスが無いかまたは、ノードｖを通過して次のフレームｆk+1に接続されたワードに入っている有効パスが無いことを示す。 Ｄ［ｖ］が値HUGEを下回る場合、有効パスが、ノードｖで終わっているかまたは、ノードｖを通過して、次のフレームｆk+1でノードｖに接続されているワードに入っていることを示す。したがって、次のフレームｆk+1における潜在的にアクティブなステート（およびノード）の数を表すカウンタPACOUNTは、そのノードに関連する沈黙ステートが次のフレームｆk+1でアクティブステートとなり得るので、ステップＳ１７１でインクリメントされる。ノードポインタｖは、ステップＳ１７３でインクリメントされ、言語モデル２１の次のノードを示すようになる。システムは、ステップＳ１７５で、ノードポインタｖが言語モデル２１のエンドノードＮnを越えるノードを示すかどうかをチェックすることによって、言語モデル２１のすべてのノードが処理されているかどうかをチェックする。システムがすべてのノード処理を完了していない場合、処理はステップＳ１５５に戻る。一方、処理を完了している場合、処理は図２１に示されるステップＳ５３に戻る。
【０１３３】
次に、図２１に示されるステップＳ５７で行われる処理を、図２２に示されるワードモデル２０１、図３０および図３１を参照して、詳細に説明する。図３０において、ステップＳ１８１でシステムは、INSCOREに記憶された累積距離がHUGEと等しいかどうかをチェックする。等しい場合、次の時点でこのワードに入る有効パスがないことを示す。したがって、このワードを再処理する必要がないので、処理はステップＳ２０７に進み、ここで次の入力フレームｆk+1のアクティブステートの数（図２４のステップＳ８３の処理によって現アクティブリスト２０３に現在記憶されているステートの数となる）が、カウントPACOUNTに加算される。その後、処理は、図２１に示されるステップＳ５９に戻り、ここでワードカウントがインクリメントされ、次のワードモデルが処理される。
【０１３４】
他方、INSCOREがHUGEと等しくない場合は、有効パスが先のワードを出て、処理すべき現ワードに入っていることを示す。したがって、別のワードモデル（エントリステート）から延びてきたパスによって到達され得る現ワードモデルのステートは、INSCOREに記憶された累積距離を用いて更新されなければならない。上記ＤＰ制限を用いる本実施形態において、エントリステートは、ステートＳ0、Ｓ1、Ｓ2である。この更新手順は、以下の方法で行われる。まず、ステップＳ１８３で、システムは、処理される現ワードを示すワードモデルが（出口ステートは含まない）３つより多いステートを含むことをチェックする。３つより多いステートがある場合、ステップＳ１８５でステートＳ２を示すようにステータスポインタｊが設定される。他方、現ワードのステートが３つより少ない場合、ステップＳ１８７でステータスポインタｊが、当該処理ワードの終わりの出口ステートＳDを示すべく設定される。このように、ステップＳ１８７またはＳ１８５でステートＳD、Ｓ2のいずれかに向かうようにステータスポインタｊが設定されると、処理はステップＳ１８９に進み、ポインタｊによって示されたステートと最終アクティブポインタＬＡによって示されるステートとが比較される。
【０１３５】
図２７ａおよび２７ｂにおいてステップのシーケンスで行われた処理のように、ポインタｊによって示されるステートが、アクティブポインタＬＡによって示されるステートを越える場合、そのステートに既に記憶された累積距離とINSCOREに記憶された累積距離が比較される。
【０１３６】
図２３に示されるＤＰパスの例として、パスｐ７は、次のフレームｆk+1でステートＳ1、Ｓ2、Ｓ3に伝わり得るが、ステートＳ0には伝わらない。パスｐ７が先の２つのフレームにおいてステートＳ0で終わっているからである。したがって、最終アクティブポインタＬＡは、ステートＳ1を示すようになる（ステップＳ１２１、１２３）。
【０１３７】
図３１は、図２２に示されるワードモデル２０１のエントリステート（すなわち、最初の３つのステート）を示す。図示されるように、アクティブポインタＬＡは、ステートＳ1に向かう。ワードモデル２０１に３つよりも多くのステートがあるので、ステータスポインタｊは、ステートＳ2を示す。ステップＳ１８９で、システムは、ポインタｊによって示されたステートが、最終アクティブポインタＬＡによって示されたステート、すなわちステートＳ1を過ぎているかどうかを判断する。したがって、ここでは、処理はステップＳ１９１に進む。ステップＳ１９１で、システムは、ステートＳ2に記憶された累積距離と、ワードモデル２０１に関連する一時的記憶INSCOREに記憶された累積距離とを比較する。ワードモデル２０１の一時的記憶INSCOREは、図３１に示される矩形のボックス２４１で示される。INSCOREに記憶された累積距離がステートＳ2に記憶された累積距離より小さい場合、ステップＳ１９３でINSCOREに記憶された累積距離がステートＳ2に複写される。そして、ステップＳ１９５で、ステートＳ2の自己反復カウンタが０に再設定され、処理はステップＳ１９７に進む。一方、INSCOREに記憶された累積距離がステートＳ2に記憶された累積距離より大きい場合、ステートＳ2に記憶された累積距離は変化せず、処理はステップＳ１９７に進む。ステップＳ１９７において、ポインタｊはデクリメントされ、ステートＳ1を示すようになる。処理はステップＳ１８９に戻り、同様の処理が、ステートＳ1について行われる。
【０１３８】
ステートＳ1について処理した後、ポインタｊは、ステップＳ１９７で再びデクリメントされ、ステートＳ0を示すようになる。したがって、処理はステップＳ１８９からステップＳ１９８に進み、ここでシステムは、処理すべきステートがあるかどうかをチェックする。本例の場合、ステートＳ0がまだ処理されるべきであるので、処理はステップＳ１９９に進む。ステップＳ１９９において、INSCOREに記憶された累積距離が、ステートＳ0に複写される。このステートは、最終アクティブポインタＬＡによって示される最後のアクティブステートの手前なので、ステートＳ0について累積距離の比較は行われない。ステップＳ２０１で、システムは、ステートＳ0を現アクティブリスト（このリストは、図２４のステップＳ８３の処理の前では新アクティブリスト２０５だったものである）に追加する。そして、ステップＳ２０３で、ポインタｊはデクリメントされ、ステートＳー1を示すようになる。その後、処理はステップＳ１９８に戻り、ここでシステムは、処理されるべき現ワードにエントリステートがこれ以上ないと判断する。従って処理はステップＳ２０５に進み、ここで対応する一時的記憶INSCOREに記憶された累積距離が、HUGEに再設定される。そして、ステップＳ２０７で、現アクティブリストのステートの数が、カウントPACOUNTに追加され、処理は、図２１に示されるステップＳ５９に戻る。
【０１３９】
＜刈り込み（Pruning）＞
図２１によれば、ステップＳ６３で、処理されるべき入力フレームが更に存在するとシステムが判断した場合、処理はステップＳ６５に進み、ここで刈り込みしきい値Ｔｈが調整される。刈り込みを用いる目的は、ある時点からつぎの時点まで伝わるＤＰパスの数を制限することである。特に、本実施形態では、刈り込みしきい値を調整し、実際に処理されるアクティブステートの数を前もって決められた範囲に制限できるようにすることを狙う。なお、この限られた範囲は、利用できる動作メモリの量および処理時間によって左右される。さらに、本実施形態の目的は、高価なコンピュータ処理のオーバーヘッドを必要とせずに、以上の目的を達成させることである。本実施形態において、刈り込みしきい値は、可変差分値（PRUNING）を処理された入力フレームのために決定されたすべての最小累積スコアMINSCOREに追加することによって、決定される。すなわち、刈り込みしきい値は、等式（１０）によって、求められる。
【０１４０】
【数１０】
0003847879.tif 000012
【０１４１】
アクティブステートの設定数のみが各入力フレームのために処理されることを確実にする方法の１つは、そこに記憶された累積距離を増加させるために、処理されつつある入力フレームに対するすべてのアクティブリストにあるアクティブステートをソートし、最小累積距離を有する入力フレームで始まる所望の数を処理する。しかしながら、この技術は、アクティブステートをソートするために長時間のコンピュータ処理時間を要する。コストのかかるコンピュータ処理によるソートを行うのではなく、本実施形態で用いられる技術は、最後の入力フレームを処理した後に利用できる情報を用いる。特に、本実施形態において、差分値（PRUNING）は、処理されるべき次の入力フレームの潜在的なアクティブステートの数（PACOUNTに格納されている）に依存して変化し、実際に処理されるステートの数を２つのしきい値の間にあるように維持する。刈り込みしきい値Ｔｈが調整される方法を、図３２を参照して詳細に説明する。
【０１４２】
ステップＳ２１１において、システムは、処理される次のフレームの潜在的アクティブステートの数（PACOUNTに記憶される）とステートしきい値（STATETH）を比較する。ここで、ステートしきい値（STATETH）は、利用できる動作メモリの量によって決定される絶対的最大ステートしきい値を下回るが、その値の付近に設定される。PACOUNTに記憶された値がSTATETHを下回る場合、すべての潜在的なアクティブステートが処理され得ることを意味するので、直前の時点で用いられた差分値PRUNINGは増加される。したがって、ステップＳ２１３で、調整定数ｄｐ１が既存の差分値PRUNINGに追加される。ｄｐ１の値は、妥当な局部距離を上回るように設定されるので、すべてではないがほとんどの潜在的アクティブステートが処理される。
【０１４３】
PRUNINGに記憶された値は、ステップＳ２１５で、高い刈り込みしきい値HIGHPRTHと比較される。上限が差分値PRUNINGに設定されているので、これ以上進む必要のない最大差分値が存在する。 PRUNINGに記憶された値がHIGHPRTHを下回る場合、処理はステップＳ２１９に進む。 一方、PRUNINGに記憶された値がHIGHPRTHを上回る場合、PRUNINGは、ステップＳ２１７で、HIGHPRTHに設定される。ステップＳ２１５またはＳ２１７の処理の後、システムは、差分値PRUNINGを追加された他の有効パスの最小累積距離MINSCOREとPRUNINGとの和に等しくなるように刈り込みしきい値Ｔｈが設定される。そして、処理は、図２１に示されるステップＳ４３に戻る。
【０１４４】
ステップＳ２１１で、次のフレームの潜在的アクティブステートの数（PACOUNT）がSTATETHを上回るとシステムが判断した場合、ステップＳ２２１で、システムは、直前の入力フレームの処理においてアクティブステートとして処理されたステートの数（ACOUNTに記憶されている）と、低ステートしきい値LOWSTTHとを比較する。このLOWSTTHの値は、ACOUNTがLOWSTTHを下回った場合には、多くの時間またはメモリ量を費やさずに次の入力フレームのすべての潜在的なアクティブステートを処理できることを保証できるような値に設定される。したがって、ACOUNTがLOWSTTHを下回る場合、処理はステップＳ２２１からステップＳ２１３に進み、上述したような処理によって差分値PRUNINGが調整される。他方、ACOUNTがLOWSTTHを上回る場合、すべての潜在的アクティブステートが処理された場合に、それほどの処理時間またはメモリ量を費やさずに済むという保証は無い。したがって、差分値PRUNINGを低減する必要があるかもしれない。
【０１４５】
差分値PRUNINGを低減させる必要があるかどうかを判断するため、システムは、ステップＳ２２３で、ACOUNTとSTATETHを比較する。ACOUNTがSTATETHを下回る場合、システムは、差分値PRUNINGがHIGHPRTHと等しいかどうかをチェックする。差分値PRUNINGがHIGHPRTHと等しい場合、システムはすべてのアクティブステートを処理するように試みてきたことを示す。したがって、次の入力フレームのために処理されるアクティブステートの数によって、長時間の処理時間または大容量メモリを要する処理になってしまうようなことはまず起こらないとみてよい。したがって、差分値PRUNINGを変化させずにステップＳ２１９に処理を進め、ここで刈り込みしきい値は、MINSCOREに差分値PRUNINGを加算したものと等しくなるように設定される。他方、差分値PRUNINGがHIGHPRTHと等しくない場合（この場合、差分値PRUNINGがHIGHPRTH を下回ることになる）、次の入力フレームのために処理されるアクティブステートの数は、長時間の処理時間または大容量のメモリを費やす可能性がある。したがって、処理されるアクティブステートの実際の数が計算されなければならない。この計算は、変更させていない差分値PRUNINGを用いてステップＳ２３１で設定された刈り込みしきい値を用いてステップＳ２３３で行われる。
【０１４６】
ステップＳ２２３に戻って、ACOUNTがSTATETHを上回るとシステムが判断した場合、ステップＳ２２５で、差分値PRUNINGは、調整定数ｄｐ１によって低減される。ステップＳ２２５で差分値PRUNINGが減らされた後、システムはステップＳ２２７において、差分値PRUNINGが低刈り込みしきい値LOWPRTHを下回るかどうかを判断する。低刈り込みしきい値は、次の入力フレームについて処理されるアクティブステートの数が設定された非常しきい値EMGSTTHを上回ることを保証するのに用いる。この処理を行う理由は、大量に刈り込まれた場合、ダイナミックプログラミングプロセスが行えないからである。差分値PRUNINGが低刈り込みしきい値LOWPRTHを下回る場合、ステップＳ２２９で差分値PRUNINGをLOWPRTHに等しくする。ステップＳ２３１では、調整された差分値PRUNINGをMINSCOREに加算したもの等しくなるように刈り込みしきい値Ｔｈが設定される。次にステップＳ２３３で、システムは、次の入力フレームのために処理されるアクティブステートの数をカウントする。この処理は、すべてのアクティブステートに記憶された累積距離と、新たに決定された刈り込みしきい値Ｔｈを有するすべてのノードに記憶された累積距離とを比較することによって行われる。
【０１４７】
総数（ｎsa）は、次の入力フレームに関して処理されるアクティブステートとノードの総数を示す。総数ｎsaが非常しきい値EMGSTTHを下回る場合、刈り込みしきい値の設定が低すぎることを意味する。従って、処理はステップＳ２１３に進み、ここで差分値PRUNINGが増加され、刈り込みしきい値Ｔｈが再設定される。一方、ｎsaが非常しきい値EMGSTTHを下回らない場合、ステップＳ２３７で、ｎsaはLOWSTTHと比較される。 ｎsaがLOWSTTHを上回る場合、ステップＳ２３１で設定された刈り込みしきい値Ｔｈは受け入れ可能であり、処理は、図２１に示されるステップＳ４３に戻る。他方、ｎsaがLOWSTTHを下回る場合、刈り込みしきい値は増加させることができる。よって、ステップＳ２１９で刈り込みしきい値Ｔｈが再設定される前に、ステップＳ２３９で、第２の調整定数ｄｐ２を差分値PRUNINGに加算する。本実施形態において、この第２の調整定数ｄｐ２は、調整定数ｄｐ１の半分に設定される。
【０１４８】
当業者には明らかなように、刈り込みしきい値を変化させる方法はコンピュータ処理に高価なコストを費やさせない。さらに、各時点で処理されるアクティブステートの数を制限するという方法を用いて刈り込みしきい値が調整される。このため、割り当てられる処理時間およびメモリが限界を越えないように調整することができる。
【０１４９】
図２１に示される処理ステップのシーケンスを用いて入力シーケンスのすべてのフレームが処理された後、ダイナミックプログラミングプロセスによって決定された最適パスにより正しいパスを決定するためにバックトラッキングルーチンが要求される。本実施形態において、バックトラッキングルーチンは、各パスが伝わるワードのシーケンスを示すバックポインタを追跡する。このようなバックトラッキングルーチン（再帰ルーチン）が行われる方法、およびポインタを発生させる方法の詳細については、音声処理の当業者によく知られているので、これ以上説明はしない。
【０１５０】
＜初期化＞
システムに入力発声音を認識させる前に、認識処理中に用いられるシステムのしきい値および変数を初期化しなければならない。この処理は、以下の方法で行われる。まず、スタートノードＮ0に記憶される累積距離は０に設定され、他のノードに記憶される累積距離は、大きな値を示すHUGEに等しくなるように設定される。各ワードモデルに関連付けられ、潜在的なアクティブステートの数をカウントするカウンタPACOUNTは０に設定される。各ワードモデルに関連付けられた最終アクティブポインタＬＡは、それぞれのモデルのエンドステートＳDを示すように設定される。各ワードモデルに関連付けられた一時的記憶INSCOREは、大きい値を示すHUGEに設定される。その後、すべてのノードが処理され、各ワードの入力に接続されるすべてのノードの累積距離の最小値は、各ワードに関連付けられた一時的記憶INSCOREに複写される。これは、スタートノードＮ0に接続された各ワードの一時的記憶INSCOREが０に設定されることを保証する。最後に、各ワードのINSCOREに記憶された値を用いて、各ワードモデルのエントリステートを作動させ、初期化する。各ワードモデルのエントリステートを初期化する処理ステップは、図３０を参照して上述したエントリステートを更新するために用いられる処理ステップと同一である。刈り込みしきい値および差分値PRUNINGもまた、第１の入力フレームを処理する前に、初期化される。特に、刈り込みしきい値Ｔｈは大きい値を示すHUGEに設定され、差分値PRUNINGは、高刈り込みしきい値HIGHPRTHと等しくなるように設定される。
【０１５１】
＜フレキシブルダイナミックプログラミングアラインメント＞
上記において、本実施形態におけるワードモデルの生成方法について、図１３から図１６を参照して詳細に説明を行った。特に、先ずはじめに、フレーズに含まれるワードについて分離ワードモデルが、フレキシブルダイナミックプログラミングアラインメントを用いて生成される。すなわち、フレキシブルダイナミックプログラミングアラインメントを用いて、そのフレーズに対応するパラメータフレームのシーケンスを、分離して発声された当該フレーズに含まれるワードに対応するパラメータフレームに関連付けることで分離ワードモデルが生成される。以下、このフレキシブルアラインメントプロセスについて詳細に説明する。なお、ここでは、学習フレーズ「get an image」が与えられ、かつ、そのフレーズに存在するワードに対するワードモデルが無い場合を例に揚げて説明する。
【０１５２】
図３３は、「get an image」というフレーズの発声音声に対応するパラメータフレームシーケンス１５２と、「get」、「an」及び「image」の各分離ワードの発声音声に対応するパラメータフレームシーケンス１５８、１６０及び１６２を示す。パラメータフレームシーケンス１５２におけるパラメータフレームの幾つかはバックグラウンドノイズもしくは沈黙に対応するので、フレーズに含まれる各分離ワードの間、先頭の分離ワードの開始部分、最終の分離ワードの後部分にノード２５１、２５３、２５５、２５７が提供される。これらのノードは図１７ａで示された言語モデル中のノードに類似の態様で動作し、処理中であるパラメータフレーム１５２の現パラメータフレームが沈黙もしくはバックグラウンドノイズに対応したものであるという状況に対応可能である。この可能性は、図３３において、ノード２５１，２５３、２５５及び２５７における沈黙フレームｆsil（これは図１０において示されたノイズモデル２３である）によって示されている。
【０１５３】
パラメータフレームシーケンス１５８、１６０、１６２のそれぞれの開始部分もしくは終了部分におけるフレームのいくつかは沈黙或いはバックグラウンドノイズに対応するものであるかもしれないが、パラメータフレームシーケンス１５２内の沈黙或いはバックグラウンドノイズに対応するパラメータフレームは、シーケンス１５８、１６０及び１６２内の沈黙に対応するフレームよりも、ノード２５１，２５２、２５５及び２５７に格納された沈黙フレームｆsilによりよくマッチする。これは、沈黙フレームｆsilが全沈黙フレームの平均を示すものであり、シーケンス１５２内の沈黙に対応するフレームと沈黙フレームｆsilとの間の変動量が、シーケンス１５２内の沈黙に対応するフレームと各シーケンス１５８、１６０及び１６２内の沈黙に対応するフレームとの間の変動量よりも小さいからである。
【０１５４】
フレキシブルアラインメントプロセスが実行される方法は、図１８〜３２を参照して説明したような、入力音声が、格納されている標準モデルに関連付けられる方法に類似している。特に、パラメータフレーム１５８、１６０及び１６２を標準モデルとして、ノード２５１，２５３、２５５、２５７、そしてシーケンスフレーム１５２を入力されたフレームとして用いる場合、フレキシブルアラインメントプロセスの全体的な処理ステップは図２１に示されたフローチャートに従う。混乱を避けるために、分離的に発声されたワードを表すパラメータフレームシーケンス１５８、１６０、１６２は、ステートと称する。未知の入力音声を認識するために用いられた標準モデルのステートと同様に、これらのステートも関連する累積距離格納部を有する。この累積距離格納部は、処理中のシーケンス１５２の現フレームに関して、当該ステートまでのダイナミックプログラミングパスの累積距離を格納する。
【０１５５】
フレキシブルアラインメントプロセスと未知の入力発声音声を認識するために用いられたアラインメントプロセスとの主要な相違は次の通りである。すなわち、フレキシブルアラインメントにおいては、
（ｉ）各ダイナミックプログラミングパスがあらゆる位置で（エントリステートの一つに限らず）ワードに入ることができる、
（ii）各ダイナミックプログラミングパスはそこに存在するあらゆるステートから出ることができる。
【０１５６】
フレキシブルアラインメントプロセスの動作を上記例を用いて以下に説明する。なお、以下の説明は、シーケンスパラメータフレーム１５２のはじめの少しのパラメータフレームについて行う。
【０１５７】
まず、第１のフレームを処理する前に、ノード及びワードモデル内のステートの累積距離スコアを初期化する。この初期化処理手順は、上述の、未知入力音声を認識するのに先立って実行される初期化処理に類似している。特に、スタートノード、すなわちノード２５１に格納される累積距離はゼロに設定され、他の全てのノードに格納される累積距離は大きな値を示すHUGEに設定される。その後、ワードＷ１、Ｗ２及びＷ３におけるステートの累積距離スコアは、それらのワードの入力に接続されたノードに格納された累積距離スコアを用いて更新される。これは、フレームｆ0P1が処理されているときに、ダイナミックプログラミングパスが第１のワードＷ１及び第１のノード２５１の各ステートからスタートできることを保証する。
【０１５８】
初期化の後、第１フレームｆ0P1が、ワードＷ１、Ｗ２及びＷ３に関して順次処理される。しかしながら、ワードＷ２及びＷ３内のステートに関連した累積距離は値HUGEを有するので、第１ワードＷ１内のステートに関してのみ、第１フレームが処理されることになる。ワードＷ１に関して第１フレームを処理する際、フレームｆ0P1とワードＷ１内の各ステートとの間の距離は各ステートに対応付けられた累積距離格納部に格納される。フレキシブルアラインメントプロセスは図２８に示された処理ステップを用いて、ノード２５１，２５３、２５５及び２５７を順次処理する。最後に、ノード処理の結果を用いてワードＷ１、Ｗ２及びＷ３内のステートの累積距離スコアを更新することにより、第１フレームｆ0P1の処理が完了する。この更新処理は、エントリステート（すなわち、最初の３つのステート）だけでなくワード内の全てのステートが更新されるということを除けば、図３０に示される処理と同様である。
【０１５９】
シーケンス１５２の第１のパラメータフレームが処理されると、第１のパラメータフレームｆ0P1の処理によってスタートされたダイナミックプログラミングパスを成長させるために第２のパラメータフレームｆ1P1が処理される。入力された発声音声の認識に用いられたダイナミックプログラミング手法で行ったように、各ワードＷ１、Ｗ２及びＷ３のステートは逆方向の順序で処理される。ここで、本実施形態において、図１９及び図２０を参照して記述された伝搬の制限に類似した制限が用いられる。相違点は、未知の入力音声を認識する場合では最後の３つのステートからのみ現ワードを抜けることが許されたが、あらゆるステートから現ワードを抜けることができるという点のみである。ワードＷ１、Ｗ２及びＷ３が第２のパラメータフレームｆ1P1を用いて処理されると、各ノード内で現在伝わっているダイナミックプログラミングパスを更新するために、ノード２５１，２５３、２５５及び２５７が処理される。この処理がなされると、ノード処理の結果を考慮するため、ダイナミックプログラミングパスを更新するために、ワードＷ１、Ｗ２及びＷ３が再び処理される。
【０１６０】
パラメータフレームシーケンス１５２の残りのパラメータフレームも、同様の方法で順次処理される。シーケンス１５２内の全てのパラメータフレームが処理されると、最も低い累積スコアを有するダイナミックプログラミングパスが決定される。パラメータフレームシーケンス１５８、１６０及び１６２内の開始及び終了フレームを特定するために、フレキシブルアラインメントプロセスの間の各ダイナミックプログラミングパスの成長が記録される。ここで、これら開始及び終了フレームは、対応するワードを表す（沈黙は表さない）それらパラメータフレームの境界を示す。
【０１６１】
特に、ダイナミックプログラミングパスが手前のワードから、あるいはワードの手前からワードへ入ったときはいつも、そのダイナミックプログラミングパスが入ったステートが記録され、そのパスに関連付けられる。同様に、ダイナミックプログラミングパスがワードから出て、それが出たステートが記録されたとき、そのパスに関連するスコアはそのワードから出た全ての前のダイナミックプログラミングパスに関連するスコアよりも低い。従って、パラメータフレームシーケンス１５２内の最後のパラメータフレームが処理され、最良のスコアを有するダイナミックプログラミングパスが特定されると、パラメータフレームシーケンス１５８、１６０、１６２内のワードのおおよその開始及び終了位置が、ダイナミックプログラミングパスに関連する記録を参照することにより、特定される。
【０１６２】
当業者には明らかなように、フレキシブルアラインメントプロセスに関する上記記載は、入力フレーズ中に含まれる各ワードについてワードモデルが存在しないという状況に特化されたものである。しかしながら、標準モデルの学習は自然に増加するように、すなわちユーザが適宜システムに学習させることができるように設計されているので、入力フレーズ中のワードに対するワードモデルが既に存在するという状況が発生し得る。この場合、フレーズとこのワードとの間のアラインメントの最中において、既にワードモデルを有するワードに対しては通常のダイナミックプログラミングプロセスを適用し、まだワードモデルの存在しない他のワードに対してはフレキシブルダイナミックプログラミングアラインメントを適用するという、混合型のダイナミックプログラミングアラインメントプロセスが採用される。
【０１６３】
図１４のステップＳ２５、Ｓ２６を参照して説明したように、フレーズ内の未知のワードに対して分離ワードモデルが決定されると、それらはワードを含む入力フレーズのパラメータフレームシーケンスに関連付けられ、ワードモデルがその結果から生成される。
【０１６４】
＜ワードモデルの適用＞
本実施形態による音声認識システムの他の特徴は、図１０のワードモデル１９、ノイズモデル２３および言語モデル２１が構築／更新モジュール９１によって更新され、修正されることである。したがって、記憶されたワードモデル１９は、別のユーザの入力音声によって、修正されたり適応させられたりする。
【０１６５】
図３４は、ワードモデル１９が別のユーザに適用される方法を示すフローチャートである。ステップＳ２５１で、新しいユーザは、既知のワードまたはフレーズをマイクロフォン７またはキーボード３を介してシステムに入力する。したがって、構築／更新モジュール９１は、新しいユーザから入力された発声音に対応するパラメータフレームのシーケンスと、キーボード３を介して入力された対応するテキストとを有することになる。ステップＳ２５３で、システムは、入力発声音と、当該発声音に存在することが認知されているワードの既存のワードモデルとを、ダイナミックプログラミングルーチンを用いて関連付ける。すなわち、ダイナミックプログラミングルーチンは入力発声音のパラメータフレームと適切なワードモデルとを関連付ける。ステップＳ２５５で、システムは、ワードモデルのステートをそのワードモデルに関連付けられたパラメータフレームのシーケンスで直接に置き換える。ステップＳ２５７で、新しいユーザが他のフレーズを入力することを決定した場合、処理はステップＳ２５１に戻り、同様のルーチンが次の入力発声音のために再度行われる。ステップＳ２５７で、新しいユーザがこれ以上フレーズを用いないと決定した場合、当該処理は完了する。
【０１６６】
図３５は、ワードモデル１９が別のユーザのために用いられる第２の方法を示すフローチャートである。ステップＳ２６１で、新しいユーザは、マイクロフォンを介して複数回およびキーボードを介して１回、既知のワードまたはフレーズをシステムに入力する。したがって、構築／更新モジュール９１は、パラメータフレームの複数のシーケンスおよびキーボード３を介して入力された対応テキストを有するようになる。ここで、これら複数のシーケンスは、新しいユーザによって発声された既知のワードまたはフレーズに対応する。ステップＳ２６３で、システムは、各入力発声音と、当該発声音に含まれることが既知であるワードに対応する既存のワードモデルとを、ダイナミックプログラミングルーチンを用いて関連付ける。
【０１６７】
ダイナミックプログラミングルーチンは、各入力発声音のパラメータフレームと、適正なワードモデルのステートとを関連付ける。ステップＳ２６５で、システムは、ワードモデルのステートをワードモデルに関連付けられたパラメータフレームの平均で置き換える。本実施形態において、ワードモデルのステートが発声音のパラメータフレームのいずれにも関連付けられなかった場合、システムは、置き換えられた隣接ステートを用いて補間または外挿する。ステップＳ２６７で、新しいユーザが他のフレーズを用いることを決定する場合、処理はステップＳ２６１に戻り、同様のルーチンが次のフレーズに対して再度行われる。ステップＳ２６７で、新しいユーザがこれ以上フレーズを入力しないことを決定すると、処理は完了する。したがって、当業者に明らかなように、新しいユーザは、ユーザの便宜上、既存のワードモデルを増加させながら用いることができる。さらに、新しいユーザは、新しいワードまたはフレーズを上述した方法でシステムに追加することもできる。
【０１６８】
＜他の実施形態＞
多数の変形が、本発明の進歩性の概念から逸脱することなく、上記音声認識システムになされ得る。これら種々の変形例のいくつかを以下に説明する。
【０１６９】
上記実施形態においては、すべての発声音が処理される前に受信されるが、本システムは、音声を受信しながら処理するというように、ワードモデルを漸進的に動作させることができる。このような実施形態において、入力バッファが必要であるが、１つのフレームに相当する入力音声、すなわち、２０ｍｓｅｃの音声を記憶しさえすればよい。当業者には明らかなように、本システムを動作させるため、入力された音声の１つのフレームに対する処理のすべて（プリプロセッサおよび認識ブロックで行なわれる）は、入力音声のその次のフレームについて、処理のための準備が整う前に完了していなければならない。上記フレーム速度およびフレーム継続時間を用いれば、入力音声のフレームを処理するために費やされる時間は１０ｍｓｅｃを下回るにちがいない。これは現在のプロセッサで達成し得るものである。さらに、入力発声音の各フレームのパワーパラメータは、異なる方法で正規化されなければならない。このような実施形態におけるパワーの正規化の方法の１つとしては、例えば過去の２０個にわたる入力音声のパワーに基づいて適応される適応正規化係数を用いることが揚げられる。
【０１７０】
また、第１の実施形態において、ダイナミックプログラミングパスの終わりにあったワードモデルのステートは、そのワードモデルに対応するアクティブリストに登録されていた。他の実施形態においては、総括アクティブリストを１つ備え、そこに、すべてのワードモデルのすべてのアクティブステートを登録する。このような他の実施形態においては、総括アクティブリストに関連して、特定のアクティブステートがどのワードモデルに属するかの情報が記憶されなければならない。
【０１７１】
第１の実施形態において、ワードモデルのステートは、持続時間において、認識されるべき入力音声のフレームと対応する。他の実施形態において、ワードモデルの各ステートは、持続時間に関して、例えば入力音声の３つの連続フレームと等しい。このような他の実施形態において、入力フレームは、３つのフレームグループによって平均化され、ワードモデルのステートに関連付けられる。
【０１７２】
さらに、他の実施形態は、ワードモデルに統計モデル、例えば隠れマルコフモデルを採用するものであり、これは音声認識の当業者に知られている。このような実施形態においては、入力発声音とワードモデルのシーケンスとの間の最小累積距離を決定するのではなく、隠れマルコフモデルの特定のシーケンスによって入力シーケンスが生成された最大の可能性が決定される。このような実施形態において、隠れマルコフモデルは、第１の実施形態で発生された連続標準モデルと同様の方法で発生される。特に、ワードの分離標準モデルは、ワードの発声音とそのワードを含むフレーズの１つ以上の発声音とを比較することによって、生成される。平均パラメータフレームおよび隠れマルコフモデルのステートの共分散マトリクスを生成し、ステートの遷移確率を生成するために、分離標準モデルはワードを含む複数のフレーズ例とともに用いられる。この処理が行われる方法は、音声認識の当業者には明らかである。
【０１７３】
第１の実施形態において用いられる標準モデルは、すべてのワードに対応する。当業者に明らかなように、このことは本質的なことではない。標準モデルは、ワードの部分、例えば、音節、複数のワード、個々の音素にさえ相当する。しかしながら、音素に相当する標準モデルを用いると、システムが言語に依存するようになり、不利である。すべてのワードに対応する標準モデルは、すべてのフレーズに対応する標準モデルより好ましい。なぜなら、時間およびコンピュータ処理の手間を節約することができるからである。特に、フレーズ内のワードをモデルにし、言語モデルを用いることによって、システムに少量のワードしか用いない多くの異なるフレーズを教えられる。他方、標準モデルがすべてのフレーズに相当する場合、標準モデルは、システムによって学習されるべき種々のフレーズのそれぞれに必要となる。また、この利点に加えて、ワードに相当する標準モデルを用いると、フレーズのワード間の間隔に対するシステムの柔軟性が増す。これは、フレーズの始めまたは終わりおよびフレーズのワードの間に現れる環境モデルによって可能になる。
【０１７４】
さらに他の実施形態において、モデルの連続フレームが類似する場合、標準モデルは圧縮される。標準モデルが圧縮されると、類似の連続フレームは、１つのフレームに置き換えられる。このような実施形態において、入力発声音の連続フレームが２回までしかワードモデルの同じステートに関連付けられないというようなダイナミックプログラミングプロセスに対する制限は、除去されなければならない。
【０１７５】
図１７に示される言語モデルにおいて、あるワードに２つの異なるワードが続く場合、それら２つのワードの何れが当該ワードに続くかについて優先度はない。他の実施形態においては、いくつかのワードのシーケンスに他のシーケンスより優先度を高めるよう、重みを付けることができる。例えば、図１７ａに示されるフレーズについては、「make it more…」（ここで、「…」の部分には色名称が続く）というフレーズは、「make it smaller」または「makr it larger」または「make it brighter」というフレーズより一般的であることが知られているとする。従って、この場合は、ノードＮ７からノードＮ８までの遷移が、ノードＮ７からノードＮnまでの遷移よりも強くなるように設定される。これは、ノードＮ７から「more」、「smaller」、「larger」、「brighter」というワードへ伝わる累積距離に重み付けを行う重み係数を用いることによって達成される。
【０１７６】
当業者には明らかなように、許容されたワードのシーケンスを決めるために用いられる言語モデルは、バイグラム（二重字）モデルである必要はないが、いかなる知られたタイプの言語モデル、例えば定型文法モデルでもよい。用いられた言語モデルのタイプが変更される場合、上記のダイナミックプログラミングマッチングプロセスにはいくつかの変更が必要となるが、このような改造は、音声認識の当業者には明らかである。しかしながら、マッチングプロセスの重要な特徴部分は変化されないままとなる。どんなパターンの合致プロセスにも合うように設計されているからである。
【０１７７】
第１の実施形態において、あるワードの標準モデルを生成する前に、そのワードを含む少なくとも２つのフレーズが入力されなければならない。これは、操作上の好ましい方法であり、ワードモデルを、そのワードを含む１つのフレーズ例のみから各ワード毎に発生させることもできる。しかしながら、このような実施形態によって得られる標準モデルは、どのようなフレーズが与えられた場合でも、あまり典型的なものとはならない。さらに、第１の実施形態で用いられた学習方法において、１つのワードに対していったん標準モデルを決定すると、ワードモデルは、次の入力学習フレーズがそのワードを含むかどうかに関らず、変更されない。他の実施形態においては、すでにワードモデルがあるワード例を含む入力フレーズを用いて、学習セッション中に既存のワードモデルを更新することを可能とする。
【０１７８】
ユーザが音声認識システムを学習させて、既に分離して入力された複数のワードを含むフレーズを入力すると、システムは、それらのワードについて分離した状態で再度入力するようユーザに促すことはしない。これに対して、他の実施形態においては、システムは、ユーザにそのようなワードを再度入力するよう促し、ワードの２つの発声音が大して違わないことを確認するべくチェックを実行する。
【０１７９】
第１の実施形態において、標準モデルが学習されたりまたは用いられる場合、ユーザはテキストを入力し、それに相当する音声コマンド入力しなければならない。音声認識の当業者には分かるように、これは必須ではない。テキストを入力する代わりに、ユーザはキーボード、ファクシミリ、複写機等の相当するキーまたはキーの組み合わせを押すようにしてもよい。例えば、複写機で用いるためにシステムに学習させる場合において、音声コマンド「copy（複写）」と入力し、これに対する所望の機械の応答は、ユーザが複写ボタンを押しさえすれば、入力される。
【０１８０】
さらに、上記のダイナミックプログラミングマッチングプロセス、標準モデルの発生および適応プロセスを実行させる方法が、他のタイプのパターンマッチングのためにも用いられることは、パターンマッチングの当業者に明らかである。例えば、上記パターン合致プロセスは、手書き文字の認識または他のパターン合致技術で用いられることが考えられる。
【０１８１】
連続ワード音声認識システム（文音声認識システム）は、上記の第１の実施形態に記載されているが、記載されたシステムの多くの特徴が他の種類の音声認識システムにも等しく適用できることは当業者には明らかである。例えば、分離ワードモデルを決定する方法および上記分離ワードモデルは、分離ワード音声認識システム（単語音声認識システム）で用いられる。同様に、ダイナミックプログラミングプロセスが行われる方法の多くの特徴および刈り込みしきい値が調整される方法は、いずれの音声認識システムでも用いられ、ここで標準モデルは、音声のいかなる部分、例えば音素、音節等にも対応させ得る。
【０１８２】
第１の実施形態に記載された音声認識システムは、多くの異なるソフトウェアアプリケーション、例えばスプレッドシートパッケージ、グラフィックパッケージ、ワードプロセッサパッケージ等とともに用いることができる。音声認識システムがそのような複数のソフトウェアパッケージとともに用いられる場合、特に、各アプリケーションで用いられるフレーズが異なる場合、各パッケージ毎にワードおよび言語モデルを分けることが有利である。この理由は、ワードモデルの数が増加したり、言語モデルのサイズが大きくなるにつれて、システムが入力発声音を認識するための時間が長くなるからである。したがって、各アプリケーション毎にワードおよび言語モデルを分けることによって、音声認識システムの速度を維持できる。さらに、いくつかのワードおよび言語モデルは、各アプリケーションに用いられ得る。
【０１８３】
さらに、当業者に明らかなように、上記音声認識システムは、多くの異なるタイプのハードウェアでも用いられる。例えば、パーソナルコンピュータ等の機器で用いられるのは明らかであるが、それ以外に、音声認識システムは、ファクシミリ、電話、プリンタ、複写機等、人間と機械のインタフェースを有する各種機器のユーザインタフェースとして用いられ得る。
【０１８４】
また、本発明は上記実施形態によって限定されるものではなく、種々の変形および実施形態が当業者には明らかである。
【０１８５】
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【０１８６】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１８７】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１８８】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１８９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１９０】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１９１】
【発明の効果】
以上説明したように、本発明によれば、接続パターン中に現れる所望の分離パターンに対応した部分の信号的特徴が容易に抽出できるようになる。
【０１９２】
また、本発明によれば、抽出された上記信号的特徴を用いて、接続されたパターンの認識に適応し得る分離標準モデルを容易に構築できるようになる。特に、連続音声認識のための分離ワードモデルの生成が容易となるとともに、その更新及び追加も極めて容易に行える。
【０１９３】
【図面の簡単な説明】
【図１】  本発明の一実施形態を操作するためにプログラムされ得るコンピュータの概略図である。
【図２】音声認識システムの概略構成を示すブロック図である。
【図３】図２に示されたシステムの一部であるプリプロセッサの構成を示すとともに、入力音声信号に行われる処理ステップを示すブロック図である。
【図４】入力音声信号Ｓ（ｔ）を一連の時間フレーム（FRAME）に分割した状態を示す図である。
【図５】１つの時間フレームの典型的な音声信号例を示す線図である。
【図６】図５に示される音声信号の離散フーリエ変換の振幅応答を示す図でる。
【図７】メルスケールフィルタバンクの平均振幅応答出力を示す図である。
【図８】メルスケールフィルタバンクからの出力の対数振幅スペクトルを示す図である。
【図９】図８に示される対数振幅スペクトルのセプストラムを示す図である。
【図１０】学習処理中に用いられる標準モデル構築部の恒星を示すブロック図である。
【図１１】音声認識システムで用いるワードモデルを発生させるための学習処理中に行われる処理を示すフローチャートである。
【図１２】学習処理中に学習フレーズおよび学習ワードが記憶される一形態例を示す図である。
【図１３】複数の入力フレーズ及び入力ワードと、それらのフレーズ及びワードに対応するパラメータフレームシーケンスを示す図である。
【図１４】学習処理中に入力された入力発声音からワードモデルを決定するための処理を示すフローチャートである。
【図１５】端の部分が切り捨てられた学習ワード及びそれに対応するパラメータフレームシーケンスを示す図である。
【図１６】図１５に示されるワードのパラメータフレームと、そのワードが含まれる入力フレーズのパラメータフレームとの関連付けを示す図である。
【図１７Ａ  】複数の入力フレーズ例を学習処理している間に発生された言語モデル例を示す図である。
【図１７Ｂ  】システムが新しいフレーズを言語モデルに追加する方法を示すフローチャートである。
【図１８】ダイナミック処理技術を用いて入力ワードがワードモデルに関連付けられる際の処理を説明する図である。
【図１９】ある入力フレームから次の入力フレームのステートへの許可された移行シーケンスを示す図である。
【図２０】図１９に示される許容された状態移行シーケンスの他の例を示す図である。
【図２１】第１の実施形態で用いられるダイナミックプログラミングアラインメント技術の実行手順を示すフローチャートである。
【図２２】  ワードモデル、現アクティブリストおよびそれらに関連する新アクティブリストを示す概略図である。
【図２３】標準モデル内で伝わるダイナミックプログラミングパスの複数の例を示す図である。
【図２４】図２１のステップＳ４７に含まれる処理を示すフローチャートである。
【図２５】図２３で示された２つのダイナミックプログラミングパスが現入力フレームから次の入力フレームに伝わる方法を説明する図である。
【図２６Ａ  】図２２に示されるワードモデルの現アクティブリストの第１の状態が処理された後の新アクティブリストの内容を示す図である。
【図２６Ｂ  】図２２に示されるワードモデルの現アクティブリストの第２の状態が処理された後の新アクティブリストの内容を示す図である。
【図２７Ａ  】図２４のステップＳ７７で行われる処理を示すフローチャートである。
【図２７Ｂ  】図２４のステップＳ７７で行われる処理を示すフローチャートである。
【図２８】図２１のステップＳ５１で行われる処理を示すフローチャートである。
【図２９】図２８に示される処理中において、ノードＮに対して行われる処理を示す図である。
【図３０】図２１のステップＳ５７で行なわれる処理を示すフローチャートである。
【図３１】図２２に示されるワードモデルのエントリステートを示す図である。
【図３２】図２１のステップＳ６５で行われる処理を示すフローチャートである。
【図３３】入力フレーズのパラメータフレームシーケンスと、入力フレーズ内に含まれるワードの分離的発声によるパラメータフレームシーケンスとを示す図である。
【図３４】他の実施形態による第１の代替技術を用いて、ワードモデルを異なるユーザに適用するための処理を示すフローチャートである。
【図３５】他の実施形態による第２の代替技術を用いて、ワードモデルを異なるユーザに適用するための処理を示すフローチャートである。
【図１】
0003847879.tif 000013
【図２】
0003847879.tif 000014
【図３】
0003847879.tif 000015
【図４】
0003847879.tif 000016
【図５】
0003847879.tif 000017
【図６】
0003847879.tif 000018
【図７】
0003847879.tif 000019
【図８】
0003847879.tif 000020
【図９】
0003847879.tif 000021
【図１０】
0003847879.tif 000022
【図１１】
0003847879.tif 000023
【図１２】
0003847879.tif 000024
【図１３】
0003847879.tif 000025
【図１４】
0003847879.tif 000026
【図１５】
0003847879.tif 000027
【図１６】
0003847879.tif 000028
【図１７Ａ】
0003847879.tif 000029
【図１７Ｂ】
0003847879.tif 000030
【図１８】
0003847879.tif 000031
【図１９】
0003847879.tif 000032
【図２０】
0003847879.tif 000033
【図２１】
0003847879.tif 000034
【図２２】
0003847879.tif 000035
【図２３】
0003847879.tif 000036
【図２４】
0003847879.tif 000037
【図２５】
0003847879.tif 000038
【図２６Ａ】
0003847879.tif 000039
【図２６Ｂ】
0003847879.tif 000040
【図２７Ａ】
0003847879.tif 000041
【図２７Ｂ】
0003847879.tif 000042
【図２８】
0003847879.tif 000043
【図２９】
0003847879.tif 000044
【図３０】
0003847879.tif 000045
【図３１】
0003847879.tif 000046
【図３２】
0003847879.tif 000047
【図３３】
0003847879.tif 000048
【図３４】
0003847879.tif 000049
【図３５】
0003847879.tif 000050