現在假設知道了hmm模型中的乙個狀態(比如,孤立此識別中,這裡乙個狀態代表乙個詞)對應的k個多維高斯的所有引數,則該gmm生成該狀態(該詞)上某乙個觀察向量()的概率就出來了,即,知道了某個孤立詞對應的k個高斯模型的所有引數,那麼,就可以計算一幀觀測值對於該詞的概率。
以下是文獻中提到的
機器學習&資料探勘筆記_14(gmm-hmm語音識別簡單理解)
為了對gmm-hmm在語音識別上的應用有個巨集觀認識,花了些時間讀了下htk(用htk完成簡單的孤立詞識別)的部分原始碼,對該演算法總算有了點大概認識,達到了預期我想要的。不得不說,網路上關於語音識別的通俗易懂教程太少,都是各種公式滿天飛,很少有說具體細節的,當然了,那需要有實戰經驗才行。下面總結以下幾點,對其有個巨集觀印象即可(以孤立詞識別為例)。
一、每個單詞的讀音都對應乙個hmm模型,大家都知道hmm模型中有個狀態集s,那麼每個狀態用什麼來表示呢,數字?向量?矩陣?其實這個狀態集中的狀態沒有具體的數學要求,只是乙個名稱而已,你可以用』1』, 』2』, 『3』…表示,也可以用』a』, 『b』, 』c 』表示。另外每個hmm模型中到底該用多少個狀態,是通過先驗知識人為設定的。
二、hmm的每乙個狀態都對應有乙個觀察值,這個觀察值可以是乙個實數,也可以是個向量,且每個狀態對應的觀察值的維度應該相同。假設現在有乙個單詞的音訊檔案,首先需要將其進行取樣得到數字資訊(a/d轉換),然後分幀進行mfcc特徵提取,假設每一幀音訊對應的mfcc特徵長度為39,則每個音訊檔案就轉換成了n個mfcc向量(不同音訊檔案對應的n可能不同),這就成了乙個序列,而在訓練hmm模型的引數時(比如用baum-welch演算法),每次輸入到hmm中的資料要求就是乙個觀測值序列。這時,每個狀態對應的觀測值為39維的向量,因為向量中元素的取值是連續的,需要用多維密度函式來模擬,通常情況下用的是多維高斯函式。在gmm-hmm體系中,這個擬合函式是用k個多維高斯混合得到的。假設知道了每個狀態對應的k個多維高斯的所有引數,則該gmm生成該狀態上某乙個觀察向量(一幀音訊的mfcc係數)的概率就可以求出來了。
三、對每個單詞建立乙個hmm模型,需要用到該單詞的訓練樣本,這些訓練樣本是提前標註好的,即每個樣本對應一段音訊,該音訊只包含這個單詞的讀音。當有了該單詞的多個訓練樣本後,就用這些樣本結合baum-welch演算法和em演算法來訓練出gmm-hmm的所有引數,這些引數包括初始狀態的概率向量,狀態之間的轉移矩陣,每個狀態對應的觀察矩陣(這裡對應的是gmm,即每個狀態對應的k個高斯的權值,每個高斯的均值向量和方差矩陣)。
四、在識別階段,輸入一段音訊,如果該音訊含有多個單詞,則可以手動先將其分割開(考慮的是最簡單的方法),然後提取每個單詞的音訊mfcc特徵序列,將該序列輸入到每個hmm模型(已提前訓練好的)中,採用前向演算法求出每個hmm模型生成該序列的概率,最後取最大概率對應的那個模型,而那個模型所表示的單詞就是我們識別的結果。
五、在建立聲學模型時,可以用deep learning的方法來代替gmm-hmm中的gmm,因為gmm模擬任意函式的功能取決於混合高斯函式的個數,所以具有一定的侷限性,屬於淺層模型。而deep network可以模擬任意的函式,因而表達能力更強。注意,這裡用來代替gmm的deep nets模型要求是產生式模型,比如dbn,dbm等,因為在訓練hmm-dl網路時,需要用到hmm的某個狀態產生乙個樣本的概率。
六、gmm-hmm在具體實現起來還是相當複雜的。
語音識別 gmm hmm思考
簡單回顧一下今天所看的內容 gmm hmm pdf 概率密度函式,在這裡可以由gmm來估計,同樣也可以用dnn來估計。gmm 高斯混合模型,單高斯函式,多高斯函式。能擬合任何函式,這裡會涉及到均值方差等變數 語音有短時平穩的特性,可以用高斯混合模型來估計 從而就會有概率密度函式。hmm 隱馬爾科夫模...
語音識別 之 GMM HMM
gmm,gaussian mixture model,gmm,高斯混合模型。資料往往不知道是哪個高斯分布,這給gmm的引數初始化帶來困難。所有聚類演算法都可用於此,常用的有k means lbg等。模型自適應,由於各地口音,採集裝置,環境雜訊等因素的差異,已訓練過的gmm hmm很可能和新領域的測試...
語音識別 聲學模型(GMM HMM)
本文主要講解一下gmm hmm演算法聲學模型的大概思路!聲學模型的目的是將經mfcc提取的所有幀的特徵向量轉化為有序的音素輸出。概述如下 我們都知道hmm模型裡面有隱含狀態概念。我們需要弄明白音素hmm模型的隱含狀態與乙個音素之間的關係,通常乙個音素含有3到5個狀態,如果乙個包含代表乙個音素的hmm...