連続単語認識アルゴリズムとして最も基本的なアルゴリズムは、tree-trellis サーチである。
このアルゴリズムは、テストデータ全てに対して全ての可能性を計算するため、 計算量、メモリ量は膨大になる。しかし、N位までの累積尤度の単語列(N-best リスト)を出力することができる。また、グリッドの選択において最尤なもの を選ぶ方法(Viterbi)とグリッドの尤度を足す方法(trellis)の両者が選択でき る。Trellisで計算をした場合、フレーム単位での状態の位置が明確にならな いため、HMMを用いた音声認識において良く使用されるduration control(状 態継続時間の制限)は意味をもたない。また、任意の時間に おいて単語を認識させることが可能なため、単語スポッタとしても動作が可能 である。
またアルゴリズムにおいて各単語のHMMの最後の状態と後続する単語の最初の 状態の遷移において任意の言語モデルの制約を加えることにより、音響モデル と言語モデルを簡単に結合することができる。つまり、言語モデルは単語 bigramに限らずCYKなどの全てのleft-right型の言語モデルを採り入れること が可能である。
グリッドをTrellisで計算した場合のtree-trellisサーチのアルゴリズムを
表 2.1 および図 2.4 に示す。
なお、1文は個の単語から構成される (
) と仮定した。
図2.4に、このアルゴリズムの簡略図を示す。この図で
は、認識語彙数をと
の2単語で、単語のHMMは 4-state 3-loop で、
状態は0から2までとする。縦軸はHMMの状態で、横軸は時間で、奥行きは語
彙を示している。図中の
○ 1は時間
から時間
までの単語
の状態0、
○ 2は時間
から時間
までの単語
の状態1、
○ 3は時間
から時間
までの単語
の状態2、
○ 4は時間
から時間
までの単語
の状態2、
○ 5は時間
から時間
までの連続2単語
の状態0、
○ 6は時間
から時間
までの連続2単語
の状態0、
○ 7は時間
から時間
までの連続2単語
の状態0、
○ 8は時間
から時間
までの連続2単語
の状態0、
の累積尤度であるとする。
tree-trellisサーチのtrellis計算においては、単語の最初の状態0を意味するグリッド 以外は、前時刻の同一状態を意味するグリッドの尤度と前時刻の1つ前の状 態のグリッドの尤度の2状態を加えて現時刻のグリッドの尤度を計算する。 例えば、○ 4は○ 1の遷移と○ 2から遷移の累積尤度の総和とする。
しかし、単語の最初の状態0を意味するグリッドは、前時刻の同一のグリッ ドの累積尤度とレベルが1つ下の単語の最終状態を意味するグリッドの累積 尤度の総和とする。例えば、○ 7 は○ 3の遷移と○ 5の遷移 の累積尤度の総和とする。
これを全グリッドに対して計算を行なう。
なお、このとき言語モデルの確率値を掛けることにより音響モデルと言語モデ
ルが結合できる。例えば、○ 7 は○ 3の遷移と○ 5の遷移の累
積尤度に単語bigram
, (
: language weight)を掛
けることによって、単語のbigramと単語のHMMが簡潔に結合できる。
[定義] |
![]() ![]() |
![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() ![]() |
![]() ![]() ![]() ![]() |
フレーム![]() |
[初期化] |
![]() |
1) ![]() |
. |
. |
. |
2) ![]() |
3)
![]() |
[ 単語内での計算] |
![]() ![]() |
4) ![]() |
. |
. |
. |
5) ![]() |
6)
![]() |
7)
![]() |
![]() |
![]() |
[単語境界の計算] |
8)
![]() |
. |
. |
. |
9)
![]() |
10)
![]() |
![]() |