需要三行腳本,你可以一行做一個腳本文件,這樣就不需要每次提取特徵都要重新訓練1步驟和2步驟的模型了。
1:steps/online/nnet2/train_diag_ubm.sh --cmd "$train_cmd" data/train 1024 exp/tri3 exp/diag_ubm
#tri3是你訓練的三音素模型所在的文件夾
2:steps/online/nnet2/train_ivector_extractor.sh --cmd "$train_cmd" --nj "$nj" data/train exp/diag_ubm/ exp/extractor
#這裏不用多說了,這個腳本用到了上一步生成的模型(diag_ubm)
3:steps/online/nnet2/extract_ivectors_online.sh --cmd "$train_cmd" --nj "$nj" data/train exp/extractor exp/ivectors_train
#這裏生成的ivectors_train就是dnn腳本中的online_ivector_dir參數。比如在steps/nnet3/train_tdnn.sh中,這樣寫online_ivector_dir=exp/ivectors_train,這樣就可以進行dnn+i-vector訓練啦!