言語情報として単語のtrigramを用いた場合の求める解は、文候 補 を以下のように定式化して、これを最大 にする文(単語列) を選び出すことである。
ここでは単語の音響尤度、 は単語の次に単語が現 れたときにに遷移する確率、は音響尤度と単語 の尤度を結びつける結合定数である。
従来、連続単語認識のためのアルゴリズムとして知られている Viterbiサーチ(one-pass DP)は各単語のHMMの最後の状態と単語の 最初の状態の遷移においてtrigramの確率を掛けることによって 1)式を満たす最尤の単語列の候補を計算することができる。ただ し、 trigramは2つ前の単語から現在の単語に遷移する確率値で あるため、認識アルゴリズムでは、現在の単語と 1つ前の単語の最大累積尤度を、つねに保持する必要がある。そ のためbigramと比較すると、必要なメモリ量が大幅に増加する。 認識単位を単語とした場合のアルゴリズムを表 2 に示す。
図 1 に、このアルゴリズムの簡略図を 示す。この図では、認識語彙数をとの2単語で、単語の HMMは 4-state 3-loop で、状態は0から2までとする。縦軸はHMMの 状態で、横軸は時間で、奥行きは語彙を示している。
図中○ 1から○ 7は表 1 に示され る状態までの最大累積尤度であるとする。
単語の最初の状態以外は、前時刻の同一状態と前時刻の1つ前の最 大累積尤度の2遷移のうち、最大累積尤度の高い方を選択する。例 えば、○ 3は○ 1の遷移と○ 2から遷移の最大累積尤 度の高い方を選択する。しかし、単語の最初の状態は、前時刻の最 初の同一の最大累積尤度と各認識単語の最後の最大累積尤度に現在 の単語に遷移するtrigramの連鎖確率値を掛けたものから遷移の最 大累積尤度の高い方を選択する。例えば、○ 7は ○ 4にtrigramの値( ) を掛けたものと ○ 5にtrigramの値( )と○ 6の遷移の尤 度の高い方を選択する。これを全状態に対して計算を行なう。
[定義] |
:単語における状態数 |
:単語における状態から状態への遷移確率 |
:単語の状態におけるベクトルの出力確率 |
単語が出現したときに |
に遷移する確率 |
:語彙数 |
:入力フレーム数 |
:フレームにおける観測ベクトル |
:前単語,単語,状態での |
フレームまでの最大累積尤度 |
:音響尤度と言語の連鎖確率の結合値 |
[初期化] |
においてstep1を実行 |
1) |
は文頭を意味 |
[ Viterbiサーチ] |
においてstep2,step6を実行 |
2) においてstep3を実行 |
3) においてstep4を実行 |
4) においてstep5を実行 |
5) |
[単語境界の計算] |
6) においてstep7を実行 |
7) においてstep8を実行 |
8) |
もし ならば |