基於HTK的連續語音識別系統搭建學習筆記(一)

該系統能夠識別連續說出的數字串和若干組姓名。建模是針對子詞(sub-word, eg. 音素),具有一定的可擴充性。當加入一個新名字時,只需修改發音字典和任務語法即可。模型爲連續混合高斯輸出,運用語音決策樹聚類形成的綁定狀態式三音素。


1.數據準備

需要錄製訓練數據和測試數據。爲進行校準,還需要數據的標註文本。這裏用任務語法(task grammar)產生真值文本(ground truth)。爲了處理訓練數據,需要定義一個語音集合和一個字典用以涵蓋訓練和測試數據中涉及的單詞。

[step 1]任務語法定義

創建文件:gram

創建位置:根目錄下

文件內容:


上面的語法是高層表示,必須通過HParse轉成HTK可用的底層表示。

運行:

HParse gram wdnet

生成:wdnet

生成位置:根目錄

生成內容:


[step 2]字典定義

創建文件夾:dict lists

創建文件:BEEP語音字典(網上可以下載)beep beep.ded(空) names(手工製作的專有人名的發音,包括SEND-START,SEND-END) name.ded

放入位置:dict

創建文件:global.ded

創建位置:根目錄下

文件內容:


此例中利用BEEP語音字典,除去其中的重音符,並在每個發音後加入sp(short pause,小停頓)。如果有啞音標誌,就用MP命令把sil和sp合併成sil。

創建文件:wlist

創建位置:lists

創建內容:


執行:

HDMan -m -w .\lists\wlist -g global.ded -n .\lists\monophones1 -l dlog .\dict\dict1 .\dict\beep .\dict\names

生成文件:monophones1 (用於用到的音素列表)

生成位置:lists 

生成文件:dlog(參數文件記錄過程)

生成位置:根目錄

生成文件:dict1

生成位置:dict

注1 :實際上,這裏應該手工修改 dict1 ,爲SENT-END 和SENT-START 加上無輸出標誌,
爲了展示隊後面步驟地影響,這裏故意不添加。


注:HDMan工具的具體詳細解釋以及使用可以參看HTK BOOK P262 

[step 3]錄製語音數據

創建文件夾:labels

HSGen工具可以生成符合task grammar的句子,用來指導錄音(HTK BOOK裏叫sentence prompts):

執行:

HSGen -l -n 140 wdnet.\dict\dict1>.\labels\trainprompts

執行:

HSGen -l -n 15 wdnet .\dict\dict1>.\labels\testprompts

根據上述指令文件,錄製相應的140個訓練用語音數據文件和15個測試用語音數據文件。

生成文件:trainprompts testprompts

一個錄製的例子如下: 
HSLab .\data\Train\speech\S0001 

注:隨本文的壓縮包沒有包括這些數據文件,但包括了它們對應的特徵文件,所以對整個實驗沒有什麼影響。

[step 4]標註數據,得到真值文件

創建文件夾:scripts labels 

創建文件:prompts2mlf(HTK scripts目錄下自帶)

創建位置:scripts

Perl腳本prompts2mlf(在scripts目錄下HTK自帶)可以把錄音文本截成單詞級真值文件。

執行:

perl .\scripts\prompts2mlf.\labels\trainwords.mlf .\labels\trainprompts

perl .\scripts\prompts2mlf.\labels\testwords.mlf .\labels\testprompts

注:要在每個lab路徑之前加上“*/”

生成文件:trainwords.mlf testwords.mlf

生成位置:labels

標註編輯器HLEd可把單詞級真值文本(wordlevel MLF)轉成音素級真值文本(phonelevel MLF):

創建文件:mkphones0.led

創建位置:根目錄

創建內容:


EX命令表示按照字典dict1進行展開,IS表示在每個話語的前後插入標誌,DE一行表示phones0.mlf中單詞間不用sp隔開。

執行:

HLEd -l * -d .\dict\dict1 -i .\labels\phones0.mlf mkphones0.led .\labels\trainwords.mlf

生成文件:phones0.mlf

生成位置:labels

注:HLEd工具的詳細講解可以參考HTK BOOK P284

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章