(57)【特許請求の範囲】
【請求項１】
アナログ信号の認識対象音声を入力する音声入力装置と、
上記音声入力装置に接続され、上記アナログ信号の認識対象音声をディジタル信号に変換して上記ディジタル信号を順序付けられた音声フレームに変換する変換装置と、
音声認識プログラムと複数の音声候補の各々を表す音素列とを格納し、各音素列が順序付けられた音素を含む記憶装置と、
上記音声認識プログラムを実行して上記音声入力装置から入力された上記認識対象音声を上記複数の音声候補と照合する、上記記憶装置と上記変換装置に接続された照合装置とを具備し、
処理装置が、
上記順序付けられた音声フレームを上記記憶装置に記憶する記憶手順と、
上記順序付けられた音声フレームを上記音素列と照合する照合手順と、
照合結果を提供する提供手順とを含む上記音声認識プログラムをＨＭＭ（Hidden Marcov Model）に基づいて実行し、
上記照合手順が、
上記順序付けられた音声フレームの一つを上記音素列の各々の部分と比較し、上記部分が順序付けられた連続する音素列範囲を含む比較手順と、
比較結果に基づいて、上記フレームの一つと上記音素列の各々の部分との間の類似度を表す尤度を取得する取得手順と、
上記尤度と上記音素列の各々の上記部分の異なる組み合わせに対応した複数の遷移確率とに基づいて、上記音素列の各々の上記部分と上記認識対象の音声との間の類似度を表す評価値を計算する計算手順と、
上記部分の先頭の音素に対する評価値が上記部分の中の末尾の音素の評価値よりも小さい場合に、上記音声フレームの次の音声フレームに対して照合されるべき部分を上記音素列の中にある新たな部分に変える変更手順であって、上記新たな部分が上記部分から除去した先頭の音素を含まず、変更後の部分の中に変更前の部分の次の音素を含んでいる変更手順を備えていることを特徴とする音声認識システム。
【請求項２】
上記記憶装置は、上記複数の音声候補を表す上記音素列と上記音声認識プログラムを格納するＲＯＭと、上記順序付けされた音声フレームが記憶されるＲＡＭとを含み、上記ＲＯＭに格納された上記複数の音声候補を表す上記音素列と上記音声認識プログラムとが上記音声認識プログラムの初期化に応じて上記ＲＡＭに転送されることを特徴とする請求項１に記載の音声認識システム。
【請求項３】
上記ＲＯＭは、上記音声認識プログラムを格納する第１のＲＯＭと、上記複数の音声候補を表す上記音素列を記憶する第２のＲＯＭとを含み、
上記変換装置、上記照合装置及び上記第１のＲＯＭが一個の半導体チップ上に形成されていることを特徴とする請求項２に記載の音声認識システム。
【請求項４】
上記照合装置がＣＰＵであることを特徴とする請求項３に記載の音声認識システム。
【請求項５】
上記システムがナビゲーションシステムであることを特徴とする請求項４に記載の音声認識システム。
【請求項６】
認識対象音声を認識するために認識対象音声を複数の音声候補の各々と照合する音声認識方法であって、
上記複数の音声候補の一つを、上記認識対象音声を分割することによって得る順序付けされた複数の音声フレームと順次照合するステップ（ａ）と、
他の複数の音声候補に対して上記ステップ（ａ）を実行するステップ（ｂ）とを具備し、
上記ステップ（ａ）は、ＨＭＭ（Hidden Marcov Model）に基づいて実行され、
上記ステップ（ａ）は、
上記順序付けされた複数の音声フレームの一つと、上記複数の音声候補の一つを表す複数の音素列の中にある順序付けされた連続する音素列範囲との間の類似度を表す複数の尤度を決定するステップ（ａ１）と、
上記ステップ（ａ１）で決定された複数の類似度と上記順序付けされた連続する音素列範囲の異なる組み合わせに対応した複数の遷移確率とに基づいて、上記順序付けされた連続する音素列範囲と上記認識対象音声との間の類似度を表す複数の評価値を決定するステップ（ａ２）と、
上記順序付けされた連続する音素列範囲の中にある先頭の音素に対する評価値が上記順序付けされた連続する音素列範囲の中にある末尾の音素の評価値よりも小さい場合に、上記音声フレームの次の音声フレームに対して照合されるべき連続する音素列範囲を新たな連続する音素列範囲に変更するステップ（ａ３）であって、上記新たな連続する音素列範囲が、変更前の連続する音素列範囲から除去した先頭の音素を含まず、変更後の連続する音素列範囲の中に変更前の連続する音素列範囲の次の音素を含んでいるステップ（ａ３）とを備え、
上記順序付けされた連続する音素列範囲は、上記ステップ（ａ）が上記順序付けされた複数の音声フレームの中の次の音声フレームに対して実行される場合に用いられることを特徴とする音声認識方法。
【請求項７】
上記ステップ（ａ３）は、上記順序付けされた連続する音素列範囲の中にある先頭の音素に対する評価値が上記順序付けされた連続する音素列範囲の中にある末尾の音素の評価値よりも小さくない場合、今度は、上記順序付けされた連続する音素列範囲を、順序付けされた新たな連続する音素列範囲として修正することなく決定するステップを含むことを特徴とする請求項６に記載の音声認識方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
【０００２】
本発明は、音素モデルおよび言語モデルを用いて、入力された音声を認識する音声認識方法およびそれを用いた音声認識システムに関する。
【従来の技術】
【０００３】
近年、携帯型音声翻訳機、個人デジタル支援装置（ＰＤＡ）に代表される小型情報機器、あるいはカーナビゲーションシステムその他の多くの装置あるいはシステムにおいて、音声認識機能あるいは音声認識装置が組み込まれつつある。
【０００４】
従来の音声認識方法は、例えば国際電気通信基礎技術研究所編集の「自動翻訳電話」（オーム社、平成６年発行、第１０頁から第２９頁）に解説されているように、主として、音素モデルと言語モデルを予め記憶し、入力された音声をこれらの記憶されたモデルに基づいて認識する。言語モデルは、異なる単語等の読みおよび文法上の制約を含み、各音素モデルは、複数の音声認識単位のそれぞれのスペクトル特性等を含む。音声認識単位としては、音素あるいはそれより小さな音素片がよく使用される。以下では、音声認識単位として音素を用いる場合を例にして従来の技術を説明する。各音素に対して記憶されたスペクトル特性等もその音素の音素モデルと呼ぶことがある。
【０００５】
言語モデルにより許される複数の音素列が決定される。音声認識時にこれらの許される複数の音素列の一つにそれぞれ対応する複数の音素モデル列が生成され、各音素モデル列と入力音声との照合が行われ、最もよく一致する音素モデル列が選択される。各音素モデル列と入力音声の照合においては、入力音声をフレームと呼ばれる区間に区分し、各フレームを一つの音素モデル列を構成する複数の音素モデルと順次照合され、その音素モデルと入力音声の類似度を表す評価値が計算される。この照合を異なる音素モデル列に対して繰り返される。この照合がさらに異なるフレームに対して繰り返される。各音素モデル列の各音素モデルと入力音声のあるフレームとの照合により得られた評価値は、次のフレームにおける照合にも使用される。
【０００６】
このように、従来の音声認識方法では、入力音声の全フレームを、全音素モデル列内の全音素モデルと照合するために処理時間が長くなる。さらに、各音素モデル列内の各音素モデルと入力音声のあるフレームとの照合により得られる評価値は、次のフレームでの照合のために記憶する必要がある。このために、音素モデル列の総数が多くなるほど必要なメモリ量が多くなる。
【０００７】
上記処理時間を低減するために、入力音声の各フレームに対する照合時に、照合すべき音素モデルを、最終的な認識結果の候補となる見込みのある一部の音素モデルのみに制限するビーム探索法と呼ばれる方法が知られている。具体的には、全音素モデル列に対してあるフレームで計算された評価値によりそれぞれの音素モデルを次のフレームでの照合対象に残すかどうかが判定される。その判定方法として、評価値が高い音素モデルから順に一定数の音素モデルを残す第１の方法、評価値の閾値を計算し、この閾値より高い評価値を有する音素モデルのみを残す第２の方法あるいは両者の方法を併用する方法等が用いられる。
【発明が解決しようとする課題】
【０００８】
従来のビーム探索法では、一部の音素モデルを選択するための処理に時間が掛かるという問題がある。すなわち、評価値が高い音素モデルから順に一定数の音素モデルを残す上記第１の方法では、全音素モデルに対する評価値をソートしなければならない。一般にソート処理は時間が掛かる。さらに、閾値よりも高い評価値を有する音素モデルのみを残す上記第２の方法でも、閾値を求める計算が必要になり、この計算に時間が掛かる。
本発明の目的は、計算時間あるいは必要となるメモリ容量を低減できる音声認識方法およびそれを用いた音声認識システムを提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明による音声認識方法は、一つの部分音声（たとえばフレーム）と音声候補を表す複数の音声認識単位（たとえば音素あるいは音素片）との照合にあたっては、これらの複数の音声認識単位の一部と上記部分音声とを照合する。このために、先行する部分音声との照合結果に応じて、次の部分音声と照合されるべき一部の音声認識単位を動的に選択する。この結果、照合が必要な一部の音声認識単位についてのみ照合を行えばよく、照合のための処理時間とメモリ領域を大幅に削減できる。
【００１０】
すなわち、本発明による音声認識方法は、
認識対象音声を認識するために認識対象音声を複数の音声候補の各々と照合する音声認識方法であって、
上記複数の音声候補の一つを、上記認識対象音声を分割することによって得る順序付けされた複数の音声フレームと順次照合するステップ（ａ）と、
他の複数の音声候補に対して上記ステップ（ａ）を実行するステップ（ｂ）とを具備し、
上記ステップ（ａ）は、ＨＭＭ（Hidden Marcov Model）に基づいて実行され、
上記ステップ（ａ）は、
上記順序付けされた複数の音声フレームの一つと、上記複数の音声候補の一つを表す複数の音素列の中にある順序付けされた連続する音素列範囲との間の類似度を表す複数の尤度を決定するステップ（ａ１）と、
上記ステップ（ａ１）で決定された複数の類似度と上記順序付けされた連続する音素列範囲の異なる組み合わせに対応した複数の遷移確率とに基づいて、上記順序付けされた連続する音素列範囲と上記認識対象音声との間の類似度を表す複数の評価値を決定するステップ（ａ２）と、
上記順序付けされた連続する音素列範囲の中にある先頭の音素に対する評価値が上記順序付けされた連続する音素列範囲の中にある末尾の音素の評価値よりも小さい場合に、上記音声フレームの次の音声フレームに対して照合されるべき連続する音素列範囲を新たな連続する音素列範囲に変更するステップ（ａ３）であって、上記新たな連続する音素列範囲が、変更前の連続する音素列範囲から除去した先頭の音素を含まず、変更後の連続する音素列範囲の中に変更前の連続する音素列範囲の次の音素を含んでいるステップ（ａ３）とを備え、
上記順序付けされた連続する音素列範囲は、上記ステップ（ａ）が上記順序付けされた複数の音声フレームの中の次の音声フレームに対して実行される場合に用いられる。
【発明の実施の形態】
【００１１】
図１において、１０１は音声入力用マイク、１０２は入力された音声に対するアンプおよびＡ／Ｄ変換器、１０３が入力された音声を一時的に蓄積するためのＦＩＦＯ型のバッファである。１０４は、認識候補音声を表す単語等の語彙と文法上の制限を記憶した辞書・文法ファイル、１０５は複数の音声認識単位に対する音素モデルを記憶した音素モデルファイルであり、ファイル１０４と１０５は、いずれも半導体ＲＯＭまたはＣＤ−ＲＯＭなどのＲＯＭにより構成される。本実施例では音声認識単位として音素を使用する。１０７は音声認識プログラムを記憶したメモリであり、ＲＯＭにより構成される。１０８はプログラムがワーク用に用いるメモリであり、書き換え可能なランダムアクセスメモリ（ＲＡＭ）により構成される。１０９は表示装置（図示せず）へ認識結果データを転送しあるいは他の装置に認識結果データを通信路を介して伝送するためのいろいろの外部インターフェース回路の一つを例示する。１０６は以上の回路あるいはメモリをバス１１０あるいは図示しない信号線を介して制御するマイクロプロセッサ（ＣＰＵ）である。図示された装置の内、マイク１０１以外の部分は、単一の半導体チップ上に集積回路技術により構成されることが望ましい。
【００１２】
ＰＯＷＥＲ−ＯＮ−ＲＥＳＥＴなどのコマンドによりＣＰＵを初期化すると、ＣＰＵは、ＲＯＭ１０７から音声認識プログラムを、ＲＡＭ１０８に転送する。これはＲＡＭ１０８の方がＲＯＭ１０７よりもアクセス速度が速いためである。このプログラムの転送完了後は、ＣＰＵは転送されたプログラムを実行する。
【００１３】
音声認識プログラムの処理の流れを図２のフローチャートを用いて説明する。このプログラムが起動されると、まず音素モデルファイル１０５をＲＡＭ１０８に読み込む（２０１）。音素モデルファイル１０５には、音声の認識単位として使用される複数の音素のそれぞれを分析して得られる特徴ベクトルを保持する。この特徴ベクトルは、後に説明する入力音声に対して生成されるものと同じものである。本実施の形態では、音声認識は、通常よく使用される隠れマルコフモデル（Ｈｉｄｄｅｎ Ｍａｒｃｏｖ Ｍｏｄｅｌ）（以下、ＨＭＭモデルと呼ぶことがある）に基づいて行われる。このモデルに従う音声認識では、各音素に対する音素モデルは、さらに、その音素からその音素もしくは他の音素への遷移確率を有する。
【００１４】
その後、辞書・文法ファイル１０４をＲＡＭ１０８に読み込む（２０２）。辞書・文法ファイル１０４は、認識対象の単語等の語彙を含む。各単語等は、認識すべき単語を構成する複数の音声認識単位を表す文字列からなり、具体的には、認識すべき単語を構成する一連の音素を表す一連のローマ字からなる。例えば、氏名「鈴木」は、３つの音素の列「ｓｕ ｚｕ ｋｉ」で表される。なお、このファイルはさらに文法上の制限も含むが、以下では、単語のみを用いた音声認識処理について説明し、文法上の制限を使用した音声認識の説明は省略する。
【００１５】
次に、辞書・文法ファイル１０４内の各単語を対応する音素モデル列に変換する（２０３）。この変換では、ステップ２０２で読み込まれた各単語を構成する音素列のそれぞれの音素が、ステップ２０１で読み込まれたそれぞれの音素に対する音素モデルで置換され、各単語を構成する音素列に対応する音素モデル列が得られる。
【００１６】
マイク１０１から入力された音声は、アンプおよびＡ／Ｄ変換器１０２により増幅され、さらにディジタル信号に変換される。得られたディジタル信号は、ＦＩＦＯバッファ１０３を介してあらかじめ決められた時間単位でサンプリングされ、数ポイントのサンプリングされた音声情報がまとめてＲＡＭ１０８に送られる（２０５）。このまとめられた数ポイントの音声情報はフレームと呼ばれる。１フレームは、通常１５〜３０ｍｓ程度の期間の音声情報である。次のフレームは、通常そうであるように、１フレーム時間より短い時間（５〜２０ｍｓ程度）だけシフトして入力音声から生成される。各フレームのスペクトルが分析され、そのフレームの特徴をあらわす特徴ベクトル列が生成される（２０６）。この分析には、一般的に用いられている線形予測分析（Ｌｉｎｅａｒ Ｐｒｅｄｉｃｔｉｖｅ Ｃｏｒｄｉｎｇ−ＬＰＣ）が使用され、特徴パラメータとしては、ＬＰＣケプストラムが生成される。しかし、本発明は他の音声分析も使用でき、特徴ベクトルとしてもＬＰＧデルタケプストラム、メルケプストラム、対数パワーなども用いることができる。
【００１７】
生成された特徴ベクトル列と、ステップ２０３により求められた各単語を構成する音素モデル列にしたがって、各単語を構成する音素のそれぞれと入力されたフレームとがＨＭＭモデルで定められる方法に従って照合される。すなわち、それぞれの音素と入力フレームとの間の尤度が算出され、その尤度に基づいて、その単語に対応する音素列の一つの音素と入力フレームとの類似度を表す複数の評価値が計算される（２０７）。この計算の詳細は後に説明する。この照合は、辞書・文法ファイル１０４に登録されたすべての単語に対して実行される。その後、ステップ２０５から２０７が後続のフレームに対して繰り返される。この繰り返しの中でステップ２０４において、入力音声が終了したか否かが入力音声のパワー値に基づいて判定される。入力音声が終了した場合は、それまでの照合結果に基づいて最も高い評価値を有する音素を含む単語が選択され（２０８）、図示しない表示装置またはデータ処理装置に外部インターフェース回路１０９を介して転送される（２０９）。上記照合処理２０７では、それ自体公知の前向き計算アルゴリズムに従って音声モデル列の各音素に対する評価値を算出する。本実施の形態では、この評価値を算出する対象の音素モデルを簡単な方法で制限するところに特徴がある。
【００１８】
以下では、前向き計算アルゴリズムを用いた、本実施の形態による評価値の計算方法を説明する前に、同じアルゴリズムを用いた従来の評価値の計算方法を説明する。
【００１９】
図５は、前向き計算アルゴリズムを用いた、従来の各音素モデル列内の各音素モデルに対する評価値の計算方法を示すトレリス図である。ＨＭＭモデルに基づく音声認識では、いずれかの単語に対応する音素モデル列を構成する複数の音素モデルの各々が一つの状態を表すと見なして処理される。図５において、縦軸は一つの単語に対応する一つの音素モデル列を構成する４つの音素モデルに対応する状態１，２，，４を表す。これらの４つの状態は、その音素モデル列を構成する音素モデルの順番と同じ順に順序付けられている。例えば、状態１、、、４は、その音素モデル列に出現する第１、、、第４の音素モデルに対応する。横軸は順次入力されるフレームを表す。
【００２０】
図中の丸印は、一つのフレームと一つの状態との組み合わせに対応して設けられ、その中の数字は、そのフレームに対する、その状態に対応する音素モデルの評価値を表し、その丸印の右肩には、そのフレームとその音素モデルとの間の、後に説明する方法で計算される尤度が示されている。丸印の右向きの矢印に付加された数字は、その状態が次のフレームにおいて同じ状態に遷移する確率で、この遷移確率は入力フレームに依らないで予め決定されている。同様に、丸印の右下向きの矢印は、その状態が次のフレームにおいて次の状態に遷移する確率で、この遷移確率も入力フレームに依らないで予め決定されている。
【００２１】
フレーム０に対する各状態の評価値は初期値として予め与えられる。０フレームは、入力音声信号の先頭と考えられるため、演算対象の単語を構成する音素モデル列の先頭の音素モデル（状態１）のみの評価値を“０”とし、他は“−∞”を初期値として与えておく。これは入力音声の最初のフレームはかならず先頭の音素モデルと一致するであろうと想定していることになる。フレーム１以降のフレームにおける各状態の評価値は、そのフレームの一つ前のフレームに対して計算された、当該一つ前のフレームとその状態とに関する尤度と、その状態に関連して予め定められた遷移確率により以下のようにして決定される。
【００２２】
図６において、ある単語を構成する音素モデル列内の二つの状態ｉ、ｊに対するあるフレームｎでの評価値がそれぞれＡ、Ｂであると仮定する。これらの評価値は、このフレームに先行するフレームにおける照合により決まるか、あるいはこれらの状態に対する初期値として与えられる。フレームｎと各状態ｉ、ｊとの間の尤度が計算される。尤度は、各状態が対応する音素モデルとフレームｎの間の類似度であり、具体的には、それ自体公知であるように、各状態が対応する音素モデルの特徴ベクトルと、フレームｎを分析して得られる特徴ベクトルとの間の距離で表される。この距離は実際にはユークリッド距離などである。ユークリッド距離は、それ自体公知であるように、二つのベクトルの各次元の座標の差の２乗の和により与えられる。またそれぞれの次元に正規化が必要な場合はそれぞれの次元があらかじめ決められた係数によって正規化された後に２乗加算される。これらの係数には、特長ベクトルとして前記したＬＰＣケプストラムが使用される場合、これの係数には、このケプストラムの係数が使用される。ここでは、状態ｉ、ｊとフレームｎとの間の尤度は、それぞれＮｉ，Ｎｊと仮定する。
【００２３】
次のフレームｎ＋１に対する状態ｉの評価値Ｃは、この状態ｉに先行する状態がない場合には、上記尤度Ｎｉと、状態ｉから状態ｉへの遷移確率Ｐｉｉとの和で表される。フレームｎ＋１に対する状態ｊの評価値は、次の方法により計算される。今、フレームｎにおける状態ｉからフレームｎ＋１における状態ｊに遷移したと仮定したとき、フレームｎ＋１における状態ｊの評価値Ｄｉは、フレームｎにおける状態ｉの評価値Ａ、フレームｎに対する状態ｉの尤度Ｎｉ、状態ｉからｊへの遷移確率Ｐｉｊの和により与えられる。一方、フレームｎにおける状態ｊからフレームｎ＋１における状態ｊに遷移したと仮定したとき、フレームｎ＋１における状態ｊの評価値Ｄｊは、フレームｎにおける状態ｊの評価値Ｂ、フレームｎに対する状態ｊの尤度Ｎｊ、状態ｊからｊへの遷移確率Ｐｊｊの和により与えられる。最終的には、フレームｎ＋１での状態ｊに対する評価値は、以上の評価値ＤｉとＤｊの内の大きな方が使用される。なお、フレームｎ＋１における状態ｉ、ｊに対する尤度も計算されるが、これらは、次のフレームｎ＋２におけるこれらの状態の評価値を計算するのに使用される。
【００２４】
図５には、フレーム０から５に対してこのようにして計算された評価値が示される。最終フレームまで行った場合に、各単語に対する複数の評価値の内の最大の評価値がその単語に対する評価値として使用される。図５の例では３１９がこの単語に対する評価値となる。なお、図５では、各状態の遷移先としては、同じ状態あるいは次の状態という二つの状態のみを仮定したが、一般には、各状態はより多くの状態に遷移可能である。しかし、この場合にも同様にして遷移後の各状態の評価値が計算される。
【００２５】
このようにして得られたトレリス図に基づいて、各フレーム毎に最大の評価値を有する状態を選択し異なるフレームに対して選択された状態を連ねて得られるパスは、ビタビ経路として知られている。例えば、図５の場合、（フレーム０、状態１）、（フレーム１、状態２）、（フレーム２、状態２）、（フレーム３、状態３）、（フレーム４、状態３）、（フレーム５、状態４）を連ねた経路がビタビ経路である。各フレームでの最大の評価値を有する状態が、そのフレームに対する、処理中の単語内の最も類似した音素を表すことになる。したがって、ビタビ経路により連結された状態列が、処理中の単語に関する、入力音声に類似する音素列を表すことになる。
【００２６】
以上の計算から分かるように、従来の評価値の計算方法では、計算対象の音素モデル列に対応するすべての状態の評価値をすべてのフレームに渡り計算する必要がある。従って、必要な演算回数は、次式で与えられ、単語数、フレーム数が増大すると計算回数が増大する。また、途中の評価値を記憶するためのメモリ量も同様に増大する。
【００２７】
演算回数＝フレーム数×単語数×各単語に対する音素モデル数の平均値
本実施の形態では、このような問題点を軽減するために、照合処理２０７（図２）では、各単語に対応する音素モデル列を構成する全ての音素モデルの一部に対してのみ評価値を算出するように、評価値を計算する対象の音素モデルを制限する。以下、この処理２０７を説明する。
【００２８】
図３に示すように、照合処理２０７は、辞書・文法ファイル１０４に登録された各単語について、その単語に対応する音素モデル列の内、照合対照として選ばれた一部の音素モデル群の各々と入力フレームとの間の評価値を算出する（４０４）。各単語に対する音素モデル列の内、照合対象とする音素モデル群は、最初のフレームに対しては、その音素モデル列の先頭に位置する所定の複数（ｍ＋１）の音素モデルとする。処理４０４での処理結果に基づいて、同じ単語に対する音素モデル列の内、次のフレームにおいて照合対象とする音素モデル群の先頭の音素モデルを決定する（４０６）。その後、次の単語を照合対象として選んで（４０７）、以上の処理４０４、４０６を繰り返す。この繰り返しは、辞書・文法ファイル１０４内の全ての単語がなくなるまで行われる（４０１）。
【００２９】
より具体的には、図４に示すように、処理４０４では、処理中のフレームが最初のフレームか否かが判断され（８０１）、もしそうであるならば、照合対象の単語に対応する音素モデル列の内、照合開始すべき音素モデルの位置ｎとして、値１が設定される。すなわち、この音素モデル列の先頭の音素モデルから照合を開始することが指定される。もし処理中のフレームが最初のフレームでない場合には、その最初のフレームに対して処理４０６により決定された、照合開始位置ｎの値が使用される。処理８０３では、こうして決定された第ｎ音素モデルから第（ｎ＋ｍ）音素モデルのそれぞれと入力フレームに対する評価値Ｐｎ（Ｉ）〜Ｐｎ＋ｍ（Ｉ）を計算する。ここで、Ｉはフレームの番号である。このときの計算は図５に関連して説明した従来の方法が使用される。また、これらの音素モデルの各々と入力フレームとの間の尤度も計算されるのも従来と同じである。
【００３０】
その後、処理４０６では、同じ単語に対する次のフレームでの照合開始位置が、これらの決定された評価値を使用して決定される。すなわち、照合したｍ＋１個の音素モデル群の両端に位置する、第ｎ音素モデルと第（ｎ＋ｍ）音素モデルに対する評価値Ｐｎ（Ｉ）とＰｎ＋ｍ（Ｉ）とを比較する（８０５）。後者が前者より大きければ、次のフレームでの照合開始位置ｎの値を１だけ大きくする（８０６）。判定８０４が成立したときには、入力フレームはすでに第ｎ音素モデルよりも後続の音素モデルに類似するようになったと判断されるからである。この判定が成立しないときには、照合開始位置ｎは変更されない。図５に関して説明したように、ある単語に対する音素モデル列と入力音声との照合においては、ビタビ経路を正しく判別でき、その経路上の各状態（音素モデル）に対する評価値が正しく計算できればよい。上記判定８０５が成立したことは、処理中の単語に対するトレリス図上のビタビ経路が、処理中のフレームにおいては、第ｎ音素モデルより後の音素モデルを通過するようになったことを意味すると考えることができる。したがって、後続のフレームにおいては、第ｎ音素モデルに関する評価値の計算を省略しても、処理中の単語に関する評価値の計算に誤りが出ないと期待される。
【００３１】
以上の処理が、後続の各フレームに対して繰り返される。但し、判定８０５の前に、判定８０４を実行し、新たに照合対象に変更できる他の状態があるか否かを判定する。具体的には、現在の照合対象の音素モデル群内の最後に位置する音素モデルの番号（ｎ＋ｍ）が、処理中の単語に対する状態の総数に等しいか否かを判定する。すなわち、処理中の音素モデル列の最後に位置する第（ｎ＋ｍ）音素モデルが、処理中の単語に対する音素モデル列の最後の音素モデルであるか否かを判定する。もし、この判定が成立すると、上記処理８０５、８０６は実行しない。したがって、その後に入力されるフレームがあるときには、音素モデル列の最後に位置する（ｍ＋１）個の音素モデルに対する評価値の算出を続けることになる。こうして、一つのフレームに対する一つの単語に対応する音素モデル列との照合が終了する。
【００３２】
例えば、図７は、図５に示した音素モデル列と同じ入力フレーム列０，１，，，との間において、ｍ＋１＝２とした場合のトレリス図である。状態１から４の内、ｍ＋１＝２個の状態のみに対して以下の処理がなされる。
【００３３】
最初のフレーム０に対しては、処理８０１での判定が成立し、処理８０２において、状態１，２に対する照合開始位置ｎがともに１に設定され、状態１と２が照合対象に選ばれる。しかし、処理８０３では、これらの状態に対する評価値Ｐ１（０）〜Ｐ２（０）の計算は行われないで、状態１、２に対して予め定められた初期値０および−∞がそのままそれらの状態の評価値として使用される。この処理８０３では、フレーム０に対する状態１，２の尤度が計算される。これらの尤度はここではそれぞれ３０，２０と仮定している。現在の照合対象音素モデル群に対しては判定８０４は成立しない。上記の二つの評価値に対しては判定８０５は成立しないので、照合開始位置ｎは変更されないで、フレーム０に対するこの単語の照合が終了する。
【００３４】
次のフレーム１に対して同じ単語が照合されるときには、判定８０１は成立しない。処理８０３では、第１から第２の音素モデルに対する評価値Ｐ１（１）〜Ｐ２（１）が計算される。ここでは、これらの評価値はそれぞれ３３，３７となる。処理８０３では、フレーム１と状態１，２の各々との尤度も計算され、それらはそれぞれ１０、４０となると仮定している。現在の照合対象音素モデル群に対しては判定８０４は成立しない。上記二つの評価値に対しては判定８０５が成立するために、処理８０６により、照合開始位置ｎは２に更新される。
【００３５】
この時の状態１と状態２に対する評価値を比較すると、状態２の評価値が大きい。つまり、入力フレームは状態２により類似していると考えられる。もし、このとき実際に入力フレームが状態２と一致するならば、状態１の評価値はビタビ経路探索では単語内の最終状態の確率値には影響しないと考えられる。よって、次のフレーム２に対して照合を開始する状態を次の状態に進める。
【００３６】
次のフレーム２に対して同じ単語が照合されるときには、判定８０１は成立しない。照合開始位置ｎが２に更新されたので、処理８０３では、第２から第３の音素モデルに対する評価値Ｐ２（２）〜Ｐ３（２）が計算される。ここでは、これらの評価値はそれぞれ８５，８４となると仮定している。処理８０３では、フレーム２と状態２，３の各々との尤度も計算され、それらはそれぞれ５０、４０となると仮定している。現在の照合対象音素モデル群に対しては判定８０４は成立しない。上記二つの評価値に対しては判定８０５が成立しないために、処理８０６が実行されず、照合開始位置ｎは２のままである。
【００３７】
次のフレーム３に対して同じ単語が照合されるときには、判定８０１は成立しない。照合開始位置ｎが２のままであるので、処理８０３では、第２から第３の音素モデルに対する評価値Ｐ２（３）〜Ｐ３（３）が計算される。ここでは、これらの評価値はそれぞれ１４２，１４３となると仮定している。処理８０３では、フレーム３と状態２，３の各々との尤度も計算され、それらはそれぞれ１０、９０となると仮定している。現在の照合対象音素モデル群に対しては判定８０４は成立しない。上記二つの評価値に対しては判定８０５が成立するために、処理８０６が実行され、照合開始位置ｎは３に更新される。
【００３８】
次のフレーム４に対して同じ単語が照合されるときには、判定８０１は成立しない。照合開始位置ｎが３に更新されたので、処理８０３では、第３から第４の音素モデルに対する評価値Ｐ３（４）〜Ｐ４（４）が計算される。ここでは、これらの評価値はそれぞれ２４１，２４０となると仮定している。処理８０３では、フレーム４と状態３，４の各々との尤度も計算され、それらはそれぞれ７０、３０となると仮定している。現在の照合対象音素モデル群に対しては判定８０４は成立しない。上記二つの評価値に対しては判定８０５が成立しないために、処理８０６は実行されず、照合開始位置ｎは３のままである。
【００３９】
次のフレーム５に対して同じ単語が照合されるときには、判定８０１は成立しない。照合開始位置ｎは３のままであるので、処理８０３では、第３から第４の音素モデルに対する評価値Ｐ３（５）〜Ｐ４（５）が計算される。ここでは、これらの評価値はそれぞれ３１８，３１９になると仮定している。処理８０３では、フレーム５と状態３，４の各々との尤度も計算される。図では、それらの尤度は省略している。現在の照合対象音素モデル群に対しては判定８０４が成立するために、処理８０５、８０６は実行されない。照合開始位置ｎは３のままである。さらに後続のフレームがある場合にもフレーム５に対するのと同じ処理が実行される。
【００４０】
フレーム５までの入力音声に対する、この処理中の単語に対する評価値は、以上で得られた評価値の最大値、今の場合には３１９となる。この値は、図５に示したように、従来の計算方法により得られる値と同じである。しかし、以上の計算から明らかなように、本実施の形態では、各フレームに対しては、各単語に対する音素モデル列内の全モデル（あるいはその単語に対する全状態）の内、上記所定数（ｍ＋１）の音素モデル（あるいは状態）についてのみ、評価値および尤度を計算する。したがって、各単語に対する音素モデルの総数（あるいは状態の総数）の平均値を例えば１０ないし１２とし、ｍ＋１＝２とすると、本実施の形態での計算回数は、図５に示した従来方法が必要とする計算回数の約１／５ないし１／６になる。同様に、途中の計算結果を保持するためのバッファの容量も、図５を用いて説明した従来方法に比べて１／５ないし１／６となる。さらに、従来のビーム探索方法に比べても、計算回数あるいは必要なメモリ容量の点で有利である。
【００４１】
変形例
本発明は、以上の実施の形態に限定されるものではなく、以下に例示するいくつかの変形例を含めて他のいろいろの形態で実施できる。
【００４２】
（１）照合対象の音素モデルを変更すべきか否かに関する上記判定８０５（図４）に代えて、次の方法も採用できる。すなわち、第ｎから第（ｎ＋ｍ）音素モデル群に対する評価値Ｐｎ（Ｉ）〜Ｐｎ＋ｍ（Ｉ）の内、最大の評価値を有する音素モデルを検出し、その音素モデルがそれらの音素モデル群の中央より末尾側に位置するか否かを判別する。すなわち、その最大の評価値を有する音素が、第（ｎ＋ｇ）番の音素モデルであるときには、ｇ＞ｍ／２が成立するか否かを判定する。もし、最大の評価値を有する音素モデルが、音素モデル群の末端側にあれば、処理８０６（図４）を実行し、次のフレームに対する照合開始位置ｎを１だけ更新する。なお、ｍが１に等しいときには、この実施の形態での判定結果は、実施の形態１での判定結果と一致する。従って、本実施の形態の結果が実施の形態１と異なるためには、（ｍ＋１）は２より大きいことが必要である。この変形例に記載した、照合対象の音素モデルを変更すべきか否かに関する判定方法は、先に実施の形態で述べた判定方法８０５よりも正確に照合対象の先頭位置の切り替えの要否を判断できる。しかし、先に実施の形態で述べた方法は計算が簡単ではある。
【００４３】
（２）上記変形例１において、照合開始位置ｎを１だけ更新するのではなく、最大の評価値を持つ音素モデルを照合対象音素モデル群のほぼ中央にするように状態開始位置ｎを更新することも可能である。この場合も、（ｍ＋１）は２より大きいことが必要である。この方法は、実施の形態で述べた、照合対象の音素モデルを変更すべきか否かに関する判定方法あるいは上記変形例１に判定方法よりもより正確に照合対象の切り替えの要否を判定することができる。
【００４４】
（３）実施の形態および変形例のいずれにおいても、音声認識単位として音素が使用された。すなわち、辞書・文法ファイル１０６には、各単語を構成する音素列を表す文字列が記憶され、音素モデルファイル１０５にはいろいろの音素のＨＭＭモデルが記憶され、音声認識プログラムは、これらのファイルを使用して各単語に対応する音素モデル列を生成した。しかし、本発明は、音声認識単位として、音素より小さな単位である音素片を使用する音声認識システムにも適用できる。すなわち、音素モデルファイル１０５には、音素より小さな単位である音素片に対するモデルを記憶する。例えば、音素「ｓｕ」に代えて、音素片「ｓｓ」「ｓｕ」が記憶され、音素「ｚｕ」に代えて音素片「ｚｚ」「ｚｕ」が記憶され、音素「ｋｉ」に代えて音素片「ｋｋ」「ｋｉ」が記憶される。音声認識プログラムは、単語「ｓｕ ｚｕ ｋｉ」に対応して音素片列「ｓｓ」「ｓｕ」「ｚｚ」「ｚｕ」「ｋｋ」「ｋｉ」を生成する。この場合にも各音素片を実施の形態１における一つの状態と見なして処理される。
【発明の効果】
【００４５】
以上から明らかなように、本発明によれば、同じ認識対象の音声に対する複数の音声認識単位と入力音声との照合に必要な計算時間を短くでき、また、計算に必要なメモリ容量も減らすことができる。
【図面の簡単な説明】
【００４６】
【図１】  本発明による音声認識方法を使用する音声認識システムの概略ブロック図である。
【図２】  図１の装置に使用される音声認識プログラムの概略フローチャートである。
【図３】  図２のフローチャート内の照合処理（２０７）の概略フローチャートである。
【図４】  図３のフローチャート内の評価値計算処理（４０４）と照合開始位置更新処理（４０６）との概略フローチャートである。
【図５】  音声モデル列に対する評価値を算出する従来の手順を示す図である。
【図６】  遷移確率を使用して評価値を算出する手順を説明する図である。
【図７】  音声モデル列に対する評価値を算出する本発明による手順を示す図である。
【図１】
0003914709.tif 000002
【図２】
0003914709.tif 000003
【図３】
0003914709.tif 000004
【図４】
0003914709.tif 000005
【図５】
0003914709.tif 000006
【図６】
0003914709.tif 000007
【図７】
0003914709.tif 000008