(57)【特許請求の範囲】
【請求項１】
言語認識方法であって：
類似性の尺度を生成するために、未知の話声の一部分と基準モデルとを比較し、該未知の話声は以前の部分と前記一部分と別の部分からなり；
該未知の話声の別の部分を基準モデルと繰返し比較して、基準話声についての複数の許容できるシーケンスの各々に対して類似性の累積された尺度を生成し、ここで該基準話声についての許容できるシーケンスは、このシーケンスを定義している記憶されたデータによって定義されるものであり、また該生成された、類似性の累積された尺度が、前に生成された類似性の尺度からのそれぞれ寄与分を含むものであり、ここで言う前に生成された類似性の尺度は、それぞれの許容できるシーケンス内の以前の基準話声に対応している基準モデルと未知の話声のいくつかの以前の部分との比較からそれぞれ得られた尺度であるとし；
該累積された尺度に該許容できるシーケンスの各々に対する論理に基づいた確率を表わしている重み付け因子に従って重み付けをし；
この重み付けが、いくつかの許容できる基準話声のシーケンスの一部分についての尺度または累積された尺度の各計算を重み付けすることにより実行され、
この重み付けは、その一部分で始まる許容できる各シーケンスについての重み付け因子を組合せることによって得られる組み合わせた値を使用し、
ここで該組合せた値は、上記一部分が始まる話声もしくはそれより短いシーケンスについて生成された尺度に適用されるいずれかの重み付け因子により修正されることを特徴とする言語認識の方法。
【請求項２】
前記重み付けされ累積された尺度が、他の許容されるシーケンスに対する尺度よりも、プルーニング規準により定義された程度まで小さい類似性を示すシーケンスを、さらなる繰返し比較から排除するようにした請求項１記載の方法。
【請求項３】
前記プルーニング規準は、生成されかつ以後の繰返し比較から排除されなかった尺度の数に依存して、繰返し調節されて、その数が一定に保たれるようにする請求項２記載の方法。
【請求項４】
言語認識装置であり：
話声を表す基準モデルに関係するデータと、基準話声の許容できる複数のシーケンスを定義するデータとを記憶するための記憶手段と；
いくつかの先行する以前の部分と、いくつかの別の部分とを有する未知の話声の部分を基準モデルと繰返し比較して、類似性の累積された尺度を、基準話声の複数の許容できるシーケンスの各々に対して生成し、該生成された、類似性の累積された尺度は前に生成された類似性の尺度からのそれぞれの寄与分を含むものであって、ここでの前に生成された類似性の尺度は、それぞれの許容できるシーケンス内の以前の基準話声に対応している基準モデルと未知の話声のいくつかの以前の部分との比較からそれぞれ得られた尺度であるように生成するための比較手段と；
該累積された尺度に該許容できるシーケンスの各々に対する論理に基づいた確率を表わしている重み付け因子に従って重み付けするための重み付け手段とを備え、
この重み付け手段は、いくつかの許容できる基準話声のシーケンスの一部分についての尺度または累積された尺度に重み付けをするように動作可能であり、
この際の重み付けは、その一部分で始まる許容できる各シーケンスについての重み付け因子を組合せることによって得られる組み合わせた値を使用し、
ここで該組合せた値は、上記一部分が始まる話声もしくはそれより短いシーケンスについて生成された尺度に適用されるいずれかの重み付け因子により修正されることを特徴とする言語認識装置。
【請求項５】
重み付けされ累積された尺度が、他の許容されるシーケンスに対する尺度よりも、所定のプルーニング規準により定義された程度まで小さい類似性を示すシーケンスを、さらなる繰り返し比較から排除する手段をさらに含む請求項４記載の装置。
【請求項６】
プルーニング規準は、生成されかつ以後の繰返し比較から排除されなかった尺度の数に依存して、繰返し調節されて、その数が一定に保たれるようにする請求項５記載の装置。
【請求項７】
基準話声の複数の許容できるシーケンスを表す言語認識網の各ノードに重み付け因子を指定する方法であって：
基準話声の許容できるシーケンスの各々について重み付け因子を前もって決めることと、ただしここで各重み付け因子は、発生しているそれぞれの許容できるシーケンスについての論理に基づいた確率を表わしているものであり；
該網内の各ノードに対して、そのノードを取り込んでいるいくつかの許容できるシーケンスの一部分で始まる許容できるシーケンスの各々に対する重み付け因子の値を組み合わせることであって、該組み合わせた値は前記部分が始まる話声もしくはいくつかの許容できるシーケンスのより短い部分に適用される重み付け因子によって修正されるものと、を含む方法。
【請求項８】
許容できるシーケンスに対応する網の最終ノードに対して与えられた重み付け因子のログを指定し；
各先行するノードに対してログ確率値として後段のノードに指定されたそれらの値の最大値を指定し；
各ノードに対する値から先行するノードに指定された値を減ずることを含む請求項７記載の方法。
【請求項９】
前記認識網は木構造を有し、第１のノード以外の少なくとも１つのノードが２以上の枝をもっている請求項７または８に記載の方法。
【発明の詳細な説明】
本発明は、入力音声信号が最も明らかに似ている単語（または、より一般的には話声）の語彙の何れか１つを確認するために認識プロセスを実行し、単語の語彙と関係しているアプリオリ確率に関して情報が有効である言語認識器に関する。（訳者注：sppech recognitionは音声認識の訳語をあてることが多いが、ここではvoiceではなく話し言葉speechの訳に言語をあてる。）この状況の１例は、我々の共願の国際特許出願第WO95/02524号明細書に記載された自動電話番号案内システムである。このシステムでは、
（ｉ）ユーザは都市の名前を話し；
（ii）言語認識器は、記憶された都市のデータを参照することによって、話された都市の名前に最もよく整合する幾つかの都市を識別し、“得点（スコア）”または整合の一致度を示す確率を生成し；
（iii）リストは識別された都市に存在する全ての道路名からコンパイルされ；
（iv）ユーザは道路名を話し；
（ｖ）言語認識器はリストに含まれるものの中から幾つかの道路名を識別し、話された道路名に最もよく整合するものだけ得点を与え、
（vi）道路得点は、その道路が位置する都市が得た得点にしたがってそれぞれ重み付けをされ、最も可能性の高い“道路”が最も重み付けされた得点を有すると考えられる。
アプリオリ確率は、前の言語認識プロセスから始まる必要はない；例えば上記の特許出願に記載されている別の番号案内システムでは、呼の発生源を識別する信号を使用して、その領域から照会者が望んでいる可能性の最も高い都市に関する統計的情報にアクセスして、都市名認識プロセスの結果に重み付けをする。
このプロセスは、留保条件のために信頼度が高いという利点を有する。この留保条件とは、例えば、道路名認識段階で第１の選定都市の道路よりも第２の選定都市の道路の方が著しく得点が高くなければ、第２の選定都市からは道路を選定しないというものである。しかしながらこのプロセスの欠点は、道路名認識段階を実行するとき、認識器が道路名の制限された数だけしか生成しないので、この短い道路名リストでは、低得点の都市に位置する道路名しか含むことができない、すなわち高得点の都市内に位置する道路の低得点の道路名は、重み付けプロセスを適用する前に認識器によって既に“プルーニング”されていることである。
米国特許第47838303号明細書は、アプリオリ確率が先に認識された１又は複数のパターンの所定のコンテキストに関係している言語認識装置を記載している。ある単語の後にある別の単語が発生する確率を示す言語得点は、それらの単語を含むシーケンスに対して得られる得点と共同される。
本発明にしたがうと、言語認識方法であって：
未知の話声の部分を基準モデルと繰返し比較して類似性について累積された尺度を生成して、この累積された尺度が、基準話声の複数の許容できるシーケンスを定義する記憶されたデータにより定義された該シーケンスの各々に対して生成されるようにし、この類似性の累積された尺度が、それぞれの許容できるシーケンス内の以前の話声に対応する基準モデルと話声の１又は複数の以前の部分との比較から得られた、以前に生成された尺度からの寄与分を含むものであるが、別の繰返しの比較から、他のシーケンスに対する尺度より、所定のプルーニング基準によって定義された程度まで類似性の指標を小さくするようなシーケンスを除くものであるようにし；
該累積された尺度に許容されたシーケンスの各々に対する重み付け因子に従って重み付けをし、この重み付けが部分的シーケンスに対する尺度もしくは累積された尺度の各計算に対して、この部分的シーケンスで始まる許容できるシーケンスの各々に対する重み付け因子から、話声もしくはこの部分的シーケンスで始まるより短いシーケンスに対して生成された尺度に加えられる重み付け因子を差引いた組合せた値による重み付けであるようにする言語認識方法が提供される。
好ましくは、前記重み付けをした累積された尺度が他のシーケンスに対するよりも、プルーニング基準により定義された程度まで類似性の指標を小さくするようなシーケンスが、別の繰返し比較から排除される。プルーニングは、生成された尺度の数に依存して行われ、さらなる繰返し比較から除外されずに、その数を一定に保つようにする。
本発明の別の態様では、言語認識装置であって：
話声を表す基準モデルに関係するデータと基準話声の許容できるシーケンスを定義するデータとを記憶するための記憶手段と；
未知の話声の部分を基準モデルと繰返し比較して類似性の累積された尺度を、基準話声の複数の許容できるシーケンスを定義する記憶されたデータにより定義されたこのシーケンスの各々に対して生成し、該累積された尺度は前に生成された尺度からの寄与分を含むものであって、それぞれの許容できるシーケンス内の以前の話声に対応する基準モデルと話声の１又は複数の以前の部分との比較から得られた尺度であるように生成するための比較手段と；
該累積された尺度に許容されたシーケンスの各々に対する重み付け因子に従って重み付けをし、この重み付けが部分的シーケンスに対する尺度もしくは累積された尺度の各計算に対してこの部分的シーケンスで始まる許容できるシーケンスの各々に対する重み付け因子から、話声もしくはこの部分的シーケンスで始まるより短いシーケンスに対して生成された尺度に加えられる重み付け因子を差引いた組合せた値による重み付けとするよう重み付けをする手段とから成る言語認識装置が提供される。
さらに別の態様では、本発明は、音に対応する基準モデルと定義する記憶されたデータと認識すべき話声に各シーケンスが対応しており、かつこのモデルの許容できるシーケンスを定義する記憶されたデータとを参照することにより言語認識をする方法であって：
未知の話声の部分を基準モデルと比較して話声の以前の部分と部分的に許容できるシーケンスとの間の類似性を示す尺度を更新し、話声のより長い部分とより長い部分的に許容できるシーケンスとの間の類似性を示す尺度を作るようにし；
これら部分的なシーケンスでその尺度が類似性について定義された度合いよりも小さな尺度となるようなものを識別し；
識別された部分的なシーケンスの１つで始まるシーケンス又は部分的なシーケンスに関する尺度のさらなる生成を抑制し；
て成り、該識別は尺度の閾値との比較により実行され、またこの閾値は生成されかつ抑制されていない尺度の数に依存して繰返し調節されて、その数が定数を維持するようにされていることを特徴とする方法が提供される。
本発明のさらに別の態様では、基準話声の複数の許容できるシーケンスを表す言語認識網の各ノードに重み付け因子を指定する方法であって：
各ノードに対して、そのノードを取込んでいる部分的シーケンスで始まる許容できるシーケンスの各々に対する重み付け因子の値と、その部分的シーケンスで始まる話声もしくはより短いシーケンスに適用される重み付け因子を差引く値の組合せをすることを含む方法が提供される。
重み付け因子はログ変域内で生成することができ、所定の重み付け因子のログは、許容できるシーケンスに対応する網の最終ノードに対して指定され；
各先行するノードに対してログ確率値としてノードまたは後段のノードに指定されたそれらの値の最大値を指定され；
各ノードに対する値から先行するノードに指定された値を減ずる。
前記ノードは基準話声を表すモデルと関係しており、関係するモデルのパラメータは各ノードに指定された重み付け因子を反映して修正することができる。
本発明はとくに、木（トリー）構造を有し、第１のノード以外の少なくとも１つのノードが２以上の枝をもつ認識網に応用可能である。
ここで本発明の幾つかの実施形態を例示的に添付の図面を参照して記載する。
図１は、本発明の１実施形態にしたがう装置のブロック図である。
図２は、隠れマルコフモデル（Hidden Markov Models）のネットワークの概略図を示す。
図３は、図１のトークンメモリの内容を示す。
図４は、図１の装置によって重み付けの配置を示す。
図５は、図１のノードメモリの内容を示す。
図６は、図１の動作を示すフローチャートを示す。
図７は、図１の語彙メモリの内容を示す。
図８は、図４の配置に対する代わりの重み付け手順を示す。
言語認識には基本的に２つの方法がある。並列処理方法は、各話声（例えば、単語）が基準テンプレートまたはモデルを連続的に比較して、もっとも類似するものを１つ以上識別するやり方であり、トリー処理方法は、話声の一部分（例えば、フォニーム）が基準テンプレートまたはモデル（なお“モデル”は一般的な意味で使用している）と比較して、その部分を識別し、さらに次の部分に対して同様の処理を行なうやり方である。
ここでトリー構造を使用する実施形態を記載する。
図１の言語認識器は、言語信号用の入力１を有し、これはデジタル対アナログコンバータ２によってデジタル形式に変換される。次にこのデジタル信号は、例えば１０ｍｓの間多数のパラメータまたは“特徴”をもつ継続するフレームのそれぞれを計算する特徴抽出器３に供給される。通常使用される特徴、例えばＭｅｌ周波数ケプストラム係数（Mel frequency cepstral coefficients）または変形予測係数を選択することができる。
フレーム毎の可能な特徴値の組合せの数は相当に大きく、後の処理を処理可能な程度まで減少するために、ベクトル量子化を応用するのが一般的で、すなわち特徴の組を制限された数ｍの標準の特徴の組合せ（ｖ1、ｖ2、…、ｖm）の１つに整合させるのが一般的である。これはベクトル量子化器（ＶＱ）４によって行われ、単一の数または“観察”Ｏj（ｊ番目フレームに対して）を生成する。次にこれが、分類器５に供給され、通常ここでは観察シーケンス［Ｏj］をモデルメモリ６に記憶された１組のモデルに整合させる。各モデルは異なるサブワード、例えばフォニームに対応する。分類器は、プログラムメモリ52、ノードメモリ53、およびトークンメモリ54内の記憶プログラムによって制御される中央プロセッサ51を含んでいる。分類器は、隠れマルコフモデルを使用して分類処理を行なう。ここでその原理を記載する。
概念的に、隠れマルコフモデルは“ブラックボックス”として扱われ、ｎの可能な状態を有し、正規間隔で１つの状態から次の状態へ進むことができるか、またはその代わりに確率のパラメータにしたがって同じ状態に留まることができる。状態ｉから状態ｊへの遷移確率はａijであり、状態ｉに留まる確率はａiiである。したがって、次の式のようになる。
0004180110.tif 000002
言語音の時間的順序が原因で、左−右モデルが一般的に、ａijが
0004180110.tif 000003
のときのみゼロ以外になるものに対して使用される。特定の状態で、出力が生成され、それは可能な限定された数ｍの出力、例えば、第２の組の確率にしたがってｖ1、ｖ2、…、ｖmの１つであってもよい。このコンテキストでは、ｖkは特定の組の言語の特徴を識別する。状態ｊのときに出力ｖkを生成する確率はｂjkである。したがって、
0004180110.tif 000004
第３のパラメータは、特定の状態から始まる確率である。状態ｉから始まる確率はπiである。
したがってモデルは、１組のパラメータ、
Ａ＝［ａij］（ｉ＝１…ｎ，ｊ＝１…ｎ）
Ｂ＝［ｂjk］（ｉ＝１…ｎ，ｊ＝１…ｎ）
π＝［πi］（ｉ＝１…ｎ）、
およびこのパラメータに適用されて、出力シーケンスを生成することができる１組の規則から成る。事実、モデルは存在せず、出力シーケンスも生成されない。むしろ、言語認識の問題は、ｖのシーケンス（各ｖは観察された言語の特徴の組を表している）を与えるとき、Ａ、Ｂ、πによって定められるモデルＭがこのシーケンス（観察シーケンス）を生成できる確率Ｐが何であるか”という質問として形成される。
この質問は、それぞれが（例えば）異なるフォニームを表している多数の異なるモデルに対して照会されるとき、最も高い確率を有するモデルによって表されるフォニームが認識されたと考えられる。
観察シーケンスが時間ｔ＝１乃至ｔ＝Ｔに対してＯ1、Ｏ2、…、ＯTであると想定する。この観察で状態jに到達する確率αT（j）は、次の反復式によって得られる。
0004180110.tif 000005
モデルＭによって生成される観察シーケンスＯの確率は、次のとおりである。
0004180110.tif 000006
これは、全ての可能な状態のシーケンスを考慮した観察シーケンスＯの確率であり；実際には、一定量の計算を減少するために、通常はＶｉｔｅｒｂｉアルゴリズムを呼出し、観察シーケンスを生成するのに最高の確率をもっている状態シーケンスと関係する確率を計算する。この場合式１乃至３が次の式と置換される。
0004180110.tif 000007
または、ログ変域では、
0004180110.tif 000008
モデルメモリ６は、相関言語の各フォニームに対するＡ、Ｂ、およびπの値（これらは一緒にモデルＭと呼ばれる）を含む。モデルのパラメータを生成するためのトレーニングプロセスは一般的であるので、さらに説明を加えない。S.J.Coxによる”Hidden Markov Models for Automatic Speech Recognition: Theory and Application”（British Telecom Technology Journal Vol.6, No.2, 1988年2月）を参照されたい。特定の観察シーケンスＯのフォニームは、各モデルＭ1…ＭQ（なお、Ｑはモデルの数である）に対してＰrv（Ｏ｜Ｍi）を計算することによって認識される。最も高いＰrvを生成するモデルを有するフォニームは、認識されると考えられる。
もちろん、実際には単語を認識することが必要である。この処理は、多数のノードを有するネットワークまたはトリー構造の形態で視覚化することができる。この構造は、後で分かるように各ノードはメモリの各領域に対応するという意味でのみ存在する。
図２は、“ｙｅｓ”と“ｎｏ”を区別する簡単なネットワークを示している。ここではこれらのフォニームを｛ｙ｝｛ｅｈ｝｛ｓ｝および｛ｎ｝｛ｏｗ｝で示している。
図２でノード10は、最後のノード16と同様にノイズモデル（全体的に１つの状態のモデル）に対応しており、これらは前後の“黙音（silence）”を表している。最後のノードを除く残りのノードは、図示されたフォニームに対応している。例えば、ノード11は“ｙｅｓ”のフォニーム［ｙ］に対応している。
動作において、ノードは図３に示されている次の情報を含むトークンを受取る：
−前のノードから累積された得点；
−前のノードの識別子（ノードメモリ内のアドレス）；
−このトークンを生成した前のノードによって受取られるトークンの識別子（トークンメモリ内のアドレス）；
−トークンはさらに活性／不活性フラグも含み、この使用は以下に記載する。
このようなトークンは全て、将来の参照のためにトークンメモリ54に記憶される。
第１のノードはフレームレートでエンプティトークンを供給される。ノードに到達するトークンは、そのノードへ向うパス上のノードと関係するモデルにこれまでの言語入力が対応する尤度（実際には確率の対数）を示す得点を含んでいる；したがってノード13に到達するトークンは、ここまでの言語が話声｛ｙ｝｛ｅｈ｝に対応する尤度を示す得点を含んでいる。ノードに関連するタスクは、新しい言語入力フレームとそのモデルを比較することである。これは、新しいフレームに関して式７乃至９の計算を行って、到来する得点に付加されて、得点を更新する確率Ｐrvを得ることによって行われる。新しいトークンはこの得点を含む出力であり、次のノードへ送られる。普通、この得点は、トークンを出力する前にモデルの状態の数（一般的に３）に等しいフレーム数に累積される。その後、トークンはフレーム毎に生成される。ノードが別のトークンを受取る一方で、それが依然として第１のノードを処理しているとき、このノードは別のトークンの得点と第１のノードの最新の得点を比較し（すなわち、最新のログＰrvと到来するトークンの得点とを加算し）、新しいトークンを無視するか、または別のトークンの得点が２つの得点の高い方であるか低い方であるかにしたがって新しいトークンのために現在の処理を放棄する。
与えられた例では、パスは最後のノードを除いて収束しない。パスが収束可能なとき、多数のパスの伝搬が可能であっても、２つのトークンの同時到着の確率は、普通より低い得点を有するものを無視することによって処理される。
最後のノード16では、収束するパスの最も高い得点のノードを除いた全てを拒絶することができるが、多くの応用では、２つ以上を保持することが望ましい。さらに、最後のノードで望ましい得点になる機会はないと考えられるほど低い得点を保持するトークンの伝搬を終了する準備が行われる。以下でさらにこの“プルーニング”処理を説明する。ネットワークを通るパスを識別して、話声のフォニームを発見することができる。これは、出力トークンから戻って成功したトークンシーケンスをトレースする、“前のトークン”アドレスを使用してトークンメモリ内のトークンを識別することによって認識されると考えられる。
トリー構造に組込まれるＨＭモデルは単一の大きなモデルであると考えられることを記載しておくべきであろう。
ここまでに説明したように、認識器は、一般的な意味で、通常のものである。ここで記載される認識器の別の特徴は、認識トリーヘアプリオリ確率を“伝搬する”目的を有することである。単語“ｃａｔ”、“ｃａｂ”、“ｃｏｂ”、“ｄｏｇ”、および“ｄｅｎ”を区別するための図４に示されたトリーを検討する。前のプロセスの結果として、これらを行うアプリオリ確率は、値０．５、０．２、０．３、０．１、０．１を重み付けすることによって表されると想定する。これは、ノード23,24,26,29,31の得点入力を、別の決定が行われる前にこれらの値によって重み付けをされる必要があることを意味している。しかしながら、重み付けは、次に示すようにトリー内の各ノードに対して行われる。したがってその単語が“ｃａｔ”または“ｃａｂ”または“ｃｏｂ”である確率は、０．５＋０．２＋０．３＝１．０の重み付けをすることによって表され、一方で“ｄｏｇ”または“ｄｅｎ”に対する対応する値は０．１＋０．１＝０．２である。その結果、ノード21に対する得点入力は、１．０に因子によって重み付けされ、ノード27に対する入力は０．２の因子によって重み付けされる。一方で“ｃａｔ”または“ｃａｂ”に関連する値は０．７であり、他方で“ｃｏｂ”に関連する値は０．３であるので、ノード22および25への入力に適切に重み付けをする必要がある。しかしながら、１．０の因子はノード21によってこのブランチに既に適用されているので、ノード22および25における重み付けは以下のように表すことができる。
ノード22における重み付け＝０．７／１．０＝０．７
ノード25における重み付け＝０．３／１．０＝０．３
同様に、ノード23および24は以下のように表すことができる。
ノード23における重み付け＝０．５／（１．０×０．７）＝５／７
ノード24における重み付け＝０．２／（１．０×０．７）＝２／７
また、ノード28および30は以下のように表すことができる。
０．１／０．２＝０．５
もちろん、図４のトリーは、このプロセスを概念的に表しているだけである。実際には、各ノードは、以下の情報を有するノードメモリ（図５参照）内のエントリによって表される。
−使用されるモデルの（モデルメモリ内の）アドレス；
−ネットワーク内の次のノードのアドレス；
−ノードが活性であるか否かを示すフラグ；
−そのノードに関係する重み付けを示すログ値；
−計算の結果に対する一時的ストレージ。
最初の２つの項目の内容は、認識器の語彙を設定するときに決定される。このプロセスは、認識される単語のリストを含む語彙メモリ７（図１参照）を参照することによって実行され、各単語に対して、アドレスのストリングがその単語の言語音（sound）に対応するフォニームモデルのシーケンスを識別する（同じく図７参照）。ノードメモリの内容の生成（以下で説明されるログの重み付け値の内容のセーブ）は一般的である；それは、各単語に対応するノードアドレスのシーケンスの語彙メモリへの挿入を含む。
ＣＰＵ51は、図６のフローチャートに示されているように、プログラムメモリ52内に記憶されるプログラム制御のもとで以下の処理を行う；
第１に、第１のノードへの入力としてエンプティトークンを生成する、すなわちゼロ（すなわち、ログ（1））の得点およびゼロを発生するノードアドレス（これはトークンが第１のノードによって処理されることを意味すると考えられる）および前のフレームの日付を有するトークンメモリ内にエントリを生成する。これらの第１のノードはそこで“活性”であると考えられる。
次に、フレーム期間では以下の段階を実行する：
各活性ノードに対して：
−ＨＭＭプロセスを開始し、かつこのノードによって処理されるトークンが最後のフレーム内で生成されなかったときには、現在のフレーム観察Ｏを使用してＨＭＭプロセスを更新する。プロセスがｎフレームに到達したとき（なおｎはこのノードに関係する特定のＨＭＭの状態の数である）、ノードメモリに記憶されたログのアプリオリ確率値を計算された尤度の値に加算し、その結果を使ってトークンメモリ内に新しいエントリを生成する（それにも関わらず、現在のプロセスは次のフレームに対しても続けることができることに注意すべきである）；
−プロセスを開始せず、このノードによって処理されるトークンが最後のフレーム中に生成されなかったとき、（すなわち、活性フラグがちょうど設定されたとき）現在のフレーム観察を使用して、新しいＨＭＭプロセスを開始する。単一の状態のＨＭＭの場合、その結果を使用して、トークンメモリ内に新しいエントリを生成する；（それにも関わらず現在のプロセスは次のフレームまで続けることができることに注意すべきである）；
−プロセスを開始し、このノードによって処理されるトークンが生成されたとき、到来する得点と内部の得点とを比較し、その結果にしたがって上述のプロセスを継続し、無変化のままか、あるいは第１の状態への入力として到来するスコアを付加する。
−生成された各トークンに対して、
−トークン得点から発生ノードアドレスを得て；
−発生ノードに対するノードメモリエントリから“次のノード”アドレスを得て；
−このような次のノードのそれぞれを次のフレームに対して活性であるとフラグを立てる。
−トークンメモリ内に新しいエントリが生成されるときは、
−関係する得点が、記憶された“全てのトークンに対する最高得点”数を越えているとき、この数字を更新し；
−関係する得点が、記憶された“全てのトークンに対する最高得点”数よりも所定のマージン（例えば、５０）よりも大きい分だけ小さければ、トークンメモリのエントリを除去する（“プルーニング”段階）。この結果ノードが入力および出力の両トークンをもたないとき、それを不活性にする（すなわち、ノードメモリのエントリを除去する）。
−最後のノードでは、
認識が完了したとき、および認識パスのトレースバックを行うことができることに関する決定は、特定の測定を検査する規則および閾値のシステムに基づいて行われる。したがって、各フレームに対して、最後のノードで現れる最良のトークンをトレースバックして、最後のノイズノードで幾つのフレームが費やされたかを検査する。（ネットワーク内の全てのパスは、端部にノイズノードを有すると想定する）。継続期間が閾値よりも長く、パスの得点が別の閾値よりも高いとき、認識を止める（すなわち、完全なパスに対する認識得点が適度に好ましくなり、パスが端部に適度な量のノイズ、一般的に２０フレーム、すなわち０．３２フレームを含むまで、待たなければならない）。これは、言語検出アルゴリズムの終了を最も簡単に記述したものである。実際には、アルゴリズムは現時点までの信号のＳＮＲおよびノイズエネルギーの分散に関する付加的な検査によって拡張することができる。さらに多数のタイムアウトがあって上述の検査が連続して失敗するとき、言語検出の終了が結局はトリガすることが確実となるようにする。
次に、最高の得点トークン、またはＮoutの最高の得点トークン（ここでＮoutは所望の数の出力選択である）に対して、
（ａ）トークンから先のノードおよびそこから関連するモデル識別子を検索し；
（ｂ）前のトークンメモリエントリを検索し；
（ｃ）全てのモデルを識別するまで、（ａ）および（ｂ）を反復する。
ここで認識された単語は、関連する得点と一緒に使用できる。
上述は、認識プロセスである：このプロセスを開始する前に、ログのアプリオリ確率をノードメモリに入力することが必要である。前の認識プロセスによって、図７に示されたフォーマットでアプリオリ確率値を生成したと仮定する。ここでは（例として）多数の都市名のそれぞれがそれに割当てられた確率を有するとする。ＣＰＵ52は、ノードアプリオリの確率の値を導き出すための次の設定プロセスを実行する。
第１に、語彙メモリ７を参照することによって、単語をノードシーケンスに変換することが必要であり、その結果、認識トリーを通る各可能なパスに対して、各ノードへ向う途中のログのアプリオリ値の合計が分かる。次に、図４に示されているように、各ノードに対して個々の値を計算することが必要であり、次のようになる：
（ａ）所定の確率値を各単語に対応する最後のノードに割当て；
（ｂ）右側から左側へ進み（図４参照）、各ノードに対して、それにしたがうノードに割当てられたものの合計である確率値を割当て（図４では、第１のノードは割当てられた値の１を有するようにとられている）；
（ｃ）左側から右側へ進み、前のノードに割当てられた値によって各ノードに対する確率値を分割し；
（ｄ）全ての値のログを取る。
実際には、全体的に計算の面倒の少ない技術がログ値と共に行われ、合計ではなく、最大値を取る。したがって、（図８に示されているように）：
（ａ）所定のログの確率値を各単語に対応する最後のノードに割当て；
（ｂ）ノードまたは後段のノードに割当てられた最大値であるログ確率値を各ノードに割当て；
（ｃ）各ノードに対する値から、前のノードに割当てられた値を控除する。
もちろん分岐していないリンクの計算（角括弧で示されている）は行う必要がない。
上述では、第１の基準は、トークンは閾値より下の得点を保持する、すなわち、如何なるときにおいても“最良のパス”の得点数を保持するときにトークンを消去するというものである。事実、ログ確率を使用するので、ログの得点と、最良のログ得点から最良の平均動作を与えるように設定された固定マージン値を引いたものとの間で比較が行われる。
しかしながら、実際には使用するための最適のプルーニングレベルは実際に話された話声に依存する。したがって、変形例では、プルーニングは認識器の現在の計算上の負荷の関数として調節される。例えば、それは活性ノードの数に依存して調節することができる。したがって、
１．幾つかのノードのみが活性であるとき、プルーニング閾値は緩められ、より多くのノードが活性状態を保ち、潜在的に精度を高められる。
２．多くのノードが活性であるとき、プルーニング閾値はきつくされ、計算量を減少する。
これに関して、閾値を調節して、活性ノードの数を一定に保つことは可能である。このときは、各時間フレームにおいて、活性ノードｎaの数は所望の目標ｎt（例えば、１３００）と比較される。閾値のマージン値ＭTを段階値Ｍs（例えば、２）によって、Ｍoの開始値（例えば、１００）から最小値Ｍmin（例えば、７５）と最大値（例えば、１５０）との間で変化させることができる。各時間フレームごとに以下の段階をとることができる。
（１）ｎa＞ｎtおよびＭT＞Ｍminのとき、Ｍ＝Ｍ−Ｍs
（２）ｎa＜ｎtおよびＭT＜Ｍminのとき、Ｍ＝Ｍ＋Ｍs
しかしながら他の基準を適用できるときもあり、例えば活性モデル状態数または（とくに非常に多くの語彙を有する認識器のときは）活性単語数に基づいて決定することができる。
この動的な閾値の調節は、アプリオリの重み付けを行わないシステムで使用することもできる。
上述の認識器は、特定の状態で行われる限定された数の可能な観察を行うように制限されている。しかしながら望むのであれば、観察Ｏに対する値を有する連続する確率密度ｂj（Ｏ）によって確率ｂjkを置換することができる。周知のように、全体的な連続確率密度は、もっと拘束された形態−通常ガウス分布の連続関数の離散数の重み付けをした合計（または混合）によってうまい具合に近似値を得ることができる。したがって確率密度の関数は、
0004180110.tif 000009
なお、Ｘは混合における成分（または“モード”）の数であり、ｃjxは状態ｊにおけるモードｘの重み付けであり、Ｎ［Ｏ、μjx、Ｕjx］は、中間ベクトルμjxおよび共分散マトリックスＵjxで多変量垂直分布からベクトルＯを引出す確率である。
ガウス分布に対して、次の式が成り立つ。
0004180110.tif 000010
なお、ｄはベクトルの大きさである。これは、Ｕが項目（term)σiを有する対角行列であるとき、次のように減少する。
0004180110.tif 000011
なお、υiはＯの要素である。
式１乃至９の認識プロセスは変更されず、ｂの定義のみが変化する。この連続する密度モデルのトレーニングプロセスは知られているので、以下で説明しない。
並列処理方法は、上述で説明したトリー処理方法よりも簡単である。プルーニングを含むこの典型的な処理方法は、モデルを検査するときの実行リストの上から（例えば）６つの“最良”の候補を維持することを含む。例えば、
（ａ）未知の単語を最初の６つのモデルと比較し、これらのモデルのリストを生成し、それぞれに対して類似の得点を記録し；
（ｂ）未知の単語を別のモデルと比較する。得られた得点が、リスト内の他の何れよりも高ければ−すなわち類似度がより高いときは、リスト内の最も低い得点エントリに新しいモデルおよび得点を代入し；
（ｃ）全てのモデルを処理するまで段階（ｂ）を反復する。このプロセスは、上から６つの高得点のモデルのリストを生成する。最良の候補を選択する前に、アプリオリの確率が適用されるとき、６つの得点のそれぞれが相関する重み付け因子によって乗算され、最良の重み付けをされた得点を有する候補が選択される。
提案された方法では、認識プロセス中に重み付けが行われる；すなわち、
（ａ）未知の単語を第１の６つのモデルと比較し、それぞれに対して類似の得点を発生する。各モデルに対する重み付け因子によって得点を乗算する。これらのモデルのリストを生成し、それぞれに対して重み付けされた得点を記録し；
（ｂ）未知の単語を別のモデルと比較する。このモデルに対する重み付け因子によって得点を乗算する。得られた重み付けした得点がリスト内の他のものよりも高いときは、最も低く重み付けをされた得点を有するリストにおいてエントリに対する新しいモデルおよび重み付けされた得点を代入し；
（ｃ）全てのモデルが処理されるまで、段階（ｂ）を繰返す。
【図１】
0004180110.tif 000012
【図２】
0004180110.tif 000013
【図３】
0004180110.tif 000014
【図５】
0004180110.tif 000015
【図４】
0004180110.tif 000016
【図７】
0004180110.tif 000017
【図６】
0004180110.tif 000018
【図８】
0004180110.tif 000019