next up previous contents
次へ: 音声分析 上へ: 音声認識 戻る: HMMの例   目次

認識アルゴリズム

$y = {y_1, y_2,\cdots, y_T}$を観測(出力)系列とする.具体的には,スペクト ルやケプストラムベクトルの時系列である.このとき,各HMMモデルによって$y$ が生起 する確率(尤度)$ P(y/M)$(ここで$M$はHMMによって表現される単語や音素に対応) を求め, 最大確率(最大尤度)を与えるモデルを選んで,これを認識結果とする.単語音声 認識システムの流れを図3に示す.本研究で扱う処理は破線で囲 われた範囲である.

図 3: 単語音声認識システムの流れ
\includegraphics[width=80mm]{flow1.eps}

$q = {q_{i0}, q_{i1},\cdots, q_{iT}}$を状態遷移行列(ただし$q_{iT} \in F)$とすれば,


$\displaystyle P(y|M) = \sum_{i_0, i_1,\cdots, i_T}P(y|q, M)・P(q|M)$     (2)

と表すことができる.そして一般的に$P(y|M)$の値は,トレリスアルゴリズムで求められる. フォワード変数$α(i, t)$を定義し,符号ベクトル$y_t$を出力して状態$q_t$に ある確率とすれば, $i = 1, 2,\cdots, S$とおいて,以下の式を得る.


$\displaystyle \alpha(i, t) =\left\{ \begin{array}{ll} \pi_i & (t=0) \\
\sum_...
...ha(j,t-1)・\alpha_{ji}・
b_{ji}(y_t) & (t=1, 2,\cdots, T)
\end{array} \right.$     (3)

これを計算し,最後に以下を求めれば良い.


$\displaystyle P(y|M) = \sum_{i,q \in F}\alpha(i,T)$     (4)

$P(y\vert M)$を厳密に求めないで,モデルMが符号ベクトル系列$y$を出力するときの 最も可能性の高い状態系列上での出現確率を用いるViterbiアルゴリズムと呼ば れる方法もある.尤度は,各遷移での確率値を対数変換しておくことで高速に求 めることができる.このアルゴリズムを以下に示す. $i = 1, 2,\cdots, S$にお いて,


\begin{displaymath}
f'(i,t) =
\left\{
\begin{array}{ll}
\log \pi_{i} & (t = 0) ...
...b_{ji} ( y_{t}) \} & (t = 1, 2, \cdots ,T )
\end{array}\right.
\end{displaymath} (5)

を計算し,対数尤度
\begin{displaymath}
L = \max_{i, s_i \in F} f' (i,t)
\end{displaymath} (6)

を求める.このViterbiアルゴリズムによる利点は以下のようなものである.

このためViterbiアルゴリズムは広く用いられている.



平成25年10月13日