聲紋識別綜述

轉載自:https://blog.csdn.net/Allyli0022/article/details/78195352

聲紋識別由三部分組成:特徵,模型,得分。

特徵方面:

  • MFCC/PLP/FBank等短時頻譜特徵;
  • D-vector (谷歌2014年提的)
  • Deep feature / Bottleneck feature /Tandem feature (三者不是並行關係,可以搜關鍵詞查看相關論文)

模型方面:

  • GMM-UBM
  • JFA (Joint Factor Analysis)
  • GMM-UBM i-vector
  • Supervised-UBM i-vector
  • DNN i-vector (2014年微軟Yun Lei等人提的)

得分方面:

  • SVM(早期與GMM-UBM一起使用最爲後端分類器)
  • Cosine Distance (CDS)
  • LDA
  • PLDA

當然,隨着神經網絡的發展和訓練數據的龐大,谷歌、微軟和百度等公司使用end-to-end的方法集這三個方面於一體,效果也還可以。


除了以上主流技術,還有以下幾種:

BNF特徵,ivector+PLDA/CDS、GMM+SVM、d-vector,ivevtor-plda 還有一些d-vector對數據量要求比較大的,主流的還是用nn去提取特徵。

聲音特性

  1. 語音的特殊性。發音器官分爲聲門上系統、喉系統、聲門下系統,每個人都有自己的一套發音器官,它們的形態、構造各有差別,每次發音需要衆多發音器官相互配合、共同運動。這決定了語音的物理屬性(也稱語音四要素):音質、音長、音強、音高。這些物理量人各不同,因而語音在聲紋圖譜上呈現不同的聲紋特徵,根據這些聲紋特徵參數,我們不但可以區分語聲,而且可以認定同一人的語聲。
  2. 語音的穩定性。一個人的發音器官發育成熟後,其解剖結構和生理狀態是穩定不變的,加之發音人的言語習慣等語音的社會心理屬性,使得每個人在不同時段所說的相同文本內容的話,基本語音特徵是穩定不變的。因此,你可以把人的聲道看做管樂中的號,長號、短號雖然都是號,但由於聲道的形狀、長短不同,吹出來的音質也不同。

發展歷史

新加坡的I2R實驗室發佈了一套用於評測文本相關識別的 標準數據集RSR2015,涵蓋了文本相關領域的多個應用場景。

在聲紋識別,包括語音識別領域,傳統的聲學特徵包括梅爾倒譜系數MFCC、感知線性預測係數PLP、近幾年的逐漸受到關注的深度特徵Deep Feature、以及15年公開發表的能量規整譜系數PNCC等,都能作爲聲紋識別在特徵提取層面可選且表現良好的聲學特徵。

1. GMM

  1. GMM中高斯分量的數量足夠多的時候,GMM可以模擬任意的概率分佈。
  2.  從模式識別的相關定義上來說,GMM是一種參數化(Parameterized)的生成性模型(Generative Model),具備對實際數據極強的表徵力;但反過來,GMM規模越龐大,表徵力越強,其負面效應也會越明顯:參數規模也會等比例的膨脹,需要更多的數據來驅動GMM的參數訓練才能得到一個更加通用(或稱泛化)的GMM模型。

2. UBM

  1. DA Reynolds的團隊,提出了一種改進的方案:既然沒法從目標用戶那裏收集到足夠的語音,那就換一種思路,可以從其他地方收集到大量非目標用戶的聲音,積少成多,我們將這些非目標用戶數據(聲紋識別領域稱爲背景數據)混合起來充分訓練出一個GMM,這個GMM可以看作是對語音的表徵,但是又由於它是從大量身份的混雜數據中訓練而成,它又不具備表徵具體身份的能力。
  2. 這個混合GMM類似於貝葉斯框架的先驗模型,它對語音特徵在空間分佈的概率模型給出了一個良好的預先估計,我們不必再像過去那樣從頭開始計算GMM的參數(GMM的參數估計是一種稱爲EM的迭代式估計算法),只需要基於目標用戶的數據在這個混合GMM上進行參數的微調即可實現目標用戶參數的估計,這個混合GMM叫**通用背景模型**(Universal Background Model,UBM)。
  3. UBM的一個重要的優勢在於它是通過最大後驗估計(Maximum A Posterior,MAP)的算法對模型參數進行估計,避免了過擬合的發生。MAP算法的另外一個優勢是我們不必再去調整目標用戶GMM的所有參數(權重,均值,方差)只需要對各個高斯成分的均值參數進行估計,就能實現最好的識別性能。
  4. 但是,待估參數還是太多了,檢測時需要輸入的語音片段太長,不符合實際使用需求。
  5. GMM-UBM缺乏對應於信道多變性的補償能力,直白點說就是它不抗干擾。
  6. UBM受訓練時長、混合度、信道類型、男女比例等因素影響比較大。

3. 支持向量機

WM Campbell將支持向量機(Support Vector Machine,SVM)引入了GMM-UBM的建模中,通過將GMM每個高斯分量的均值單獨拎出來,構建一個高斯超向量(Gaussian Super Vector,GSV)作爲SVM的樣本,利用SVM核函數的強大非線性分類能力,在原始GMM-UBM的基礎上大幅提升了識別的性能,同時基於GSV的一些規整算法,例如擾動屬性投影(Nuisance Attribute Projection, NAP),類內方差規整(Within Class Covariance Normalization,WCCN)等,都在一定程度上補償了由於信道易變形對聲紋建模帶來的影響。

4. FA因子分析

  1. 在MAP框架下,我們都是單獨去調整GMM的每一個高斯分量,參數太多太累了,那有沒有辦法同時調整一串高斯分量呢?
  2. 藉助一種稱爲因子分析(Factor Analysis,FA)的算法框架,只用數百個基向量的線性組合(每個基向量的權重就可以看作是在這個基座標上的座標點),就足夠能表徵全體高斯超向量的變化了,也就是說,我們現在只需要幾百個變量(通常爲400-600),就足夠表示一個50000維度的高斯分量均值集合!
  3. 基向量的估計是通過一種稱爲基於概率的主成份分析的(Probabilistic Principal Component Analysis, PPCA)的類EM算法,基於海量的背景說話人數據學習而來。這樣少量的數據就能實現GMM高斯分量的整體參數估計,隨着數據量的增加,GMM會迅速趨於一個穩定的參數估計。

5. JFA聯合因子分析

  1. 加拿大蒙特利爾研究所(Computer Research Institute of Montreal,CRIM)的科學家兼公式推導帝Patrick Kenny在05年左右提出了一個設想,既然聲紋信息可以用一個低秩的超向量子空間來表示,那噪聲和其他信道效應是不是也能用一個不相關的超向量子空間進行表達呢?
  2. 基於這個假設,Kenny提出了聯合因子分析(Joint Factor Analysis,JFA)的理論分析框架,將說話人所處的空間和信道所處的空間做了獨立不相關的假設,在JFA的假設下,與聲紋相關的信息全部可以由特徵音空間(Eigenvoice)進行表達,並且同一個說話人的多段語音在這個特徵音空間上都能得到相同的參數映射,之所以實際的GMM模型參數有差異,都是由特徵信道(Eigenchannel),即信道效應的干擾導致的,我們只需要同時估計出一段語音在特徵音空間上的映射和特徵信道上的映射,然後撇掉特徵信道上的干擾就可以實現更好的聲紋環境魯棒性。

6. 全因子空間 I-vector

  1. 數據之間都具有相關性,但絕對的獨立同分布的假設又是一個過於強的假設。
  2. 09年,Kenny的學生,N.Dehak,提出了一個更加寬鬆的假設:既然聲紋信息與信道信息不能做到完全獨立,那乾脆就用一個超向量子空間對兩種信息同時建模;即正交獨立性沒有辦法滿足,那我們就乾脆用一個子空間同時描述說話人信息和信道信息。
  3. 這時候,同一個說話人,不管怎麼採集語音,採集了多少段語音,在這個子空間上的映射座標都會有差異,這也更符合實際的情況。這個即模擬說話人差異性又模擬信道差異性的空間稱爲全因子空間(Total Factor Matrix),每段語音在這個空間上的映射座標稱作身份向量(Identity Vector, i-vector),i-vector向量通常維度也不會太高,一般在400-600左右。
  4. I-vector的出現使得說話人識別的研究一下子簡化抽象爲了一個數值分析與數據分析的問題:任意的一段音頻,不管長度怎樣,內容如何,最後都會被映射爲一段低維度的定長i-vector
  5. 我們只需要找到一些優化手段與測量方法,在海量數據中能夠將同一個說話人的幾段i-vector儘可能分類得近一些,將不同說話人的i-vector儘可能分得遠一些。
  6. Dehak在實驗中還發現i-vector具有良好的空間方向區分性,即便上SVM做區分,也只需要選擇一個簡單的餘弦核就能實現非常好的區分性。
  7. 截至今日,i-vector在大多數情況下仍然是文本無關聲紋識別中表現性能最好的建模框架,學者們後續的改進都是基於對i-vector進行優化,包括線性區分分析(Linear Discriminant Analysis, LDA),基於概率的線性預測區分分析(probabilistic linear discriminant analysis,PLDA)甚至是度量學習(Metric Learning)等。

趨勢 && 問題

轉wav、去靜音VAD,MFCC提取、CVN歸一化等等根據語料的情況做出要用哪些怎麼處理;接着是訓練GMM-UBM,訓練出每個高斯分量的參數(均值方差權值),當中是使用EM和MAP;接着是訓練總體變化子空間T,使高斯分量從高維映射到低維的i-vector,得到i-vector矢量以後要繼續從400維降到200維,比較多用的是LDA,然後用WCCN對類內空間歸一化來提升類間的差異;這樣就可以得到該speaker的均值和方差作爲一個對比的根據。最後把待識別的speaker也經過上面的步驟,得到待識別的參數,再和訓練speakers進行打分判斷哪個相似度更高;打分的方法可以用PLDA概率形式LDA或者CDS餘弦距離打分。要實現更低的EER適應複雜噪聲環境,可以用到DNN的Bottleneck方法提取speaker的充分統計量,而且各種算法合理組合優化也成了目前趨勢。

跨信道、短語音、背景噪聲、健康狀況、說話人情感變化等是目前存在的問題。

文本無關的聲紋識別

語音--預處理--提取特徵向量--模式匹配(根據特徵向量訓練聲紋模型庫)--後處理--識別結果

模式匹配方法概論

  1. (1)模板匹配方法:利用動態時間彎折(DTW)以對準訓練和測試特徵序列,主要用於固定詞組的應用(通常爲文本相關任務);在訓練過程中從每個說話人的訓練語句中提取相應的特徵矢量來描述各個說話人的行爲,在測試階段,從說話人的測試語音信號中用同樣的方法提取測試模板,主要有動態時間規整方法和矢量量化方法。
  2. (2)最近鄰方法:訓練時保留所有特徵矢量,識別時對每個矢量都找到訓練矢量中最近的K個,據此進行識別,通常模型存儲和相似計算的量都很大;
  3. (3)神經網絡方法:有很多種形式,如多層感知、徑向基函數(RBF)等,可以顯式訓練以區分說話人和其背景說話人,其訓練量很大,且模型的可推廣性不好;
  4. (4)隱式馬爾可夫模型(HMM)方法:通常使用單狀態的HMM,或高斯混合模型(GMM),是比較流行的方法,效果比較好;
  5. (5)VQ聚類方法(如LBG,K-均值):效果比較好,算法複雜度也不高,和HMM方法配合起來更可以收到更好的效果;
  6. (6)多項式分類器方法:有較高的精度,但模型存儲和計算量都比較大。
  7. 表徵說話人確認系統性能的兩個重要參數是錯誤拒絕率和錯誤接受率,前者是拒絕真正說話人而造成的錯誤,後者是接受集外說話人而造成的錯誤,二者與閾值的設定相關。在現有的技術水平下,兩者無法同時達到最小,需要調整閾值來滿足不同應用的需求,比如在需要“易用性”的情況下,可以讓錯誤拒絕率低一些,此時錯誤接受率會增加,從而安全性降低;在對“安全性”要求高的情況下,可以讓錯誤接受率低一些,此時錯誤拒絕率會增加,從而易用性降低。

聲紋提取及識別

[MFCC+GMM]

github:openVP

  1. 對輸入的語音數據序列(PCM 碼流)進行預處理。

    a) 去除非語音信號 和 靜默語音信號;

    b) 對語音信號分幀,以供後續處理。

  2. 提取每一幀語音信號的MFCC 參數 並保存。
    1)預增強(Pre-Emphasis) :差分語音信號。
    2)音框化(Framing) :對語音數據分幀。
    3)漢明窗(Hamming Windowing) :對每幀信號加窗,以減小吉布斯效應的影響。
    4)快速傅立葉變換(FFT) :將時域信號變換成爲信號的功率譜。
    5)三角帶通濾波器(Triangle Filters) :三角濾波器覆蓋的範圍都近似於人耳的一個臨界帶寬,以此來 模擬人耳的掩蔽效應。
    6)離散餘弦轉換(DCT) :去除各維信號之間的相關性,將信號映射到低維空間。

  3. 用第2 步提取的 MFCC 參數訓練話者的 GMM (高斯混合模型),得到專屬某話者的 GMM 聲紋模型。
  4. 聲紋識別。提供輸入話音與GMM 聲紋模型的匹配運算函數,以判斷輸入話音是否與聲紋匹配。

GMM-UBM系統框架

  • [ ] 不大明白

高斯混合模型GMM將空間分佈的概率密度用多個高斯概率密度函數的加權和來擬合,可以平滑地逼近任意形狀的概率密度函數,並且是一個易於處理的參數模型。在具體表示上,這個模型實際上就是把高斯混合模型的每個高斯分量的均值向量排列在一起組成一個超向量作爲某一個說話人的模型,稱爲均值超矢量。

在訓練說話人模型的時候,由於註冊時說話人的數據稀疏,通常利用一個通用背景模型(Universal Background Model,UBM)和少量的說話人數據,通過自適應算法(如最大後驗概率MAP,最大似然線性迴歸MLLR等)得到目標說話人模型。

對數似然比的評價指標。用測試數據分別與模型和UBM進行似然度比較,然後將這兩個似然相除再取對數,用得到的值作爲打分來評價一條測試數據是否和模型匹配。由於UBM代表了最最普遍的平凡的語音特徵,而模型代表了屬於這一個說話人的特徵。用對數似然比來表示,就是評價測試數據到底和模型更接近還是和UBM最接近。最後設定一個閥值,用來進行最後的分類判斷。

UBM平均每個混合得到100幀左右訓練樣本時,能夠獲得較高且較穩定識別率

聯合因子分析

信道魯棒
聯合因子分析認爲,在GMM-UBM系統中的高斯模型均值超矢量,大體上可以分爲跟說話人本身有關的矢量特徵和跟信道以及其他變化有關的矢量特徵的線性疊加。也就是,將說話人GMM均值超矢量所在的空間劃分爲本徵空間,信道空間,最後還有一個殘差空間。這樣,如果我們能抽取出跟說話人本身相關的特徵而去掉和信道相關的特徵,就能很好地克服信道影響進行識別了。

I-vector特徵

受聯合因子分析理論的啓發,Dehak提出了從GMM均值超矢量中提取一個更緊湊的矢量,稱爲I-Vector。這裏的I是身份(Identity)的意思,出於自然的理解,I-Vector相當於說話人的身份標識。

信道補償算法

信道補償主要分三個層次:基於特徵的補償,基於模型的補償和基於得分的補償。

LDA線性鑑別分析

LDA至多可生成C-1維子空間(C爲分類類別數),LDA降維後的度區間在 [1,C-1] ,與原始特徵數n無關,因此二分類問題至多可以降維到一維,導致有些線性不可分數據分佈情況無法分類。在說話人識別中,大部分情況是二分類問題,所以這裏LDA的作用是將原始高維特徵數據降維到一維,這樣每一個樣本特徵向量映射爲一維上的一個點,這個點的數值表示該點到原點的距離。

當一個說話人有很多語音時,表現爲這些語音在說話人空間中聚集爲一簇。如果這些語音收到信道的影響,那麼就表現爲這個說話人的語音的方差很大。然後,LDA嘗試着找到一個新的方向,將原來的所有數據投影到這個方向,使得在這個方向中同一說話人的數據具有最小的類內方差,同時不同說話人之間的距離儘量大。這樣,就達到減小信道差異的影響了。

LDA其實也是一種降維方法。它儘量去移除不需要的方向,最小化類內的方差信息量。也就是,LDA尋找一個新的方向去更好地對不同的類做出分類。可見,LDA非常適合作爲說話人識別系統的信道補償算法。

當使用LDA對測試數據和模型的I-vector進行重新投影后,然後計算它們之間的cosine距離,就可以作爲最後的得分。

最後簡單說一下,LDA如何找到這個映射方向。前面不是說LDA的目的是最大化類間距離,最小化類內距離麼。我們很容易認爲只要定義一個目標函數然後去用一般的最優化方法去求近似解就好了。其實,不用這麼麻煩的,LDA是可以直接求取解析解的。具體方法就是對目標函數求導並且令導數爲零。但是在求導之前,記得對分母進行歸一化,因爲如果不歸一化的話,映射方向擴大任意倍等成立,所以不好確定映射方向的具體值。

OK,求解析解的過程中,經過一系列變化,我們最終只要求出原始樣本的均值和方差就可以最佳映射方向 w,這就是Fisher 於 1936年提出的線性判別分析。

PLDA(概率線性判別分析)算法

Paper

GMM+UBM

i-vector

參考:http://blog.csdn.net/whu_paprika/article/category/2735103
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章