kaldi聲學模型訓練,首先需要數據準備,
在數據準備階段需要準備標註數據的發音,處理步驟如下:
1.首先是把訓練數據和測試數據對應的標註(text)合成一個文件到text_all,同時去掉其他非字母和數字的字符串
cat $traindatadir/text$testdatadir/text| perl -pe"s/^[\w\-]+\s+//">$dictdir/text_all
2.然後就是根據準備好的發音字典(sum_dict.processed.lex)對第一步的標註數據進行處理,得到sum_dict.lex 帶聲調
local/update_lex.pl -i ./conf/sum_dict.processed.lex-t$dictdir/text_all-o$dictdir/sum_dict.lex
3.最後,根據第二步驟生成的文件,來生成字典,音素等文件,放到字典文件夾下($dictdir)
local/prepare_dict.sh $dictdir/sum_dict.lex$dictdir1
生成之後查看字典文件夾下面的文件,有如下文件:
1) words.txt 爲訓練數據和測試數據分詞之後,和起來的所有去重之後的詞
2) lexicon.txt 根據sum_dict.lex,生成word對應的發音字典文件,對應格式爲 word phone phone phone...
3) silence_phones.txt 靜音音素
4)optional_silence.txt 一個單獨的音素,用來作爲字典中默認的靜音音素
5)phones.txt 根據lexicon生成的所有的音素集合
6)nonsilence_phones.txt 非靜音音素
7)extra_questions.txt 用於構建決策樹的問題集,由靜音音素和非靜音音素生成
還有sum_dict.lex text_all text_all_word
和lexiconp.txt 帶概率的發音字典文件,格式爲word prob phone phone phone...