実験に用いた認識アルゴリズムの基本は、単語のHMMにViterbiサー チ(one-pass DP)に単語のbigramとした。これの認識アルゴリズムを 表3に示す。
ただし、実験ではHMMの状態を複数(個)持たせること によって複数の候補を出力するN-bestサーチを行なった。また、計 算量およびメモリー量を減らすために次のような方法を使用した。
one-pass DPでは最尤度のワード列を知るために、計算の途中において 選択した経路を残す必要がある。このために[語彙数HMM の状態数最大認識時間のフレーム長]のメモリー空間が必 要である。しかし、どの経路を選択したかを最大シンボル出力確率 とともに、次の状態に渡すことによって[語彙数 HMMの状態数文を構成する最大単語数]のメモリー 空間で計算可能である。後者を選択したとき計算時間は少し増加す るが、一般的には文を構成する最大単語数は最大認識時間のフレー ム長より小さいため、メモリー量を削減できる。
[定義] |
:単語のHMMの状態数 |
:単語のHMMにおける状態から状態への遷移確率 |
:単語の状態から状態における |
ベクトルの出力確率 |
: 単語が出現したときに |
に遷移する確率 |
: 語彙数 |
:入力フレーム数 |
:最大連続単語認識数 |
:フレームtにおける観測ベクトル |
:レベル,単語,状態での先頭から |
フレームまでの経路のHMMの最大シンボル出力確率 |
[初期化] |
1) においてstep2を実行 |
2) |
は文頭を意味 |
[Viterbiサーチ] |
3) においてstep4を実行 |
4) においてstep5,step8を実行 |
5) においてstep6を実行 |
6) においてstep7を実行 |
7) |
[単語境界の計算] |
8) においてstep9を実行 |
9) |
もし ならば |
単語のbigramの値を記憶しておくには[語彙数]のメモリー 空間が必要である。しかし、テキストデータ中に存在するbigramの 組み合わせの値をリスト形式で記憶することにより、メモリーを節 約できる。
Viterbiサーチでは各フレームごとに、単語境界の計算をするため に、全ての前の単語の最終状態の値に前の単語から現在の単語に遷 移するbigramの値を加算してから最大値を選択する(表 3 step9)。しかしbigram の値はリスト形式で記憶されているため、bigramの値を得るために 計算コストがかかる。そこで、このコストを減らすために、全ての 前の単語の最終状態の値で最大値を選択してからbigramの値を加算 して最大値を選択した。このアルゴリズムを次に示す。
9)
もし
ならば
このアルゴリズムを選択した場合bigramの値をアクセスする回数が 減らせるため、全体の計算コストが減少する。ただし、得られる尤 度は近似解になる。