[轉]異常聲音檢測之kaldi DNN 訓練

轉自: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

相關文章
相關標籤/搜索