Viterbiサーチ(one-pass DP)は各認識単語の最後の状態と単語の最初の状態の遷移において trigramの確率を掛けることによって音響モデルと言語のtrigramモデルが簡 単に結合できる。ただし、 trigramは2つ前の単語が決定されて初めて現在 の単語の出現確率が計算できるためViterbiサーチのグリッドは、現在の単語 と1つ前の単語の最大累積尤度を、つねに保持する必要がある。そのため bigramと比較すると、必要なメモリ量が大幅に増加する。認識単位を単語と した場合のアルゴリズムを表 2.4に示す。
| [定義] |
|
|
|
|
| フレーム |
| [初期化] |
| 1)
|
| [ Viterbiサーチ] |
| 2) |
| 3) |
| 4)
|
| 5)
|
|
|
|
|
| [単語境界の計算] |
| 6)
|
| 7)
|
| 8)
|
|
|
| もし
|
図2.12に、このアルゴリズムの簡略図を示す。この
図では、認識語彙数を
と
の2単語で、単語のHMMは 4-state 3-loop
で、状態は1から3までとする。縦軸はHMMの状態で、横軸は時間で、奥行きは
語彙を示している。
○ 1は時間
において現在の語が
で前の語が
で状態が0、
○ 2は時間
において現在の語が
で前の語が
で状態が1、
○ 3は時間
において現在の語が
で前の語が
で状態が1、
○ 4は時間
において現在の語が
で前の語が
で状態が2、
○ 5は時間
において現在の語が
で前の語が
で状態が2、
○ 6は時間
において現在の語が
で前の語が
で状態が0、
○ 7は時間
において現在の語が
で前の語が
で状態が0までの最大累積尤度であるとする。
単語の最初の状態以外は、前時刻の同一状態と前時刻の1つ前の最大累積尤度
の2遷移のうち、最大累積尤度の高い方を選択する。例えば、○ 3は
○ 1の遷移と○ 2から遷移の最大累積尤度の高い方を選択する。しか
し、単語の最初の状態は、前時刻の最初の同一の最大累積尤度と各認識単語の
最後の最大累積尤度に現在の単語に遷移するtrigramの連鎖確率値を掛けたも
のから遷移の最大累積尤度の高い方を選択する。例えば、○ 7は
○ 4にtrigramの値 (
) を掛けたものと
○ 5にtrigramの値 (
) と○ 6の遷移の尤
度の高い方を選択する。これを全状態に対して計算を行なう。