画像認識ではVGG16など事前学習したものを利用できるが、音声認識用途では少ない。 そこで、音声認識エンジンJuliusのディクテーションキットに含まれるDNNを利用するための 特徴量FBANK_D_A_Zを計算するpythonを作ってみた。
Juliusのディクテーションキットversion 4.4を下記よりダウンロードする。
http://julius.osdn.jp/index.php?q=dictation-kit.html
model/dnn以下を展開する。
DNNの計算出力はHMMの隠れ状態の確率なので、そのままでは認識に使えない。
計算出力は状態の事前確率で除算してLOG10をとった値になっている。
> HMMは実質3状態のLR型で,4,874個の状態からなる状態共有モデルである.
> 状態確率がDNNによって与えられる.
Julius(C言語float)とpythonの数値計算の精度が同じではないので、計算結果は完全には一致しない。
(およそ1.0E-5オーダー程度の差が出るようだ。)
DNN-HMMの対数尤度の計算については Wave-DNN-likelihood を参照してください。
以下のライセンス文を参照のこと。