聲學模型（Acoustic model）是語音識別系統中最為重要的部分之一，目前的主流系統多采用隱馬爾科夫模型進行建模。 隱馬爾可夫模型的概念是一個離散時域有限狀態自動機，隱馬爾可夫模型 HMM 是指這一馬爾可夫模型的內部狀態外界不可見，外界只能看到各個時刻的輸出值。對語音識別系統，輸出值通常就是從各個幀計算而得的聲學特徵。用 HMM 刻畫語音訊號需作出兩個假設，一是內部狀態的轉移只與上一狀態有關，另一是輸出值只與當前狀態（或當前的狀態轉移）有關，這兩個假設大大降低了模型的複雜度。HMM 的打分、解碼和訓練相應的演算法是前向演算法、維特比演算法和前向後向演算法。 輸出機率 聲學模型的輸入是由特徵提取模組提取的特徵。一般來說，這些特徵是多維的向量，並且其取值可以是離散或連續的。早期的聲學模型常常採用向量量化 Vector Quantification 的方法，將訊號直接對映到某個碼本 k，而後再計算某個模型 j 輸出該碼本的機率 b_j k。但是這一方法是比較粗糙的，其效能受到 VQ 演算法的極大影響，如果 VQ 本身效能就很差，聲學模型的估計就會很不準確。因此，對於連續取值的特徵應當採用連續的機率分佈。由於語音訊號特徵的分佈並不能用簡單的機率分佈，例如高斯分佈等來直接描述，故而常用高斯混合模型或混合拉普拉斯模型等方法對語音訊號的分佈進行擬合。在此，高斯混合分佈可以表示為若干高斯分量 G_i 的加權組合。即： G x sum_i1n w_icdot G_i x 其中 G_i x 是均值為 mu_i 方差為 sigma_i 的高斯分佈。從數學角度看，當 i 趨向於無窮時，任何連續分佈都可以用混合高斯模型來逼近。但是，高斯混合模型也存在著問題，那就是其計算量偏大。假設對於一個包含 n 個混合分量的高斯混合模型，其維度為 m 維，那麼至少要進行 mtimes n 次運算才能得到結果，如果有 i 個模型需要計算，那麼時間複雜度就是 O mnk。相比之下，離散 HMM 就相對簡單，只需要進行一次 VQ，再進行 i 次查表操作，就能夠計算所有模型的機率值。因此，也出現了將二者結合起來的半連續隱馬模型。其思路是輸出機率不僅僅由 b_j k 來決定，還乘上了 VQ 的機率，亦即該訊號屬於次碼本的機率。 從精確度上看，連續隱馬模型要優於半連續隱馬模型，而半連續隱馬模型又優於離散隱馬模型。從演算法複雜度上來看則正好相反。LR Rabiner A tutorial on Hidden Markov Models and selected applications in speech recognition in Proceedings of the IEEE vol 77 pp 257287 1989 高斯混合模型（Gaussian Mixture Model GMM）是語音訊號處理中的一種常用的統計模型，該模型的一個基本理論前提是隻要高斯混合的數目足夠多，一個任意的分佈就可以在任意的精度下用這些高斯混合的加權平均來逼近。一個包含 M 個分量的高斯混合分佈的機率密度函式是 M 個高斯機率密度分佈函式的加權組合，定義為 DA Reynolds and RC Rose Robust textindependent speaker identification using Gaussian mixture speaker models IEEE Transaction on Speech Audio Process vol 3 pp 7283 1995 p xlambda sum_iMomega_ip_i x 其中的 x 是 D 維隨機向量，p_i x i 1 2 cdotsM 為 M 個機率密度函式分量，omega_i i 12cdotsM 為各個機率密度函式分量的權重。在上式中，每個機率密度函式分量 p_i x 都服從 D 維高斯分佈，即 p_i xfrac 12piD2Sigma_i expleftfrac 12xmu_iSigma_i1xmu_iright 其中，mu_i 表示該高斯分量的均值，Sigma_i 表示該高斯分量的協方差矩陣。另外，為了滿足機率密度函式分佈的要求，上式中各個機率密度函式分量的權重必須滿足 sum_i1M w_i 1 的要求。 在高斯混合模型中，每一個高斯機率密度函式分量 p_i x 都可以由其權重 w_i、均值 mu_i 和協方差矩陣 Sigma_i 來描述。這樣，一個完整的 M 分量混合的高斯分佈就可以由以下的三元組集合來表示： lambdaleftw_imu_iSigma_iright quadquad i12cdotsM GMM 模型的主要問題為訓練問題，亦即引數估計問題數估計，使得 GMM 模型和訓練資料之間達到最佳的匹配程度。GMM 的引數估 計方法有多種方法，其中應用最廣泛的是基於最大似然準則 Maximum Likelihood Estimation MLE 的方法。 對於一段給定的訓練語音特徵序列 O O_1O_2cdotsO_T ，GMM 模型的似然度定義為： p Olambda prod_t1T p O_tlambda 最大似然估計的主要思想就是要找到使得 GMM 模型對於訓練語料的似然度最大的模型引數 lambda。同 HMM 的訓練類似，GMM 訓練也可以透過 EM 進行訓練，其模型引數更新公式為： hat w_i frac 1Tsum_tT p ix_tlambda hat mu_i frac sum_t1T p ix_tlambda x_tsum_t1T p ix_tlambda hat sigma_i frac sum_t1T p ix_tlambda x2_tsum_t1T p ix_tlambdahat mu_i2 其中 p ix_tlambda 表示 x_t 屬於第 i 個高斯分量的後驗機率。而 w_imu_isigma_i2 分表表示上一步迭代中模型的 權重、均值、協方差矩陣，而 hat w_ihat mu_ihat sigma_i2 則是更新後的對應引數。p ix_tlambda 的定義為： p ix_tlambda frac w_ip_i x_isum_k1M w_kp_k x_i 如果隨機向量各維間的是獨立的，那麼可以採用對角協方差陣，亦即僅估計方差。這種方法能夠極大減少模型引數，讓模型訓練更加充分。同時，需要注意的是，在某些情況下，對角協方差陣可能會出現非常小的方差值，從而使得協方差陣奇異。因此在訓練對角協方差陣的時候必須採用最小方差約束。亦即當新估計出的某維方差 hat sigma_i 小於設定 sigma_min 時，讓 hat sigma_i 等於 sigma_min。 在聲學模型訓練中常用 GMM 為狀態輸出機率建模，同時 GMM 也常用於其他聲音分類任務中，例如聲音分割與分類，說話人識別等。 模型拓撲結構 由於語音的時序性，隱馬模型的拓撲結構一般都取為自左向右的結構。一般每個狀態都包括自跳轉弧。是否允許跨狀態 跳轉則沒有一個定論。 下圖是典型的模型拓撲結構示意圖。 狀態個數的選擇對於系統性能的影響是很大的。 建模單元選擇 聲學模型的建模單元的選擇需要考慮三方面的因素。其一是該單元的可訓練性，亦即是否能夠得到足夠的語料對每個單元進行訓練，以及訓練所需要的時間長短是否可接受。其二是該單元的可推廣性，當語音識別系統所針對的詞彙集 mathcal W 發生變化時，原有建模單元是否能夠不加修改的滿足新的詞彙集 mathcal W。最後還需要考慮建模的精確性。 根據時間尺度的長短，建模單元可以選擇為句子，短語，詞，音節，音子乃至更小的半音子。一般可以認為有這樣的原則， 時間尺度越短的建模單元，其可訓練性及推廣性就越強，而時間尺度越長的單元，其精確性就越強。同時，可以看出，句子、 短語、詞三個概念是語言學上的概念，而音節、音子則是語音學上的概念，一般來說，如果聲學模型所針對的應用環境不是 確定詞彙量的系統，那麼採用語言學的概念的建模單元是不具備推廣性的。 為了將協同發音現象 融入建模中，上下文相關的建模單元 CD uinits 是一個很好的選擇。其思路是，對於某個音子 ah，根據上下文的不同將其拆分成不同的建模單元。例如，用 bahd 表示 ah 在 b 之後，d 之前發音的具體實現。上下文的選擇方法有很多，最常見的是三音子建模單元，也就是考慮左上文右下文各一個音子，加上中心音子形成三音子對。 上下文相關建模大大提高了建模的準確性，但是同時也使得模型數量急劇膨脹，使得模型的可訓練性大大降低。為了解決這一 問題，就需要引入某些聚類演算法來減少模型中需要訓練的引數。 聚類方法 為了解決模型引數過多的問題，可以使用某些聚類方法來減小模型中的引數數量，提高模型的可訓練性。聚類可以在模型層次， 狀態層次乃至混合高斯模型中每個混合的層次進行。可以將半連續隱馬模型看作進行高斯混合進行聚類後的連續隱馬模型。目前 應用最多的方法是對狀態聚類的方法。其思路是，根據狀態間混合高斯模型機率輸出的相似性，將輸出機率接近的狀態聚合在 一起，以便對其的訓練更加充分。聚類的方法有基於規則的方法和資料驅動方法兩類。 聚類後的狀態被稱為 Senone，每個 Senone 都是完整獨立的高斯混合模型，它也是解碼過程中的最基本單元 KF Lee Largevocabulary speaker independent continuous speech recognition the Sphinx system PhD thesis Carnegie Mellon University 1988。 引數估計 傳統上，引數估計使用的方法為 BaumWelch 演算法，屬於最大似然準則下的 EM 演算法。目前研究者提出了多種區分性訓練方法（仍然屬於產生式模型，但使用區分性準則）進行訓練，取得了較好的效果。 參考資料 Category 計算語言學 Category 語音識別