聲學模型概述

這篇博客是關於聲學模型的簡單介紹。

  • 輸出概率

聲學模型的輸入是由特徵提取模塊提取的特徵(比如mfcc特徵)。一般來說,這些特徵是多維的向量,並且其取值可以是離散或連續的。
早期的聲學模型常常採用矢量聚類(Vector Quantification)的方法,將信號直接映射到某個碼本k,然後再計算某個模型j輸出該碼本的概率bj(k)。但是這一方法是比較粗糙的,其性能受到VQ算法的很大影響,如果VQ本身性能就很差,聲學模型的估計就會很不準確。因此,對於連續取值的特徵應當採用連續的概率分佈。由於語音信號特徵的分佈並不能用簡單的概率分佈,例如高斯分佈等來直接描述,故而常用混合高斯模型或混合拉普拉斯模型等方法對語音信號的分佈進行擬合。在此,混合高斯分佈可以表示爲若干高斯分量Gi的加權組合。即:

G(x)=i=1nwiGi(x)

其中Gi(x) 是均值爲μi 方差爲σi 的高斯分佈。
從數學角度看,當i趨向於無窮時,任何連續分佈都可以用混合高斯模型來逼近。但是,高斯混合模型也存在着問題,那就是其計算量偏大。假設對於一個包含n個混合分量的混合高斯模型,其維度爲m維,那麼至少要進行m×n 次運算才能得到結果,如果有i個模型需要計算,那麼時間複雜度就是O((mn)i) 。相比之下,離散HMM就相對簡單,只需要進行一次VQ,再進行i次查表操作,就能夠計算所有模型的概率值。因此,也出現了將二者結合起來的半連續隱馬模型。其思路是輸出概率不僅僅由bj(k)來決定,還乘以VQ的概率,也就是該信號屬於次碼本的概率。

從精確度上看,連續隱馬模型要優於半連續隱馬模型,而半連續隱馬模型又優於離散隱馬模型。從算法複雜度上來看則正好相反。

高斯混合模型(Gaussian Mixture Model, GMM)是語音信號處理中的一種常用的統計模型,該模型的一個基本理論前提是隻要高斯混合的數目足夠多,一個任意的分佈就可以在任意的精度下用這些高斯混合的加權平均來逼近。一個包含M個分量的高斯混合分佈的概率密度函數是M個高斯概率密度分佈函數的加權組合,定義爲:

p(x|λ)=iMωipi(x)

其中的x是D維隨機矢量,pi(x),i=1,2,,M 爲M個概率密度函數分量,ωi,i=1,2,,M 爲各個概率密度函數分量的權重。在上式中,每個概率密度函數分量pi(x) 都服從D維高斯分佈,即
pi(x)=1(2π)D/2|Σi|exp{12(xμ)Σ1(xμi)i}

其中,μi 表示該高斯分量的均值,Σi 表示該高斯分量的協方差矩陣。另外,爲了滿足概率密度函數分佈的要求,上式中各個概率密度函數分量的權重必須滿足Mi=1wi=1 的要求。

在高斯混合模型中,每一個高斯概率密度函數分量pi(x) 都可以由其權重wi 、均值μi 和協方差矩陣Σi 來描述。這樣,一個完整的M分量混合的高斯分佈就可以由以下的三元組集合來表示:

λ={wi,μi,Σi}i=1,2,,M
GMM模型的主要問題爲訓練問題,也就是參數估計問題數估計,使得GMM模型和訓練數據之間達到最佳的匹配程度。GMM的參數估計方法有多種方法,其中應用最廣泛的是基於最大似然準則(Maximum Likelihood Estimation, MLE)的方法。

對於一段給定的訓練語音特徵序列O=O1,O2,,OT ,GMM模型的似然度定義爲:

p(O|λ)=t=1Tp(Ot|λ)

最大似然估計的主要思想就是要找到使得GMM模型對於訓練語料的似然度最大的模型參數λ。同HMM的訓練類似,GMM訓練也可以通過EM進行訓練,其模型參數更新公式爲:
w^i=1TtTp(i|xt,λ)

μ^i=Tt=1p(i|xt,λ)xtTt=1p(i|xt,λ)

σ^i=Tt=1p(i|xt,λ)x2tTt=1p(i|xt,λ)μ^2i

其中p(i|xt,λ) 表示xt 屬於第i個高斯分量的後驗概率。而wi,μi,σ2i 分別表示上一步迭代中模型的 權重、均值、協方差矩陣,而wi^,μi^,σ^2i 則是更新後的對應參數。p(i|xt,λ) 的定義爲:
p(i|xt,λ)=wipi(xi)Mk=1wkpk(xi)

如果隨機矢量各維間的是獨立的,那麼可以採用對角協方差陣,亦即僅估計方差。這種方法能夠極大減少模型參數,讓模型訓練更加充分。同時,需要注意的是,在某些情況下,對角協方差陣可能會出現非常小的方差值,從而使得協方差陣奇異。因此在訓練對角協方差陣的時候必須採用最小方差約束。亦即當新估計出的某維方差σ^i 小於設定σmin 時,讓σ^i 等於σmin

在聲學模型訓練中常用GMM爲狀態輸出概率建模,同時GMM也常用於其他聲音分類任務中,例如聲音分割與分類,說話人識別等。

  • 拓撲結構

由於語音的時序性,隱馬模型的拓撲結構一般都取爲自左向右的結構。一般每個狀態都包括自環(self-loop)。是否允許跨狀態跳轉則沒有一個定論。

下圖是典型的模型拓撲結構示意圖。
這裏寫圖片描述

狀態個數的選擇對於系統性能的影響是很大的。

  • 建模單元選擇

聲學模型的建模單元的選擇需要考慮三方面的因素。其一是該單元的可訓練性,亦即是否能夠得到足夠的語料對每個單元進行訓練,以及訓練所需要的時間長短是否可接受。其二是該單元的可推廣性,當語音識別系統所針對的詞彙集W 發生變化時,原有建模單元是否能夠不加修改的滿足新的詞彙集W 。最後還需要考慮建模的精確性。

根據時間尺度的長短,建模單元可以選擇爲句子,短語,詞,音節,音素乃至更小的半音素(維基百科裏寫的是音子)。一般可以認爲有這樣的原則, 時間尺度越短的建模單元,其可訓練性及推廣性就越強,而時間尺度越長的單元,其精確性就越強。同時,可以看出,句子、 短語、詞三個概念是語言學上的概念,而音節、音素則是語音學上的概念,一般來說,如果聲學模型所針對的應用環境不是確定詞彙量的系統,那麼採用語言學的概念的建模單元是不具備推廣性的。

爲了將協同發音現象(Coarticulation)融入建模中,上下文相關的建模單元(Context Dependent Modeling Units, CD uinits)是一個很好的選擇。其思路是,對於某個音素ah,根據上下文的不同將其拆分成不同的建模單元。例如,用b-ah+d表示ah在b之後,d之前發音的具體實現。上下文的選擇方法有很多,最常見的是三音子建模單元,也就是考慮左上文右下文各一個音素,加上中心音素形成三音素對。

上下文相關建模大大提高了建模的準確性,但是同時也使得模型數量急劇膨脹,使得模型的可訓練性大大降低。爲了解決這一 問題,就需要引入某些聚類算法來減少模型中需要訓練的參數。

  • 聚類方法

爲了解決模型參數過多的問題,可以使用某些聚類方法來減小模型中的參數數量,提高模型的可訓練性。聚類可以在模型層次,狀態層次乃至混合高斯模型中每個混合的層次進行。可以將半連續隱馬模型看作進行高斯混合進行聚類後的連續隱馬模型。目前 應用最多的方法是對狀態聚類的方法。其思路是,根據狀態間混合高斯模型概率輸出的相似性,將輸出概率接近的狀態聚合在 一起,以便訓練更加充分。聚類的方法有基於規則的方法和數據驅動方法兩類。

聚類後的狀態被稱爲Senone,每個Senone都是完整獨立的高斯混合模型,它也是解碼過程中的最基本單元

  • 參數估計

傳統上,參數估計使用的方法爲Baum-Welch算法,屬於最大似然準則下的EM算法。目前研究者提出了多種區分性訓練方法(仍然屬於產生式模型,但使用區分性準則)進行訓練,取得了較好的效果。

參考維基百科-聲學模型

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