音声認識メモ(HMM)その9(HTK HERest コマンド(6))

混合正規分布モデル(Gaussian Mixture Model)のHMMを作成する。

尚、単一正規分布のHMMモデル(single Gaussian models)のままでも認識エンジン「Julius」に渡すことはできる。

混合数の増加には「HHEd」コマンドを使用する。

HHEd -H "HMMモデル" -w "出力先" "HHEdスクリプト" "音素のリスト"

例えば、音素「m」の混合数を2にする場合、スクリプトには以下のように書く。

MU 02 {m.state[2-4].mix}

仮に、音素「m」の状態2の"MFCC1次"が、平均「-3.559778」、分散「42.87573」の正規分布に従う場合、確率密度関数のグラフは下図のようになる。
f:id:ichou1:20181026202027p:plain

元々の平均「-3.559778」に対し、「標準偏差*0.2」(この例では「1.30959117」)を加算/減算したものを新たな平均とする。
f:id:ichou1:20181026202557p:plain

混合比「0.5」を掛ける。
f:id:ichou1:20181026202701p:plain

全体として見ると、元の分布よりも分散が大きくなっている。
f:id:ichou1:20181026202930p:plain

モデルとしては、"MIXTURE"タグが追加される。

~s "ST_m_2_1"
<NUMMIXES> 2
<MIXTURE> 1 5.000000e-01
<MEAN> 39
 -2.250187e+00 ...(省略)
<VARIANCE> 39
 4.287573e+01 ...(省略)
<GCONST> 1.100840e+02
<MIXTURE> 2 5.000000e-01
<MEAN> 39
 -4.869369e+00 ...(省略)
<VARIANCE> 39
 4.287573e+01  ...(省略)
<GCONST> 1.100840e+02

作成したモデルに対して、HERestコマンドによる学習を行い、モデルを更新する。

混合比が変わることで分布も動く。
下図は混合比を「0.8」と「0.2」にしたもの。
f:id:ichou1:20181026203959p:plain