2018年2月5日 星期一

HTK Tools (6): 三音素建模 - 從單音素模型建立三音素模型

前面章節都在做單音素的建模,而製作三音素的建模,才能夠達成辨識一個單字基本要素。 本章節說明三音素建模之方法。
本章節對照 HTK Books 章節之 - 3.3 Create Tied-State Triphones , Step 9 - Making Triphones from Monophones。

用指令檔把單音素轉為三音素


前面章節已經擁有單音素的檔案,包含對齊後的檔案 aligned.mlf ,而現在要先轉換單音素到三音素的集合,首先,要先建立 mktri.led 這個檔案,並輸入內容:


WB sp 
WB sil 
TC

(請記得要在最後斷行)

然後,輸入 HLEd 的指令:

HLEd -n triphones1 -l '*' -i wintri.mlf mktri.led aligned.mlf


綁定 HMM 以共享狀態 (Shared-State)


Tied-State 總共是將三個音素綁定起來辨識,所以從單因素的 xx 就會變成 xx-xx+xx 這樣的形態呈現在音素檔中。

首先為了要執行把所有音素做轉換,要用指令檔執行,但指令檔的指令數目太多了,需要有腳本來幫助處理,在 HTK-Tools 中會找到 sample 資料夾,裡面有 HTK-Tutorial 這個目錄,請拿目錄中的 maketrihed 這個檔案複製到 /etc 目錄中,這是一個 Perl 的檔案,本文中也會使用 Perl 來協助處理。 (請安裝好 Perl)

然後,使用 Perl 指令,在 /etc 目錄執行這個 Perl 程式:
perl maketrihed monophones1 triphones1

接著,它就會產生出一個 mktri.hed 包含所需的指令檔案。

完成指令檔後,就可以執行 HHEd 指令來重新計算綁定這些參數,再透過 HRest 重新估計得到更新的機率模型。

請建立一個 hmm10 的資料夾後,使 HHEd 用指令:
HHEd -A -D -T 1 -H hmm9\proto -H hmm9\hmmdefs -M hmm10 mktri.hed monophones1

執行參數重估


完成後,需要連續建立 2 次參數重估後的模型 hmm11, hmm12,不過在先前,都是使用單音素進行建模,跟 mfcc 檔案 (.mfc) 放在一起的 label 檔案 (.lab) ,也必須更新成三音素的 label 檔案,請打開 wintri.mlf ,去掉 MLF 標籤和檔案名稱、句號 "." 後,各自放到對應的 .lab 檔案中:

範例:

wintri.mlf
#!MLF!# <- 不要複製
"'*'/a0319.lab" <- 對應的檔案,不要複製
sil
ae+n
ae-n+d
sil
. <- 句號,不要複製
"'*'/a0320.lab" <- 下一個檔案
sil
w+ih
f-uh+l
uh-l+ih
l-ih+n
...
...
...

a0319.lab
sil
ae+n
ae-n+d
sil

這個步驟很麻煩,如果你有一大堆資料,請自行寫程式處理。

完成後,再建立一個 hmm11 的目錄,然後使用指令:
HERest -A -D -T 1 -C config -I wintri.mlf -t 250.0 150.0 3000.0 -S train.scp -H hmm10/proto -H hmm10/hmmdefs -M hmm11 triphones1

再建立一個 hmm12 的目錄,執行指令:
HERest -A -D -T 1 -C config -I wintri.mlf -t 250.0 150.0 3000.0 -s stats -S train.scp -H hmm11/proto -H hmm11/hmmdefs -M hmm12 triphones1

最後一個指令建立了一個 stats 的檔案,這是接下來會使用到的文件。



Reference:
http://levinboim.blogspot.tw/2012/05/htk-tutorial-microblogging-may-27.html
https://labrosa.ee.columbia.edu/doc/HTKBook21/node82.html
http://www.cnblogs.com/welen/p/3781894.html
http://www.voxforge.org/home/dev/acousticmodels/linux/create/htkjulius/tutorial/triphones/step-10/comments/error-7321
http://www.voxforge.org/home/dev/acousticmodels/linux/create/htkjulius/tutorial/triphones/step-9


沒有留言:

張貼留言

© ERIC RILEY , 自由無須告知轉貼
Background Japanese Sayagata by Olga Libby