kaldi訓練模型的過程
整理一下訓練新模型的過程:
1.進 入 到 kaldi-trunk/egs目錄下建立XX(看你心情隨便命名)資料夾,然後在資料夾裡建立一個audio資料夾,在audio資料夾內在建立兩個資料夾train和test。然後把所有的音訊檔案(.wav檔案)放到train和test內(根據你的需求選擇測試集和訓練集,我是兩個資料夾裡面都是放的一樣的)
2.在XX資料夾下面建立一個資料夾data,在data裡面建立test和train資料夾。然後分別在資料夾裡面構建以下幾個文件:
1)spk2gender 這個文件表明說話人的性別
2)wav.scp
3)test
4)utt2spk
(注意,在train和test裡面都要有這些檔案)
3.在data資料夾下面建立另外一個資料夾local,在local資料夾建立一個檔案corpus.txt
這幾個檔案的作用還有例子在百度搜索“在kaldi工具包使用小數字語料庫建立一個簡單的ASR系統”這篇文章可以看到,這裡就不在贅述。我的這些文件是在windows下整理的,如果有時間,再整理一個文件來進行說明。
4.在local資料夾下建立一個新的資料夾‘dict’.在dict下建立檔案:
1)lexicon.txt
2)nonsilence_phones.txt(你工程中所有的非靜音因素)
3)silence_phones.txt(這裡面是靜音音素)
4)optional.txt
這幾個檔案的建立方法也在上面說的文章裡面有介紹。1)2)兩個需要按照你工程實際需要的音素表來寫,需要自己生成音素表。
5.在 kaldi-trunk/egs/wsj/s5 目錄下拷貝出兩個資料夾(注意拷貝所有內
容):‘utils’和‘steps’,並把它們放在你的 kaldi-trunk/egs/XX 目錄下
6.安裝srilm(這個自行百度就行)
7.在目錄 kaldi-trunk/egs/XX 目錄下建立一個名為‘conf’的資料夾。
在 kaldi-trunk/egs/XX/conf 目錄下建立兩個檔案:
1)decode.config
2)mfcc.conf(這個檔案需要根據你的需要加一些,我這次加了一句取樣率的 --sample-frequency=16000)
8. 在 kaldi-trunk/egs/XX目錄下建立 3 個指令碼:
1)cmd.sh
2)path.sh
3)run.sh
指令碼根據實際情況來修改吧,主要是修改一些路徑的問題,最後就是執行指令碼了。
我相信,沒有幾個能一次就執行成功的,總是會出現一些莫名其妙的錯誤。
如果,你和我一樣,是在windows下面整理的資料直接拷貝過來的。那麼,你要注意對因素表裡面的內容進行排序。排序之後會生成一個空行,需要刪除。把所有拷貝過來的文件都要另存為unix/linux格式的。一定要特別注意路徑的問題,各個地方的路徑問題,只要不是你手動輸入的,都要注意。
如果執行指令碼之後有錯誤,可以到exp下的log資料夾中去檢視錯誤,然後針對性的修改。