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の遷移の尤
度の高い方を選択する。これを全状態に対して計算を行なう。