Viterbiサーチにおいて最尤の単語列の結果を得るアルゴリズムとして、2つ の方法が考えられる。
各時刻・各状態において、最大累積尤度を計算したときに、選択した経路を記
憶しておく。そして尤度の計算が終了した後、トレースバックを行ない最尤の
単語列を得る[40]。この方法は、各時刻・各状態において、選択した経
路を記憶するために(認識語彙数
音声データのフレーム数)のメ
モリ量が必要である。
各時刻・各状態において、最大累積尤度の計算と同時に、選択した経路を次の
状態に渡す。図2.11)に単語bigramを使用した場合の例を示す。
単語 trigramを使用したときもほぼ同様なアルゴリズムになる。このアルゴリ
ズムにおいて必要なメモリ量は (認識語彙数
文の単語数)である。
ただし、この方法は、経路をコピーする必要があるため計算量は前の方法と比
較すると、若干増加する。
前者は、計算量が少なくて済むため広く利用されている。後者は、前者と比
較すると計算量は若干増加するが、多くの場合、文の単語数は音声データの
フレーム数より少ないためメモリ量が削減できる。なお、このアルゴリズム
は各時刻・各状態()においてトレースバックをしなくても累
積尤度が最大の単語列を知ることができる。