以kaldi中的yesno爲例談談transition

在基於GMM-HMM的傳統語音識別裏,比音素(phone)更小的單位是狀態(state)。一般每個音素由三個狀態組成,特殊的是靜音(SIL)由五個狀態組成。這裏所說的狀態就是指HMM裏的隱藏的狀態,而每幀數據就是指HMM裏的觀測值。每個狀態可以用一個GMM模型表示(這個GMM模型的參數是通過訓練得到的)。在識別時把每幀數據對應的特徵值放進每個狀態的GMM裏算概率,概率最大的那個就是這幀對應的狀態。再從狀態得到音素(HMM負責),從音素得到詞(字典模型負責),從詞得到句子(語言模型負責),最終完成識別。可以從一個狀態轉到另一個狀態,即狀態之間存在轉移(transition)。Transition是kaldi裏一個非常重要的概念,相關的有transition-state、transition-index、transition-id等,初一看雲裏霧裏不太好理解,其實它們都是根據topo圖(/s5/data/lang/topo)得到的。今天就以yesno爲例子對它們做一個講解。

 

先看yesno中的topo圖(見下圖),它有三個音素:SIL、yes、no (yes和no均作爲一個音素處理),id 分別爲1、2、3. SIL有5個狀態,id爲0—4 ,5爲結束態。yes/no分別有三個狀態,id爲0—2 ,3爲結束態。

SIL中狀態0—3 分別有4條狀態轉移路徑(或者叫轉移弧),以狀態0爲例,可以自環(self-loop)到0,也可以轉移到1或者2或者3. 狀態4有2條狀態轉移路徑,可以自環(self-loop)到4,也可以轉移到結束態5. Yes/no中狀態0—1均有2條狀態轉移路徑。所以這個topo圖中共有30條(4*4+2(SIL)+ 3*2(yes)+3*2(no)= 30)狀態轉移路徑。

 

再來看transition中相關的幾個概念:

Phone:音素,前文已提過,id是從1開始的整數。在yesno中共三個音素(SIL、yes、no),id分別爲1、2、3。

HMM-state:HMM裏隱藏的狀態。每個音素的HMM-state都是從0開始的整數。在yesno中SIL的HMM-state分別爲0、1、2、3、4,yes/no的HMM-state分別爲0、1、2。

pdf-id:每個state相對應的GMM概率密度函數(pdf: probability density function)的id,這個值是全局唯一從0開始的整數。pdf-id分爲forward-pdf-id和self-loop-pdf-id兩種,值一樣,即pdf-id = forward-pdf-id = self-loop-pdf-id。在yesno中SIL有5個狀態,pdf-id分別爲0、1、2、3、4、5,yes有3個狀態,pdf-id分別爲5、6、7,no有3個狀態,pdf-id分別爲8、9、10。

transition-state:表示一個轉移狀態,用(phone,HMM-state,forward-pdf-id , self-loop-pdf-id)表示。這個概念相對抽象些。

transition-index:表示一個狀態的轉移路徑的index,在每個狀態內從0開始的整數。在yesno中SIL的狀態0有4個轉移路徑,其transition-index分別爲0、1、2、3。其他狀態類似。

transition-id: 所有狀態轉移路徑的id,全局唯一從1開始的整數,跟(transition-state, transition-index)一一對應。在yesno中SIL的狀態0有4個轉移路徑,其transition-id分別爲1、2、3、4,SIL的狀態1有4個轉移路徑,其transition-id分別爲5、6、7、8,SIL的狀態2有4個轉移路徑,其transition-id分別爲9、10、11、12,SIL的狀態3有4個轉移路徑,其transition-id分別爲13、14、15、16,SIL的狀態4有2個轉移路徑,其transition-id分別爲17、18;yes的狀態0有2個轉移路徑,其transition-id分別爲19、20,yes的狀態1有2個轉移路徑,其transition-id分別爲21、22,yes的狀態2有2個轉移路徑,其transition-id分別爲23、24;no的狀態0有2個轉移路徑,其transition-id分別爲25、26,no的狀態1有2個轉移路徑,其transition-id分別爲27、28,no的狀20有2個轉移路徑,其transition-id分別爲29、30,所以yesno中transition-id範圍是1—30.

 

下表列出了yesno中這些變量的具體值,它們會被存起來,有一一對應的關係,知道一個值後就可以知道相對應的其他值。比如常用的通過transition-id得到pdf-id。

以上通過對例子yesno的講解就可以很好的理解跟transition相關的概念了。

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