- 簽證留學 |
- 筆譯 |
- 口譯
- 求職 |
- 日/韓語 |
- 德語
HMM詞表結構用手工來建立,工作時要使用一部非定制發(fā)音詞典,如PRONLEX詞典(LDC.1995)或CMUdict詞典。在有些系統(tǒng)中,詞典中的每個音子都要映射到HMM模型的狀態(tài)中。這樣,單詞cat對應于[k],[ae]和[t]三個狀態(tài)。但是,很多系統(tǒng)使用我們前面描述的次音子結構,其中每個音子被分割為三個狀態(tài):音子的開始部分、中間部分和最后部分。每個這樣的次音子還可以進一步在三音子上下文中出現不同的實例。
HMM參數的嵌入訓練細節(jié)各不相同,這里介紹最簡單的一種。首先,我們需要轉移概率aij和觀察概率bj(ot)的某些初始估計值。對于轉移概率,起初假定對于任何狀態(tài)的所有可能的下一個狀態(tài)的值都是等概率的。觀察概率可以從一個手工標注的小語料庫開始,一步一步地使用自舉
(bootstrapped)的方法訓練得到。例如,TIMIT語料庫或Switchboard語料庫各有4小時的經過語音標注的口語語料。它們可以為每個語音框架提供一個“正確”的音子狀態(tài)標記q。這些都可以送到MLP中,或者求其平均給出初始高斯平均值和方差。對于MLP,初始的估計是很重要的,所以手工標注的自舉結果(bootstrap)就成為了其后的規(guī)范。對于高斯模型,參數的初始值看來不那么重要,所以高斯模型的初始平均值和方差通常只是一個集合,在使用整個訓練集的平均值和方差時,這個集合對于所有的狀態(tài)都是等同的。
現在,對于所有的概率a和b,我們有了初始的估計。在算法的下一個階段,高斯模型和MLP系統(tǒng)各不相同。對于MLP系統(tǒng),我們使用一種稱為“強制Viterbi對齊”(forced Viterbi alignment)的方法。強制Viterbi對齊取語段中正確單詞的序列作為輸入,將其與聲譜特征矢量對齊。這樣能夠產生HMM狀態(tài)的最佳序列,其中的每個狀態(tài)與一個特征矢量對齊。因此,強制Viterbi對齊是正規(guī)Viterbi解碼算法的一種簡化,因為它只需要列出正確的音子序列,而不必找出單詞序列。之所以稱之為“強制”的,是因為我們給算法強加了某種約束,要求最佳路徑必須通過一個特定的單詞序列。它還要求使用Viterbi算法,因為單詞有多個發(fā)音,并且每個音子的音延是不固定的。強制Viterbi對齊的結果是帶有“正確”音子標記的特征矢量的集合,這個集合可以用來對神經網絡進行再訓練。強制對齊中的轉移計數可以用來估計HMM的轉移概率。
對于高斯HMM模型,我們不使用強制Viterbi對齊,而使用向前-向后算法。對于給定的初始概率a和b,我們對每個句子計算它的向前概率和向后概率。正如在MLP中的情況,向前-向后算法也需要使用我們對于正確單詞的知識來加以約束。對于給定的模型A,用向前-向后算法來計算它的概率。在被轉寫的句子中,使用“已知”的單詞序列的知識,從而能夠知道,對于所有的符號串,什么樣的單詞模型可以使我們得到模型A,然后用這個模型來對每個句子的向前和向后概率進行計算。
責任編輯:admin