由於高斯混合模型中參數數量非常大,因此本文提出了子空間高斯混合模型(subspace GMM),
HMM在語音識別中的架構如上圖所示,其中HMM狀態j產生觀測序列是由GMM表示:
其中:i 表示GMM模型中component個數,j表示狀態
下表顯示了每個狀態pdfs對應的GMM參數
子空間高斯混合模型SGMM中對以上參數進行優化,公式如下:
這裏新增了一個向量Vj, Vj是一個S維的向量。
x爲D維的特徵向量,通常爲39維MFCC,
j爲trip-hone
Σi 爲協方差,同一個高斯component中,狀態之間共享同一個協方差。
這樣參數可以簡化成如下所示:
其中中間灰色部分爲替換的部分。
由於狀態j又有Mj 個子狀態,則把狀態j替換成jm的子狀態對,則公式如下所示:
其中Cjm ≥ 0 且
則現在每個狀態是混合中的混合模型,即j是由Mj 個子狀態,I個高斯components混合構成。
現在,我們再使用CMLLR特徵變換,其中特徵向量x變換爲x'
其中上面s爲說話人索引。同時對似然引入一個行列式因子| det A(s)|
爲了增加說話人自適應,對每個高斯component i中的均值添加一個偏移Niv(s)
則SGMM改寫爲如下:
爲了訓練SGMM,首先需要一個通用的背景模型(UBM),訓練過程如下所示:
1)初始爲一個HMM-GMM模型;
2)狀態綁定,高斯聚類,來初始化一個UBM;
3)在訓練數據上,用E-M算法來進行調優,這樣我們就初始化完成一個SGMM模型;
4)接下來有2部E-M訓練,第一步是用Viterbi狀態對齊我們的HMM-GMM基線,第二步是用Viterbi對齊來得到SGMM模型(self-align過程),每步驟都是一個迭代的過程。
下一篇會詳解初始化和訓練的SGMM過程。
有了SGMM模型,我們再來看看SGMM的優勢,看一下參數節省了多少:
如下表所示:
上表中,左側爲基線版參數個數共:2.1百萬個,右側爲SGMM參數個數,爲1.57百萬個
優勢明顯。