乙個詞對應乙個hmm的情況,對應的訓練資料如果刪除了開始結尾的靜音資料的話,無需標註既可以訓練。
常用訓練流程:
hinit->hrest
對於訓練資料較少而且需要較好的抗噪性,可以使用固定方差的模型。模型的方差可以使用hcompv進行估算,無需進行重估。
對於phone級別的hmm訓練,需要額外引入herest命令,根據訓練資料的型別可以分為兩類訓練方式:
1. 對於labelled的訓練資料
hinit->hrest->herest
由於有分段音素級別的標註,可以使用word-hmm的初始化方式,使用hinit和hrest單獨的初始化每乙個單獨的phone。
2. 對於unlabelled的訓練資料
hcompv->herest
對於只有音素序列的標註,可以使用flat start的初始化方式,即hcompv將全域性的均值方差初始化每乙個phone的hmm,每乙個訓練語音都會被均分。
hcompv:
初始化高斯的均值和方差,使用訓練語料的全域性均值和方差
hinit:初始化高斯的均值和方差,使用viterbi估計
hrest:
baum-welch重估高斯的均值和方差,isolated-unittraining
herest:baum-welch重估高斯的均值和方差,embedded-unit training
hmmirest:對herest訓練好的hmm進行區分度訓練
hinit和hrest用於訓練word級別的hmm;hcompvhrestand herest或者hinithrest and herest用於訓練sub-word連續模型。
1. 初始化模型引數
對於每一條訓練語音,按照標註平均分配對應的幀到hmm,由此可得到每個hmm對應的均值和方法以及對應的轉移矩陣。
對於混合高斯:每乙個特徵vector對應於得分最高的的高斯模型,每個高斯模型對應的vector的個數作為該高斯模型的weight。uniform segmentation的時候使用k-means演算法將特徵的vector歸類到對應的state
2. viterbi搜尋迭代
首先,使用viterbi演算法找到每一條訓練語句對應的狀態序列,重估hmm的引數;使用viterbi對齊狀態以後可以計算出訓練資料的似然值,可以依次迭代執行下去,直到似然值不再增加。
使用hinit初始化的的侷限性在於需要提供labelled的訓練資料。對於沒有labelled的資料,hcompv可以使用全域性的均值和方差來初始化hmm。所有的hmm的引數都一樣,使用全域性的模型引數。
適用於對孤立單元的hmm進行重估,整體流程和hinit類似,不同之處在於:
1. 輸入的hmm已經完成了初始化。
2. 使用前後向演算法估算,而不是維特比。優勢在於:
維特比搜尋使用的是硬判決,每一幀嚴格對應於某乙個state;前向後向演算法使用的軟判決,每一幀得出的是該幀對應於某一狀態的概率。
用於embedded training,使用全集的訓練資料同時更新所有的hmm。
首先將語音對應的標註進行hmm展開;然後利用前後向演算法對引數進行更新。
一般需要2到5輪迭代
乙個詞對應乙個hmm的情況,對應的訓練資料如果刪除了開始結尾的靜音資料的話,無需標註既可以訓練。
常用訓練流程:
hinit->hrest
對於訓練資料較少而且需要較好的抗噪性,可以使用固定方差的模型。模型的方差可以使用hcompv進行估算,無需進行重估。
對於phone級別的hmm訓練,需要額外引入herest命令,根據訓練資料的型別可以分為兩類訓練方式:
1. 對於labelled的訓練資料
hinit->hrest->herest
由於有分段音素級別的標註,可以使用word-hmm的初始化方式,使用hinit和hrest單獨的初始化每乙個單獨的phone。
2. 對於unlabelled的訓練資料
hcompv->herest
對於只有音素序列的標註,可以使用flat start的初始化方式,即hcompv將全域性的均值方差初始化每乙個phone的hmm,每乙個訓練語音都會被均分。
hcompv:
初始化高斯的均值和方差,使用訓練語料的全域性均值和方差
hinit:初始化高斯的均值和方差,使用viterbi估計
hrest:
baum-welch重估高斯的均值和方差,isolated-unittraining
herest:baum-welch重估高斯的均值和方差,embedded-unit training
hmmirest:對herest訓練好的hmm進行區分度訓練
hinit和hrest用於訓練word級別的hmm;hcompvhrestand herest或者hinithrest and herest用於訓練sub-word連續模型。
1. 初始化模型引數
對於每一條訓練語音,按照標註平均分配對應的幀到hmm,由此可得到每個hmm對應的均值和方法以及對應的轉移矩陣。
對於混合高斯:每乙個特徵vector對應於得分最高的的高斯模型,每個高斯模型對應的vector的個數作為該高斯模型的weight。uniform segmentation的時候使用k-means演算法將特徵的vector歸類到對應的state
2. viterbi搜尋迭代
首先,使用viterbi演算法找到每一條訓練語句對應的狀態序列,重估hmm的引數;使用viterbi對齊狀態以後可以計算出訓練資料的似然值,可以依次迭代執行下去,直到似然值不再增加。
使用hinit初始化的的侷限性在於需要提供labelled的訓練資料。對於沒有labelled的資料,hcompv可以使用全域性的均值和方差來初始化hmm。所有的hmm的引數都一樣,使用全域性的模型引數。
適用於對孤立單元的hmm進行重估,整體流程和hinit類似,不同之處在於:
1. 輸入的hmm已經完成了初始化。
2. 使用前後向演算法估算,而不是維特比。優勢在於:
維特比搜尋使用的是硬判決,每一幀嚴格對應於某乙個state;前向後向演算法使用的軟判決,每一幀得出的是該幀對應於某一狀態的概率。
用於embedded training,使用全集的訓練資料同時更新所有的hmm。
首先將語音對應的標註進行hmm展開;然後利用前後向演算法對引數進行更新。
一般需要2到5輪迭代
語音識別 聲學模型(GMM HMM)
本文主要講解一下gmm hmm演算法聲學模型的大概思路!聲學模型的目的是將經mfcc提取的所有幀的特徵向量轉化為有序的音素輸出。概述如下 我們都知道hmm模型裡面有隱含狀態概念。我們需要弄明白音素hmm模型的隱含狀態與乙個音素之間的關係,通常乙個音素含有3到5個狀態,如果乙個包含代表乙個音素的hmm...
語音識別 之 語言模型,聲學模型
聲學模型是對聲學 語音學 環境的變數 說話人性別 口音等的差異的知識表示,語言模型是對一組字序列構成的知識表示。語言模型表示某一字序列發生的概率,一般採用鏈式法則,把乙個句子的概率拆解成器中的每個詞的概率之積。設w是由w1,w2,wn組成的,則p w 可以拆成 由條件概率公式和乘法公式 p w p ...
kaldi 聲學模型構建dict過程
kaldi聲學模型訓練,首先需要資料準備,在資料準備階段需要準備標註資料的發音,處理步驟如下 1.首先是把訓練資料和測試資料對應的標註 text 合成乙個檔案到text all,同時去掉其他非字母和數字的字串 cat traindatadir text testdatadir text perl p...