轉自:http://blog.csdn.net/huchad/article/details/52092796學習
使用kaldi的DNN作音頻分類,異常聲音檢測。spa
HMM/GMM -》 HMM/DNN.net
基本上沿用語音識別的思路,有兩點注意一下便可。code
1. 在訓HMM/GMM時,訓到monophone便可,使用monophone的HMM與alignment來訓DNNorm
2.語言模型的準備,手動構造一個一元的簡單模型便可blog
DNN的主要訓練步驟以下:cmd
#Step 1. Pre-train DBNit
steps/nnet/pretrain_dbn.shio
--cmvn-opts "--norm-means=true --norm-vars=true" // 均值方差歸一化form
--delta-opts "--delta-order=2"// 差分特徵
--splice 5 拼接幀數
--nn_depth 3 // 隱含層的個數
--hid-dim 256// 隱層節點數
--rbm-iter 8 // 迭代次數
$train $dir
# Step2:Train the DNN optimizing per-frame cross-entropy
steps/nnet/train.sh
--feature-transform $feature_transform
--dbn $dbn // step1 所獲得的dbn
--hid-layers 0 // 表示使用dbn的隱層
--learn-rate 0.008 // 學習率
${train}_tr90 ${train}_cv10 data/lang $ali $ali $dir
# step3: generate lattices and alignments for sMBR:
steps/nnet/align.sh --nj 20 --cmd "$train_cmd" $train data/lang $srcdir ${srcdir}_ali
steps/nnet/make_denlats.sh --nj 20 --cmd "$decode_cmd" --config conf/decode_dnn.config --acwt $acwt \
$train data/lang $srcdir ${srcdir}_denlats
#step4:Re-train the DNN by iterations of sMBR
steps/nnet/train_mpe.sh
--cmd "$cuda_cmd" --num-iters 6 --acwt $acwt --do-smbr true \ $train data/lang $srcdir ${srcdir}_ali ${srcdir}_denlats $dir