時間繼續(xù)前進,為了解決GMM-UBM待估參數過多的問題,學界與工業(yè)界可謂費盡心思,忽然有一天,學者們發(fā)現了:在MAP框架下,我們都是單獨去調整GMM的每一個高斯分量,參數太多太累了,那有沒有辦法同時調整一串高斯分量呢?我們玩街霸也不用給每個關節(jié)都配備一個按鈕,四個按鍵照樣也能發(fā)出波動拳啊。
那有沒有這樣一種方法,讓我們只能用少量的參數就能控制GMM中所有高斯成分的變化呢?答案當然是有,我們借助一種稱為因子分析(Factor Analysis,FA)的算法框架,只用數百個基向量的線性組合(每個基向量的權重就可以看作是在這個基坐標上的坐標點),就足夠能表征全體高斯超向量的變化了,也就是說,我們現在只需要幾百個變量(通常為400-600),就足夠表示一個50000維度的高斯分量均值集合!
其實,這種降維的思想在過去就已經廣泛應用于圖像,語音和數據的壓縮技術中,因為真實數據總是帶著相當多的冗余信息,我們可以做到只損失一小部分精度,甚至不損失精度,就能實現數據的壓縮與降維,而基向量的估計是通過一種稱為基于概率的主成份分析的(Probabilistic Principal Component Analysis, PPCA)的類EM算法,基于海量的背景說話人數據學習而來。這下好了,模型參數一下子從50000一下子降到了500,簡直堪比夢中的房價走勢。這樣少量的數據就能實現GMM高斯分量的整體參數估計,隨著數據量的增加,GMM會迅速趨于一個穩(wěn)定的參數估計。在上面提到的難點中,a,b,c在很大程度上得到了解決。

圖11:基于FA框架的Eigenvoice MAP用戶模型訓練算法
但是,別忘了還有難點d啊,那怎么辦?加拿大蒙特利爾研究所(Computer Research Institute of Montreal,CRIM)的科學家兼公式推導帝Patrick Kenny在05年左右提出了一個設想,既然聲紋信息可以用一個低秩的超向量子空間來表示,那噪聲和其他信道效應是不是也能用一個不相關的超向量子空間進行表達呢?
基于這個假設,Kenny提出了聯(lián)合因子分析(Joint Factor Analysis,JFA)的理論分析框架,將說話人所處的空間和信道所處的空間做了獨立不相關的假設,在JFA的假設下,與聲紋相關的信息全部可以由特征音空間(Eigenvoice)進行表達,并且同一個說話人的多段語音在這個特征音空間上都能得到相同的參數映射,之所以實際的GMM模型參數有差異,都是由特征信道(Eigenchannel),即信道效應的干擾導致的,我們只需要同時估計出一段語音在特征音空間上的映射和特征信道上的映射,然后撇掉特征信道上的干擾就可以實現更好的聲紋環(huán)境魯棒性。
而JFA兩個子空間的聯(lián)合推導簡直堪稱是Kenny大神奪目的數學表演,有興趣的讀者可以參考 [5],我估計不是聲紋圈的翻了第一頁和最后一頁就可以直接關閉pdf了。
JFA在05之后的NIST聲紋比賽中以絕對的優(yōu)勢成為了性能最優(yōu)的識別系統(tǒng),但JFA就足夠好了嗎?聲紋領域的天空中仍然漂浮著一小朵烏云,盡管JFA對于特征音空間與特征信道空間的獨立假設看似合理,但天下沒有免費的午餐,現實世界中,盡管任何數據都存在冗余,即數據之間都具有相關性,但絕對的獨立同分布的假設又是一個過于強的假設,你可以說你和你家旺財在長相上沒什么相關性,但你們都有一對兒眼睛一張嘴啊…(也許都很能吃),這種獨立同分布的假設往往為數學的推導提供了便利,但卻限制了模型的泛化能力。
那腫么辦?時間來到了09年,Kenny的學生,N.Dehak,提出了一個更加寬松的假設:既然聲紋信息與信道信息不能做到完全獨立,那干脆就用一個超向量子空間對兩種信息同時建模拉倒!回想下JFA的假設:
同一個說話人,不管怎么采集語音,采集了多少段語音,在特征音子空間上的參數映射都應該是相同的;而最終的GMM模型參數之所以有差別,這個鍋就丟給特征信道子空間來背;
特征音子空間和特征信道子空間互相獨立。
JFA的這種“強”假設在實際使用中已經被驗證必然不會滿足。 因此N.Dehak同志說:大家都是戰(zhàn)友,不要再分你的我的,有福同享有難同當啦。這個更寬松的假設就是:既然正交獨立性沒有辦法滿足,那我們就干脆用一個子空間同時描述說話人信息和信道信息。
這時候,同一個說話人,不管怎么采集語音,采集了多少段語音,在這個子空間上的映射坐標都會有差異,這也更符合實際的情況。這個即模擬說話人差異性又模擬信道差異性的空間稱為全因子空間(Total Factor Matrix),每段語音在這個空間上的映射坐標稱作身份向量(Identity Vector, i-vector),i-vector向量通常維度也不會太高,一般在400-600左右 [6]。