聲學模型(一) hmm聲學訓練流程

2021-09-19 13:26:16 字數 3601 閱讀 7213

乙個詞對應乙個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...