(57)【要約】【課題】  パターン認識のシステムおよび方法を提供する。【解決手段】  本発明の態様は、複数状態の隠れマルコフモデルとの組合せで特に有用である。パターン認識は、隠れマルコフモデルブロックによって行われることが可能である。このブロック処理により、プロセッサが、データがキャッシュメモリ内にある間に、データに対してより多くの処理を行うことが可能になる。このようにキャッシュ局所性を高めることにより、本発明の態様は、大幅に向上したパターン認識速度を提供する。【選択図】  図４
2004272251.tif 000002
【特許請求の範囲】
【請求項１】
デジタル表現で入力を行うよう適合された入力デバイスと、
前記入力デバイスに結合されて動作可能な、前記デジタル表現、および前記デジタル表現に関連する複数の複数状態モデルを記憶するメモリと、
前記入力デバイスおよび前記メモリに結合され、キャッシュメモリを含み、前記デジタル表現を複数の時系列化されたフレームに変換するよう適合されたプロセッサと
を備えた連続パターン認識システムであって、
前記プロセッサは、前記キャッシュメモリの中に記憶された前記時系列化されたフレーム、および前記複数状態モデルのブロックの処理に基づいて、認識されたパターンの出力を生成するよう適合されていることを特徴とするシステム。
【請求項２】
前記複数状態モデルは、３状態隠れマルコフモデルであることを特徴とする請求項１に記載のシステム。
【請求項３】
前記入力デバイスは、マイクロホンであることを特徴とする請求項１に記載のシステム。
【請求項４】
前記認識されたパターンの出力は、語を含むことを特徴とする請求項１に記載のシステム。
【請求項５】
コンピュータ内部で実現されることを特徴とする請求項１に記載のシステム。
【請求項６】
携帯情報機器内部で実現されることを特徴とする請求項１に記載のシステム。
【請求項７】
時系列化されたフレームにより形成される入力におけるパターンを認識する方法であって、
パターンを複数の複数状態隠れマルコフモデルを使用してモデル化するステップと、
隠れマルコフモデルブロック（ＨＭＭＢ）を処理して前記時系列化されたフレームのなかで前記モデル化済みパターンを認識し、当該認識されたモデル化済みパターンのシーケンスを生成するステップと
を含むことを特徴とする方法。
【請求項８】
前記時系列化されたフレームは、音声に対応することを特徴とする請求項７に記載の方法。
【請求項９】
前記複数状態隠れマルコフモデルは、３状態隠れマルコフモデルであることを特徴とする請求項７に記載の方法。
【請求項１０】
各ＨＭＭＢは、状態対時間グラフ上に描かれる場合、縦３横３の菱形であることを特徴とする請求項９に記載の方法。
【請求項１１】
各ブロックを処理するステップは、システムキャッシュメモリとだけ対話するステップを含むことを特徴とする請求項９に記載の方法。
【請求項１２】
前記ＨＭＭＢを処理するステップは、言語モデルにアクセスするステップを含むことを特徴とする請求項７に記載の方法。
【請求項１３】
入力を時系列化されたフレームの系列として表わすステップと、
ＨＭＭＢおよび前記系列を処理して前記入力に対応する認識されたパターンの出力シーケンスを生成するステップと
を備えたことを特徴とするパターン認識方法。
【請求項１４】
前記入力は、音声に対応することを特徴とする請求項１３に記載のパターン認識方法。
【請求項１５】
各ＨＭＭＢは、３つの状態を含むことを特徴とする請求項１３に記載のパターン認識方法。
【請求項１６】
時系列化されたフレームにより形成される入力におけるパターンを認識する方法であって、
ａ）パターンを複数の複数状態隠れマルコフモデルを使用してモデル化するステップと、
ｂ）第１の複数状態隠れマルコフモデルの第１のポイントを処理するステップと、
ｃ）状態および時間の双方で前記第１のポイントと異なる前記第１の複数状態隠れマルコフモデルの第２のポイントを処理するステップと、
ｄ）前記第１の隠れマルコフモデルの残りのポイント、および前記複数の複数状態隠れマルコフモデルのその他のモデルのポイントを処理して、前記時系列化されたフレームのなかで前記モデル化済みパターンを認識し、認識されたモデル化済みパターンのシーケンスを生成するステップと
を備えたことを特徴とする方法。
【請求項１７】
前記第１のポイントおよび前記第２のポイントは、ＨＭＭＢを含むことを特徴とする請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パターン認識に関する。詳細には、本発明は、パターン認識において使用される信号処理に関する。
【背景技術】
【０００２】
音声認識システムなどのパターン認識システムにおいては、入力信号を取り込み、その信号を復号してその信号によって表わされるパターンを見出そうとの試みが行われている。例えば、音声認識システムでは、一定の音声信号（しばしば、試験信号と呼ばれる）が認識システムによって受け取られ、復号されて音声信号によって表わされる一連の語が識別される。
【０００３】
ほとんどの認識システムにおいては、試験信号のある部分が特定のパターンを表わす尤度を記述する１つまたは複数のモデルを利用して、入ってくる試験信号が復号される。そのようなモデルの例には、ニューラルネット（Ｎｅｕｒａｌ  Ｎｅｔ）、動的時間伸縮法（Ｄｙｎａｍｉｃ  Ｔｉｍｅ  Ｗａｒｐｉｎｇ）、セグメントモデル、および隠れマルコフモデル（ＨＭＭ）が含まれる。
【０００４】
ほとんどの市販の音声認識システムはＨＭＭを用いて、発話における音声パターンがマッチングされ、しばしば、互いにおよそ１０ミリ秒間だけ隔てられた重なり合う「フレーム」に分割される。発話をこれらの１０ミリ秒間のフレームに分解することは、入力が、一続きの時系列化されたフレームに変換されることの一例に過ぎない。従来、これらのフレームの評価は、１回に１つのフレームずつ行われる。すなわち、すべてのＨＭＭが、ラウンドロビン式に単一のフレームに関して更新されてから次のフレームに進む。
【０００５】
図３はＨＭＭの基本的な表現を示しているが、これは多くの文献で詳細に説明されている（例えば、非特許文献１参照）。任意の所与の時点で、このモデルは、所与の確率で様々な状態のいずれかにある。各状態は、出力確率分布、および他の状態に対する遷移確率分布を有する。発話の場合、出力分布は１０ミリ秒間のフレームに分割された生の音声波形から導出された音響特徴セットをモデル化する。これらの遷移確率および出力確率は、周知の技術に従って訓練（ｔｒａｉｎｉｎｇ）ステップによって生成される。
【０００６】
ＨＭＭに関する復号の問題は、ＨＭＭおよび一連の観察（ｏｂｓｅｒｖａｔｉｏｎ）が与えられたとすると、その一連の観察をもたらす可能性が最も高い状態シーケンスはどのようなものであるかということである。この問題を解決する標準的な方法は、動的プログラミングと呼ばれ、図４に示される。図３に関連して描いた６状態ＨＭＭが横向きにされており、時間は、水平軸に沿って進む。このグリッドの各「ポイント」（状態と時間の組合せ）は、観察が与えられたとすると、その時点でＨＭＭがその状態にある確率を表わす。ＤＰマトリックスを通る１つの可能な経路が、太線で強調され（１−８−１４−２１−２７−３３−４０−４７−５３−５９−６６）、特定の配列、すなわち状態シーケンスを表わしている。ポイントに関する確率は、前のポイントの確率、遷移確率、およびその時間ステップに関する出力確率に依存する。各ポイントは、いくつかの前のポイントに依存するので、そのポイントに関する確率を計算するには、前のポイントをまず計算していることが必要であり計算の順序が制限されることとなる。「時間同期」評価順序を図４にポイント内の番号で示している。すなわち、システムは、所与の時間ステップに関するすべての状態を評価してから、次の時間ステップにおいて再開する。これは、唯一の可能な評価順序ではないことに留意されたい。というのは、先行するポイントの計算が済んで初めてポイントを計算するどの順序も、許容できるからである。グレーのポイントは、到達不可能であるか、または可能な終了状態につながらず、したがって、評価する必要のない状態を示している。ただし、多くの実施形態においては、いずれにしてもそれらのポイントが評価される。
【０００７】
リアルタイムシステムでは、同時に実行されている数万のそのようなＨＭＭが存在する可能性がある。それらのモデルは、たくさんのコンピュータメモリを消費し、モデルセット全体を通る各経路により、しばしばＣＰＵキャッシュ容量が使い果たされる。これにより、音声処理が相当に遅くなる。というのは、ＣＰＵキャッシュだけが関与するメモリ動作は、より高いレベルのメモリが関与するメモリ動作よりも数倍速く行われるからである。
【０００８】
問題を解決する別の方法も提案されている（例えば、非特許文献２参照）。この方法は、基本的に、所与の時間枠に関して複数のモデルを評価することから、所与のモデルに関して複数の時間枠を評価することにＨＭＭ評価の順序を切り替える。この方法は、いくつかの動作が同じ物理メモリ内で行われるため、標準のＣＰＵメモリキャッシュ動作と協力しながら処理メモリの要件を軽減することを意図している。
【０００９】
【非特許文献１】Huang, Acero and Hon共著, Spoken Language Processing, Chapter 8
【非特許文献２】Tony Robinson and James Christie共著 "Time-First Search For Large Vocabulary Speech Recognition"
【発明の開示】
【発明が解決しようとする課題】
【００１０】
大きな語彙のアプリケーションに対しリアルタイムの連続的な音声認識を提供するため、ＣＰＵキャッシュ使用の効率だけでなく、処理ルーチン自体の効率も向上させるさらなる開発が必要とされている。したがって、処理速度だけでなく、処理精度も同様に決定的な重要性を有する。
【課題を解決するための手段】
【００１１】
パターン認識のシステムおよび方法を提供する。本発明の諸所の態様においては、複数状態の隠れマルコフモデルとの組合せが特に有用である。パターン認識は、隠れマルコフモデルブロックによって行われることができる。このブロック処理により、プロセッサは、データがキャッシュメモリ内にある間に、データに対してより多くの処理（ｏｐｅｒａｔｉｏｎ）を行うことが可能になる。このようにキャッシュ局所性（ｌｏｃａｌｉｔｙ）を高めることにより、本発明の態様において大幅に向上したパターン認識速度が提供されることとなる。
【発明を実施するための最良の形態】
【００１２】
図１は、本発明を実施することができる適切なコンピューティングシステム環境１００の例を示している。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲に関して何ら限定を示唆することを意図するものではない。また、コンピューティング環境１００が、例示的な動作環境１００に例示した構成要素のいずれか１つ、またはいずれかの組合せに関連する依存性、または要件を有するものと解釈すべきでもない。
【００１３】
本発明は、多数の他の汎用または専用コンピューティングシステム環境またはコンピューティングシステム環境で機能する。本発明で使用するのに適していると考えられる周知のコンピューティングシステム、コンピューティング環境、および／またはコンピューティング構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、電話システム、以上のシステムまたはデバイスのいずれかを含む分散コンピューティング環境等が含まれるが、以上には限定されない。
【００１４】
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを行う、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造等が含まれる。また、本発明は、通信網を介してリンクされたリモートの処理デバイスによってタスクが行われる分散コンピューティング環境において実施することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルのコンピュータ記憶媒体とリモートのコンピュータ記憶媒体の両方の中に配置することが可能である。
【００１５】
図１を参照すると、本発明を実施するための例示的なシステムが、コンピュータ１１０の形態で汎用コンピューティングデバイスを含んでいる。コンピュータ１１０の構成要素には、キャッシュメモリ１２２（レベル１キャッシュ）およびキャッシュメモリ１２３（レベル２キャッシュ）を含む中央処理ユニット１２０、システムメモリ１３０、ならびにシステムメモリから処理ユニット１２０までを含む様々なシステム構成要素を結合するシステムバス１２１が含まれることが可能であるが、以上には限定されない。キャッシュメモリは、データのブロックが、比較的遅いシステムメモリから比較的高速のキャッシュメモリに転送されるのを可能にすることによって処理速度を高める。現在、２つの主なタイプのキャッシュメモリが存在する。レベル１キャッシュメモリは、マイクロプロセッサ自体の上のメモリの一部分である。このメモリは、一般に、システム内のすべての他のメモリよりも高速であるが、マイクロプロセッサのシリコン実装面積（ｆｏｏｔｐｒｉｎｔ）を直接に増やすため、比較的高価でもある。レベル２キャッシュは、一般に、マイクロプロセッサに近いがマイクロプロセッサ上以外の場所に配置される。このメモリも、通常、システムメモリより高速であるが、レベル１キャッシュメモリよりも遅い。非常におおまかなガイドラインとして、レベル１キャッシュは、レベル２キャッシュよりもおよそ１桁速く動作するものと考えることができ、それでもレベル２キャッシュは、システムＲＡＭ全体よりも１桁速く動作する。したがって、システム処理速度は、キャッシュメモリが最も効率的に使用されている場合に最大化される。
【００１６】
システムバス１２１は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺機器バス、およびローカルバスを含むいくつかのタイプのバス構造のいずれかとすることが可能である。例として、これに限られないが、そのようなアーキテクチャには、インダストリスタンダードアーキテクチャ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）（ＭＣＡ）バス、エンハンストＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）（ＥＩＳＡ）バス、ビデオエレクトロニクススタンダーズアソシエーション（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）（ＶＥＳＡ）ローカルバス、およびメザニン（Ｍｅｚｚａｎｉｎｅ）バスとしても知られるペリフェラルコンポーネントインターコネクト（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ）（ＰＣＩ）バスが含まれる。
【００１７】
コンピュータ１１０は、通常、様々なコンピュータ読取可能な媒体を含む。コンピュータ読取可能な媒体は、コンピュータ１１０がアクセスすることができる任意の可能な媒体とすることができ、揮発性の媒体と不揮発性の媒体、取外し可能な媒体と固定の媒体とが含まれる。例として、これに限られないが、コンピュータ読取可能な媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するために任意の方法または技術で実装された揮発性の媒体と不揮発性の媒体、取外し可能な媒体と固定の媒体がともに含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、書き出しメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは所望の情報を記憶するのに使用することができ、コンピュータ１１０がアクセスすることができる任意の他の媒体が含まれるが、以上には限定されない。通信媒体は、通常、搬送波などの変調されたデータ信号、または他のトランスポート機構でコンピュータ読取可能命令、データ構造、プログラムモジュール、またはその他のデータを実体化し、あらゆる情報配信媒体が含まれる。「変調されたデータ信号」という用語は、信号内に情報を符号化するような仕方で特性の１つまたは複数が設定または変更されている信号を意味する。例として、これに限られないが、通信媒体には有線ネットワークまたは直接配線接続などの有線媒体、音響媒体、ＲＦ媒体、赤外線媒体、およびその他の無線媒体などの無線媒体が含まれる。また、前述した媒体のいずれかの組合せも、コンピュータ読取可能な媒体の範囲に含まれるべきものである。
【００１８】
システムメモリ１３０は、読取り専用メモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性メモリおよび／または不揮発性メモリの形態でコンピュータ読取可能な媒体を含む。始動中などにコンピュータ１１０内部の要素間で情報を転送するのを助ける基本ルーチンを含む基本入力／出力システム１３３（ＢＩＯＳ）が、通常、ＲＯＭ１３１の中に記憶されている。ＲＡＭ１３２は、通常、処理ユニット１２０が即時にアクセスすることができ、かつ／または処理ユニット１２０によって現在、処理されているデータおよび／またはプログラムモジュールを含む。例として、これに限られないが、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示している。
【００１９】
コンピュータ１１０は、その他の取外し可能な／固定の、揮発性／不揮発性のコンピュータ記憶媒体も含むことが可能である。単に例として、図１は、固定の不揮発性の磁気媒体に対して読取りまたは書込みを行うハードディスクドライブ１４１、取外し可能な、不揮発性の磁気ディスク１５２に対して読取りまたは書込みを行う磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭまたは他の光媒体などの取外し可能な不揮発性の光ディスク１５６に対して読取りまたは書込みを行う光ディスクドライブ１５５を示している。例示的な動作環境において使用することができるその他の取外し可能な／固定の、揮発性／不揮発性のコンピュータ記憶媒体には、磁気テープカセット、書き出しメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭ等が含まれるが、以上には限定されない。ハードディスクドライブ１４１は、通常、インターフェース１４０のような固定のメモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、通常、インターフェース１５０のような取外し可能なメモリインターフェースでシステムバス１２１に接続される。
【００２０】
前述し、図１に示したドライブ、および関連するコンピュータ記憶媒体により、コンピュータ読取可能命令、データ構造、プログラムモジュール、および他のデータのストレージがコンピュータ１１０に提供される。図１で、例えばハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶しているのが示されている。以上の構成要素は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じであることも、異なることも可能であることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７に、ここでは、少なくともそれらが異なるコピーであることを示すために異なる符号を付けている。
【００２１】
ユーザは、キーボード１６２、マイクロホン１６３、ならびにマウス、トラックボール、またはタッチパッドなどのポインティングデバイス１６１などの入力デバイスを介して、コマンドおよび情報をコンピュータ１１０に入力することができる。その他の入力デバイス（図示せず）には、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ等が含まれることが可能である。以上の入力デバイス、およびその他の入力デバイスは、しばしば、システムバスに結合されたユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの他のインターフェースおよびバス構造で接続してもよい。また、モニタ１９１、または他のタイプの表示デバイスも、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタに加えて、コンピュータは、出力周辺インターフェース１９０を介して接続することができるスピーカ１９７やプリンタ１９６などの他の周辺出力デバイスも含むことが可能である。
【００２２】
コンピュータ１１０は、リモートコンピュータ１８０のような１つまたは複数のリモートコンピュータに対する論理接続を使用するネットワーク化された環境において動作することが可能である。リモートコンピュータ１８０は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードとすることが可能であり、通常、コンピュータ１１０に関連して前述した要素の多く、またはすべてを含む。図１に描いた論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１および広域ネットワーク（ＷＡＮ）１７３を含むが、その他のネットワークを含むことも可能である。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータ網、イントラネット、およびインターネットで一般的である。
【００２３】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、ネットワークインターフェースまたはネットワークアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、通常、インターネットなどのＷＡＮ１７３を介して通信を確立するためのモデム１７２、またはその他の手段を含む。内部にあることも、外部にあることも可能なモデム１７２は、ユーザ入力インターフェース１６０、またはその他の適切な機構を介してシステムバス１２１に接続することが可能である。ネットワーク化された環境では、コンピュータ１１０に関連して描いたプログラムモジュール、またはプログラムモジュールの部分は、リモートのメモリ記憶装置の中に記憶することが可能である。例として、これに限られないが、図１は、リモートのアプリケーションプログラム１８５が、リモートコンピュータ１８０上に常駐しているのを示している。図示したネットワーク接続は、例示的であり、コンピュータ間で通信リンクを確立する他の手段も使用できることが認められよう。
【００２４】
図２は、例示的なコンピューティング環境である携帯情報機器２００のブロック図である。携帯情報機器２００は、キャッシュメモリ２０３を含むマイクロプロセッサ２０２、メモリ２０４、入力／出力（Ｉ／Ｏ）構成要素２０６、およびリモートコンピュータまたは他の携帯情報機器と通信するための通信インターフェース２０８を含む。一実施形態では、前述した構成要素は、適切なバス２１０を介して互いに通信するために結合される。
【００２５】
メモリ２０４は、携帯情報機器２００に対する全体的な電力が遮断された場合にメモリ２０４の中に記憶された情報が失われないように、バッテリバックアップモジュール（図示せず）を有するランダムアクセスメモリ（ＲＡＭ）などの不揮発性電子メモリとして実装される。メモリ２０４の一部分は、プログラム実行のためのアドレス指定可能なメモリとして割り振られるのが望ましく、メモリ２０４の別の部分は記憶用に、例えばディスクドライブ上の記憶をシミュレートして使用されるのが望ましい。
【００２６】
メモリ２０４は、オペレーティングシステム２１２、アプリケーションプログラム２１４、およびオブジェクト記憶２１６を含む。動作中、オペレーティングシステム２１２は、好ましくは、メモリ２０４からプロセッサ２０２によって実行される。オペレーティングシステム２１２は、好ましい一実施形態においては、マイクロソフトコーポレーションから市販されるＷＩＮＤＯＷＳ（登録商標）ＣＥブランドのオペレーティングシステムである。オペレーティングシステム２１２は、携帯情報機器に合わせて設計され、１組の公開されたアプリケーションプログラミングインターフェースおよびメソッドを介してアプリケーション２１４が利用することができるデータベース機能を実装するのが望ましい。オブジェクト記憶２１６の中のオブジェクトは、少なくとも部分的に、公開されたアプリケーションプログラミングインターフェースおよびメソッドに対する呼出しに応答して、アプリケーション２１４およびオペレーティングシステム２１２によって保持される。
【００２７】
通信インターフェース２０８は、携帯情報機器２００が、情報を送受信することを可能にする多数のデバイスおよび技術を表わしている。デバイスには、いくつかを挙げれば、有線モデムおよび無線モデム、サテライト受信機、およびブロードキャストチューナが含まれる。携帯情報機器２００は、コンピュータとデータを交換するように、コンピュータに直接に接続することも可能である。そのようなケースでは、通信インターフェース２０８は、赤外線トランシーバ、あるいはシリアル通信接続またはパラレル通信接続とすることが可能であり、これらすべては、ストリーミング情報を伝送することができる。
【００２８】
入力／出力構成要素２０６には、タッチパネル（ｔｏｕｃｈ−ｓｅｎｓｉｔｉｖｅ  ｓｃｒｅｅｎ）、キー、ローラ（ｒｏｌｌｅｒ）、およびマイクロホンなどの様々な入力デバイス、ならびに音声ジェネレータ、振動デバイス、およびディスプレイを含む様々な出力デバイスが含まれる。以上に列挙したデバイスは、例であり、携帯情報機器２００上にすべてが存在する必要はない。さらに、本発明の範囲内で、その他の入力／出力デバイスを携帯情報機器２００に接続し、あるいは備えることができる。
【００２９】
本発明の一態様においては、システムキャッシュ局所性を大幅に高めるようにＨＭＭ処理を適合させるシステムおよび方法が提供される。したがって、システムキャッシュの書き出し（ｆｌｕｓｈ）が行われるまでに、より多くのＨＭＭ演算を行うことができる。したがって、一般的なシステムメモリに対しては以前に必要とされたよりも少ない回数しか呼出しが行われない。よって、処理速度が大幅に向上する。以上の改善を音声処理に関して説明するが、本発明の実施形態は、ＨＭＭを使用するあらゆる形態のパターン認識に関する処理を向上させるために実施することができる。
【００３０】
音声をモデル化するのに役立つモデルには、「飛越しを行わない３状態の左から右へ（ｔｈｒｅｅ−ｓｔａｔｅ  ｌｅｆｔ−ｔｏ−ｒｉｇｈｔ  ｗｉｔｈｏｕｔ  ｓｋｉｐｐｉｎｇ）」として知られる特定のＨＭＭトポロジを使用するものがある。このトポロジを図５および６に示している。本発明の実施形態においては、基本的に単一のＨＭＭに関して３つのフレームが評価されてから別のＨＭＭを評価するようにＨＭＭ評価の順序が変更される。これにより、キャッシュ局所性が大幅に向上し、したがって、処理速度が高められる。
【００３１】
図６は、隠れマルコフモデルブロック（ＨＭＭＢ）にグループ化された図５のモデルを示す図である。それぞれの太線の菱形４００により、音声ユニット（すなわち、音素）に対応するＨＭＭＢが示されている。各ＨＭＭＢ内で、各状態のフレームの識別番号が与えられている。したがって、ＨＭＭＢ＃１内に、状態０の３つのフレーム、状態１の３つのフレーム、および状態２の３つのフレームが存在している。ＨＭＭにおける状態の数とは異なるフレーム数を使用しても本発明の実施形態の利点は実現できると思われるが、フレーム数は、ＨＭＭ状態の数と等しいことが好ましい。さらに、菱形の形状が現れているのは、前述したとおり、前のポイントが評価されてからでないと、任意の所与のポイントを評価することができないからである。図６に示したＨＭＭＢのサイズは、使用される状態の数（３状態の左から右へのＨＭＭ）にマッチするように選択されている。異なるＨＭＭトポロジにより、異なる形状のＨＭＭＢが生じる可能性のあることを意図しており、これは、本発明の趣旨および範囲に含まれる。例えば、１０状態の左か右へのＨＭＭ（手書き認識などの何らかの他の形態のパターン認識に役立つ可能性がある）には、１０フレームのＨＭＭＢが適する。さらに、５つの状態を有するときとして使用されるトポロジは、各フレーム上で自らに遷移すること、次の状態に遷移すること、または次の状態の後の状態に遷移することが可能である。その場合、３フレームのＨＭＭＢが依然として使用可能であるが（ＨＭＭに対するどの入力も、出力に到達するのに少なくとも３つのフレームを要するので）、ＨＭＭＢの形状は、「幅」３フレーム、「高さ」５状態であることになる。
【００３２】
本発明の実施形態によれば、各ＨＭＭＢは、ユニットとして評価される。本明細書で使用するＨＭＭＢは、ＨＭＭ処理システム内のすべてのポイントのサブセットである。ブロックは、時間と状態の両方で互いに異なる少なくとも２つのポイントを含む。各ＨＭＭＢの評価は、前のＨＭＭＢの出力だけに依存する。
【００３３】
各ＨＭＭＢは、インターブロック入力（ｅｎｔｒｙ）ポイント、イントラブロック入力ポイント、インターブロック出力（ｅｘｉｔ）ポイント、およびイントラブロック出力ポイントを含む。図６を参照すると、ポイント４０２、４０８、および４１４は、他のＨＭＭＢからスコアまたは値を受け取ることができることから、インターブロック入力ポイントである。ポイント４０２、４０４、および４０６は、同一のＨＭＭ内の前のブロックからスコアを受け取ることができることから、イントラブロック入力ポイントである。ブロック４に対して、ブロック１は、同一のＨＭＭ内の前のブロックと考えられる。ポイント４０２は、ブロック内入力ポイントであるだけでなく、ブロック内入口ポイントでもあることに留意されたい。ポイント４０６、４１２、および４１８は、インターブロック出力ポイントである。というのは、これらのポイントは、ブロック５のような他のブロックのインターブロック入力ポイントに自らの値を与えることができるからである。最後に、ポイント４１４、４１６、および４１８は、イントラブロック出力ポイントと考えることができる。
【００３４】
ブロックの処理が開始する前に、インターブロック入力ポイントおよびイントラブロック入力ポイントで終わる最良経路（ｐａｔｈ）に関するスコアが、前もって算出される。さらに、その最良経路に沿った先行する状態に対するポインタが、入力ポイントの中に記憶されている。
【００３５】
ブロックの処理は、時間的に一番先のポイントで始まる。図６で、そのポイントには、４０２の符号が付けられている。ポイント４０２は、ポイント４０４のスコアに、ポイント４０２からの遷移先となることが可能なそれぞれのポイント（４０４、４０６）に関する遷移確率を掛けることによって処理される。次に、このスコアが、遷移先のポイント（ｔｒａｎｓｉｔｉｏｎｅｄ  ｐｏｉｎｔ）の既存の値と比較され、ポイント４０２を通るスコアが、遷移先のポイントの既存のスコアより高いかどうかが判定される。遷移先のポイントの既存のスコアより高い場合、その遷移先のポイントが、新しい最大値を反映するように更新され、ポイント４０２に関連するポインタが設定される。
【００３６】
ポイント４０２が処理されると、ポイント４０４を処理することができる。ポイント４０４の処理は、ポイント４０４が、同一のＨＭＭ内の直前のブロックからの対応するイントラブロック出力ポイントと、ブロック４０２からのスコアの大きい方に最初に設定されていることで、比較的単純明快である。ポイント４０６は、ポイント４０４と同様に処理される。ただし、ポイント４０６はブロック間出力ポイントであるため、ポイント４０６のスコアは、他のブロックのいくつかのブロック内入力ポイントを更新するのにも使用することができる。
【００３７】
ポイント４０８も、４０２が処理されると、処理することができる。ポイント４０４とポイント４０８の間の処理の相対順序は、設計上の選択の問題である。ポイント４０８は、処理に先立ち、ポイント４０２の遷移確率と合わせたポイント４０２と、ポイント４０４に結合する可能性があると想定されるすべての出力ポイントのなかで、最高スコアをとることで、ポイント４０２と多少、似通った仕方で処理される。この場合も、ポインタ、または他の適切なレコードが、最高スコアを生成したポイントを示すように設定される。ポイント４０８を処理することは、ポイント４０８のスコアに、ポイント４０８が遷移する際に可能な遷移確率を掛けて、可能性として、ポイント４１０および４１４の値を更新することを含む。
【００３８】
ポイント４１０、４１２、４１６、および４１８は、ポイント４０４および４０６と同様に処理される。さらに、ポイント４１４の処理は、ポイント４０８に関して前述したのと同様である。
【００３９】
ブロック１内のすべての処理が完了すると、出力（ｅｘｉｔ）スコア処理が行われる。具体的には、各インターブロック出力ポイントに関して、言語モデルが調べられる。言語モデルは、どの遷移が許容できるかを示し、音声ユニット間で遷移することに関する遷移確率も示す。したがって、例えば、言語モデルは、ブロック１の音声ユニットから他の音声ユニットに遷移する許容可能性（ａｌｌｏｗａｂｉｌｉｔｙ）および確率を示す。次に、この確率が、ポイント４０６のようなインターブロック出力ポイントのスコアと合併されて、その合併が、次の時間フレーム内のいずれかの許容可能な（言語モデルにより）痛―ブロック入力ポイントにおいて存在するスコアより高いかどうかが判定される。その合併が実際により高い場合、インターブロック入力ポイントが、新しい最大値を反映するように更新され、関連するポインタ、または他の適切なレコードが設定される。このプロセスが、インターブロック出力ポイント４１２および４１８に関して繰り返される。図６の破線で示すとおり、インターブロック出力ポイントは、同じ音声ユニットに関する時間的に次のブロックのインターブロック入力ポイントにも結合することが可能である（すなわち、４０６が４２０に結合する）ことに留意されたい。
【００４０】
ポイント４１６および４１８は、自らのスコアを同じ音声ユニットに関する時間的に次のブロックのイントラブロック入口ポイントに与える。最後に、ポイント４２０が、ポイント４０２に関して前述したとおりに処理され、プロセスは、次のブロックに進む。
【００４１】
ブロック１の処理が完了すると、好ましくは、別の音声ユニットに対応するブロックの処理が開始する。例示的なブロック処理順序をブロック１−２−３−４−５−６−７−８−９として図６に示している。ただし、本発明の範囲を逸脱することなく、他の順序も実施することができる。ポイントのいくつかは、グレーにされ、それらのポイントが、到達不可能であるか、または可能な終了状態につながらないことが示されていることに留意されたい。そのようなポイントを実際に処理しなければ、さらなる処理効率を実現することができる。
【００４２】
本発明を特定の実施形態に関連して説明してきたが、本発明の趣旨および範囲を逸脱することなく、形態および詳細の変更を行うことができることが、当分野の技術者には認識されよう。
【図面の簡単な説明】
【００４３】
【図１】本発明を実施することができる１つのコンピューティング環境を示すブロック図である。
【図２】本発明を実施することができる代替のコンピューティング環境を示すブロック図である。
【図３】６状態ＨＭＭを示す図である。
【図４】時間を水平軸として示した図３の６状態ＨＭＭを示す図である。
【図５】３状態ＨＭＭのトリオを示す図である。
【図６】本発明の実施形態による隠れマルコフモデルブロック（ＨＭＭＢ）を示す図である。
【符号の説明】
【００４４】
２００  携帯情報機器
２０２  マイクロプロセッサ
２０３  キャッシュメモリ
２０４  メモリ
２０６  入力／出力構成要素
２０８  通信インターフェース
２１０  バス
２１２  オペレーティングシステム
２１４  アプリケーションプログラム
２１６  オブジェクト記憶
４０２、４０４、４０６、４０８、４１０、４１２、４１４、４１６、４１８、４２０  隠れマルコフモデルブロックのポイント
【図１】
2004272251.tif 000003
【図２】
2004272251.tif 000004
【図３】
2004272251.tif 000005
【図４】
2004272251.tif 000006
【図５】
2004272251.tif 000007
【図６】
2004272251.tif 000008