Kaldi aishell2 GMM訓練步驟
中文語音識別的aishell2推出已經有一段時間了,由於沒有aishell2的語料庫,有資格的可以申請,所以拿aishell1的15G語料進行訓練,所以寫了相關的指令碼處理aishell1的語料庫,來適配aishell2,可以參考我的github 倉庫aishell2-gmm-train ,branch為:gmm-train。
語料準備
下載完aishell1的語料後,將data_aishell.tgz解壓後的語料放在egs/aishell2目錄下的recipes(自己建立的),將解壓後的語料按照github上的路徑存放,然後先執行
訓練指令碼的修改
1. 註釋了大辭典發音字典相關程式碼,指定了aishell1解壓resource_aishell.tgz後的字典,見修改內容:https://github.com/xiangxyq/aishell2-gmm-train/blob/gmm-train/s5/local/prepare_dict.sh
2. 語言模型訓練時,註釋了kaldi_lm的訓練及srilm的訓練方式,自己利用ngram命令生成相關的語言模型,https://github.com/xiangxyq/aishell2-gmm-train/blob/gmm-train/s5/local/train_lms.sh
3. GMM訓練時,在MFCC特徵提取時,沒有采用aishell2 pitch的特徵提取方式,因為pitch增加了相應的維度,導致kaldi自帶的online-gmm-decode-faster解碼器維度不匹配,修改成make_mfcc.sh指令碼,註釋掉了 subset the training data for fast startup相關程式碼,並修改了部分訓練時的錯誤,https://github.com/xiangxyq/aishell2-gmm-train/blob/gmm-train/s5/local/run_gmm.sh
注: 以上指令碼中,註釋掉了三音素和DNN的相關訓練,如有問題,歡迎拍磚。