next up previous
次へ: 実験条件 上へ: 単語のHMMとbigramを利用した文節音声認識 戻る: 言語モデル

単語のbigramを用いた文節音声認識アルゴリズム

実験に用いた認識アルゴリズムの基本は、単語のHMMにViterbiサー チ(one-pass DP)に単語のbigramとした。これの認識アルゴリズムを 表3に示す。

ただし、実験ではHMMの状態$G(l,w,i)$を複数($N$個)持たせること によって複数の候補を出力するN-bestサーチを行なった。また、計 算量およびメモリー量を減らすために次のような方法を使用した。

  1. Viterbiサーチの経路計算

    one-pass DPでは最尤度のワード列を知るために、計算の途中において 選択した経路を残す必要がある。このために[語彙数$\times$HMM の状態数$\times$最大認識時間のフレーム長]のメモリー空間が必 要である。しかし、どの経路を選択したかを最大シンボル出力確率 $G_t(l,w_0,i)$とともに、次の状態に渡すことによって[語彙数 $\times$HMMの状態数$\times$文を構成する最大単語数]のメモリー 空間で計算可能である。後者を選択したとき計算時間は少し増加す るが、一般的には文を構成する最大単語数は最大認識時間のフレー ム長より小さいため、メモリー量を削減できる。


    表 3: 単語のbigramを利用したViterbiサーチアルゴリズム (one-pass DP)
    [定義]
    $ sn_w $:単語$w$のHMMの状態数
    $ a^w_{i,j}$:単語$w$のHMMにおける状態$s_i$から状態$s_j$への遷移確率
    $ b^w_{i,j}(v) $:単語$w$の状態$s_i$から状態$s_j$における
    ベクトル$v$の出力確率
    $ Bi(w_1,w_0) $: 単語$w_1$が出現したときに
    $w_0$に遷移する確率 $P(w_0\vert w_1)$
    $Q$: 語彙数
    $T$:入力フレーム数
    $L$:最大連続単語認識数
    $O(t)$:フレームtにおける観測ベクトル
    $G_t(l,w_0,i)$:レベル$l$,単語$w_0$,状態$s_i$での先頭から
    フレーム$t$までの経路のHMMの最大シンボル出力確率
    [初期化]
    1) $w_0=0,...,Q-1$においてstep2を実行
    2) $G{_0}(0,w_0,i) = Bi(start,w_0) $
    $start$は文頭を意味
    [Viterbiサーチ]
    3) $t=0,1..,T-1$においてstep4を実行
    4) $ l=0,1,..,L-1$においてstep5,step8を実行
    5) $ w_0=0,1...Q-1$においてstep6を実行
    6) $ i=0,1,...,sn_{w_0}-2 $においてstep7を実行
    7) $ G_t(l,w_0,i) = $ $ \max( G_{t-1}(l,w_0,i) \times a^{w_0}_{i,i} \times b^{w_0}_{i,i}(O_t), $
    $ G_{t-1}(l,w_0,i-1) \times a^{w_0}_{i-1,i} \times b^{w_0}_{i-1,i}(O_t) ) $
    [単語境界の計算]
    8) $ w_0=0,1,...,Q-1 $ においてstep9を実行
    9) $ \Delta = \mathop{\rm max}_{ 0\leq w_1 \leq Q-1 } ( G_{t-1}(l-1,w_1,sn_{w_1}-2) $
    $ \times a^{w_1}_{sn_{w_1}-2,sn_{w_1}-1} \times b^{w_1}_{sn_{w_1}-2,sn_{w_1}-1}(O_t) \times Bi(w_1,w_0)) $
    もし $\Delta \geq G_t(l,w_0,0) $ ならば $G_t(l,w_0,0)=\Delta $

  2. 単語bigramの値の記憶

    単語のbigramの値を記憶しておくには[語彙数$^{2}$]のメモリー 空間が必要である。しかし、テキストデータ中に存在するbigramの 組み合わせの値をリスト形式で記憶することにより、メモリーを節 約できる。

  3. one-pass DPにおける単語境界での計算

    Viterbiサーチでは各フレームごとに、単語境界の計算をするため に、全ての前の単語の最終状態の値に前の単語から現在の単語に遷 移するbigramの値を加算してから最大値を選択する(表 3 step9)。しかしbigram の値はリスト形式で記憶されているため、bigramの値を得るために 計算コストがかかる。そこで、このコストを減らすために、全ての 前の単語の最終状態の値で最大値を選択してからbigramの値を加算 して最大値を選択した。このアルゴリズムを次に示す。

    9) $ \Delta = \mathop{\rm max}_{ 0\leq w_1 \leq Q-1 } ( G_{t-1}(l-1,w_1,sn_{w_1}-2) $
    $ \times a^{w_1}_{sn_{w_1}-2,sn_{w_1}-1} \times b^{w_1}_{sn_{w_1}-2,sn_{w_1}-1}(O_t))$

    もし $\Delta \times Bi(w_1,w_0)) \geq G_t(l,w_0,0) $ ならば
    $G_t(l,w_0,0)= \Delta \times Bi(w_1,w_0)) $

    このアルゴリズムを選択した場合bigramの値をアクセスする回数が 減らせるため、全体の計算コストが減少する。ただし、得られる尤 度は近似解になる。


next up previous
次へ: 実験条件 上へ: 単語のHMMとbigramを利用した文節音声認識 戻る: 言語モデル
Jin'ichi Murakami 平成13年10月5日