Viterbiサーチ(one-pass DP)は各認識単語の最後の状態と単語の最初の状態の遷移において trigramの確率を掛けることによって音響モデルと言語のtrigramモデルが簡 単に結合できる。ただし、 trigramは2つ前の単語が決定されて初めて現在 の単語の出現確率が計算できるためViterbiサーチのグリッドは、現在の単語 と1つ前の単語の最大累積尤度を、つねに保持する必要がある。そのため bigramと比較すると、必要なメモリ量が大幅に増加する。認識単位を単語と した場合のアルゴリズムを表 2.4に示す。
[定義] |
:単語における状態数 |
:単語における状態から状態への遷移確率 |
:単語の状態におけるベクトルの出力確率 |
単語が出現したときに |
に遷移する確率 |
:語彙数 |
:入力フレーム数 |
:フレームにおける観測ベクトル |
:前単語,単語,状態での |
フレームまでの最大累積尤度 |
:音響尤度と言語の連鎖確率の結合値 |
[初期化] |
においてstep1を実行 |
1) |
は文頭を意味 |
[ Viterbiサーチ] |
においてstep2,step6を実行 |
2) においてstep3を実行 |
3) においてstep4を実行 |
4) においてstep5を実行 |
5) |
[単語境界の計算] |
6) においてstep7を実行 |
7) においてstep8を実行 |
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の遷移の尤 度の高い方を選択する。これを全状態に対して計算を行なう。