【聲紋識別】——綜述

這是學習時的筆記,包含相關資料連接
歡迎感興趣的小夥伴一塊兒討論,跪求大神指點~ios


聲紋識別

tags: voicegit


聲音特性

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

聲紋識別綜述

發展歷史

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

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

1. GMM

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

2. UBM

DA Reynolds的團隊,提出了一種改進的方案:既然無法從目標用戶那裏收集到足夠的語音,那就換一種思路,能夠從其餘地方收集到大量非目標用戶的聲音,聚沙成塔,咱們將這些非目標用戶數據(聲紋識別領域稱爲背景數據)混合起來充分訓練出一個GMM,這個GMM能夠看做是對語音的表徵,可是又因爲它是從大量身份的混雜數據中訓練而成,它又不具有表徵具體身份的能力。 

這個混合GMM相似於貝葉斯框架的先驗模型,它對語音特徵在空間分佈的機率模型給出了一個良好的預先估計,咱們沒必要再像過去那樣從頭開始計算GMM的參數(GMM的參數估計是一種稱爲EM的迭代式估計算法),只須要基於目標用戶的數據在這個混合GMM上進行參數的微調便可實現目標用戶參數的估計,這個混合GMM叫**通用背景模型**(Universal Background Model,UBM)。 

UBM的一個重要的優點在於它是經過最大後驗估計(Maximum A Posterior,MAP)的算法對模型參數進行估計,避免了過擬合的發生。MAP算法的另一個優點是咱們沒必要再去調整目標用戶GMM的全部參數(權重,均值,方差)只須要對各個高斯成分的均值參數進行估計,就能實現最好的識別性能。

可是,待估參數仍是太多了,檢測時須要輸入的語音片斷太長,不符合實際使用需求。
GMM-UBM缺少對應於信道多變性的補償能力,直白點說就是它不抗干擾。

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因子分析

在MAP框架下,咱們都是單獨去調整GMM的每個高斯份量,參數太多太累了,那有沒有辦法同時調整一串高斯份量呢?

藉助一種稱爲因子分析(Factor Analysis,FA)的算法框架,只用數百個基向量的線性組合(每一個基向量的權重就能夠看做是在這個基座標上的座標點),就足夠能表徵全體高斯超向量的變化了,也就是說,咱們如今只須要幾百個變量(一般爲400-600),就足夠表示一個50000維度的高斯份量均值集合! 

基向量的估計是經過一種稱爲基於機率的主成份分析的(Probabilistic Principal Component Analysis, PPCA)的類EM算法,基於海量的背景說話人數據學習而來。這樣少許的數據就能實現GMM高斯份量的總體參數估計,隨着數據量的增長,GMM會迅速趨於一個穩定的參數估計。

5. JFA聯合因子分析

加拿大蒙特利爾研究所(Computer Research Institute of Montreal,CRIM)的科學家兼公式推導帝Patrick Kenny在05年左右提出了一個設想,既然聲紋信息能夠用一個低秩的超向量子空間來表示,那噪聲和其餘信道效應是否是也能用一個不相關的超向量子空間進行表達呢? 

基於這個假設,Kenny提出了聯合因子分析(Joint Factor Analysis,JFA)的理論分析框架,將說話人所處的空間和信道所處的空間作了獨立不相關的假設,在JFA的假設下,與聲紋相關的信息所有能夠由特徵音空間(Eigenvoice)進行表達,而且同一個說話人的多段語音在這個特徵音空間上都能獲得相同的參數映射,之因此實際的GMM模型參數有差別,都是由特徵信道(Eigenchannel),即信道效應的干擾致使的,咱們只須要同時估計出一段語音在特徵音空間上的映射和特徵信道上的映射,而後撇掉特徵信道上的干擾就能夠實現更好的聲紋環境魯棒性。

6. 全因子空間 I-vector

數據之間都具備相關性,但絕對的獨立同分布的假設又是一個過於強的假設。
09年,Kenny的學生,N.Dehak,提出了一個更加寬鬆的假設:既然聲紋信息與信道信息不能作到徹底獨立,那乾脆就用一個超向量子空間對兩種信息同時建模;即正交獨立性沒有辦法知足,那咱們就乾脆用一個子空間同時描述說話人信息和信道信息。 

這時候,同一個說話人,無論怎麼採集語音,採集了多少段語音,在這個子空間上的映射座標都會有差別,這也更符合實際的狀況。這個即模擬說話人差別性又模擬信道差別性的空間稱爲全因子空間(Total Factor Matrix),每段語音在這個空間上的映射座標稱做身份向量(Identity Vector, i-vector),i-vector向量一般維度也不會過高,通常在400-600左右。 

I-vector的出現使得說話人識別的研究一會兒簡化抽象爲了一個數值分析與數據分析的問題:任意的一段音頻,無論長度怎樣,內容如何,最後都會被映射爲一段低維度的定長i-vector。 
咱們只須要找到一些優化手段與測量方法,在海量數據中可以將同一個說話人的幾段i-vector儘量分類得近一些,將不一樣說話人的i-vector儘量分得遠一些。
Dehak在實驗中還發現i-vector具備良好的空間方向區分性,即使上SVM作區分,也只須要選擇一個簡單的餘弦核就能實現很是好的區分性。

截至今日,i-vector在大多數狀況下仍然是文本無關聲紋識別中表現性能最好的建模框架,學者們後續的改進都是基於對i-vector進行優化,包括線性區分分析(Linear Discriminant Analysis, LDA),基於機率的線性預測區分分析(probabilistic linear discriminant analysis,PLDA)甚至是度量學習(Metric Learning)等。

文本相關識別spring

在看似更簡單的文本相關聲紋識別任務上,i-vector表現得卻並不比傳統的GMM-UBM框架更好。 
由於i-vector簡潔的背後是它捨棄了太多的東西,其中就包括了文本差別性,在文本無關識別中,由於註冊和訓練的語音在內容上的差別性比較大,所以咱們須要抑制這種差別性;但在文本相關識別中,咱們又須要放大訓練和識別語音在內容上的類似性,這時候牽一髮而動全身的i-vector就顯得不是那麼合適了。

在文本相關識別應用中,安全性最高的仍然是隨機數字聲紋識別。

趨勢 && 問題

常常用的有gmm-ubm,ivector-plda,deep feature,bottleneck feature 還有一些d-vector對數據量要求比較大的,主流的仍是用nn去提取特徵
再補充幾個,MFCC、Fbank、BNF特徵,GMM-UBM、ivector+PLDA/CDS、GMM+SVM、d-vector最近也挺火的自從谷歌帶起來
http://www.leiphone.com/news/201611/ISBPJpacXH5bI7hE.html?_t=t安全

轉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)模板匹配方法:利用動態時間彎折(DTW)以對準訓練和測試特徵序列,主要用於固定詞組的應用(一般爲文本相關任務);在訓練過程當中從每一個說話人的訓練語句中提取相應的特徵矢量來描述各個說話人的行爲,在測試階段,從說話人的測試語音信號中用一樣的方法提取測試模板,主要有動態時間規整方法和矢量量化方法。
(2)最近鄰方法:訓練時保留全部特徵矢量,識別時對每一個矢量都找到訓練矢量中最近的K個,據此進行識別,一般模型存儲和類似計算的量都很大;
(3)神經網絡方法:有不少種形式,如多層感知、徑向基函數(RBF)等,能夠顯式訓練以區分說話人和其背景說話人,其訓練量很大,且模型的可推廣性很差;
(4)隱式馬爾可夫模型(HMM)方法:一般使用單狀態的HMM,或高斯混合模型(GMM),是比較流行的方法,效果比較好;
(5)VQ聚類方法(如LBG,K-均值):效果比較好,算法複雜度也不高,和HMM方法配合起來更能夠收到更好的效果;
(6)多項式分類器方法:有較高的精度,但模型存儲和計算量都比較大。

表徵說話人確認系統性能的兩個重要參數是錯誤拒絕率和錯誤接受率,前者是拒絕真正說話人而形成的錯誤,後者是接受集外說話人而形成的錯誤,兩者與閾值的設定相關。在現有的技術水平下,二者沒法同時達到最小,須要調整閾值來知足不一樣應用的需求,好比在須要「易用性」的狀況下,可讓錯誤拒絕率低一些,此時錯誤接受率會增長,從而安全性下降;在對「安全性」要求高的狀況下,可讓錯誤接受率低一些,此時錯誤拒絕率會增長,從而易用性下降。

聲紋提取及識別

[MFCC+GMM]

github:openVP網絡

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

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

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

  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

Blog

  • 說話人識別

  • 中科院不公開論文摘要(2016.5)

    聲紋識別是根據語音對說話人進行自動區分,從而進行說話人身份鑑別以及認證的生物特徵識別技術。其中,文本無關的聲紋識別更是因爲其應用環境的靈活性,成爲學術界以及工業界的一個研究熱點。本文將以文本無關的聲紋識別爲研究重點,致力於完成一個完善的且性能良好的聲紋識別系統。主要採用四種建模方法進行研究以及系統實現,包括:
    一、介紹基於GMM-UBM的聲紋識別系統,以此爲基礎,研究並實現了基於TVM-I-Vector的聲紋識別系統。混合高斯-通用背景模型(Gaussian Mixture Model-Universal Background Model,GMM-UBM)將聲學特徵投影到高維空間上,獲得高維的均值超矢量。UBM採用大規模的說話人語料訓練完成,並所以能夠被採進行說話人的共性特徵的描述。而後,以UBM爲初始模型,採用目標說話人數據進行基於最大後驗機率(Maximum A Posterior, MAP)的自適應訓練,獲得目標說話人的混合高斯模型(GMM)。經過計算似然值的方法進行說話人打分,進而進行識別判決。說話人矢量因子(Identity-Vector,I-Vector)模型以GMM-UBM爲基礎,基於的假設是全部的說話人信息隱含在高維的均值超矢量中。它的基本思想是將高維的均值超矢量投影至低維空間中進行建模,即將長短不一的語音文件經過全局差別空間建模(Total Variable space Model, TVM)的方式,獲得長度一致的低維向量做爲說話人模型。這個低維矢量即爲I-Vector。因爲I-Vector建模中沒有區分語音中說話人信息以及信道信息,爲了下降信道對識別的影響,本文分別採用了線性判別分析(Linear Discriminant Analysis,LDA)以及機率線性判別分析(Probability Linear Discriminant Analysis,PLDA)對I-Vector進行信道補償,提升識別效果。
    二、研究並實現了基於DNN統計量提取的I-Vector聲紋識別系統。在基於TVM-I-Vector的聲紋識別系統中,採用UBM計算後驗機率,提取相關統計量,從而進行全局差別空間的估計。考慮到UBM數據驅動的建模方式可能會致使後驗機率計算的偏差較大,從而影響識別性能,本文采用自動語音識別(Automatic Speech Recognition, ASR)任務中訓練獲得的深度神經網絡(Deep Neural Network, DNN)模型做爲計算後驗機率的模型替代UBM,以獲得更準確的統計量進行模型估計,從而提升識別效果。
    三、研究並實現了基於深度瓶頸特徵(Deep Bottleneck Feature, DBF)的I-Vector聲紋識別系統。深度瓶頸層(Deep Bottleneck Layer)在語音識別中的成功應用證實了DBF在特徵表示上的優點。低維的DBF在網絡結構中可以實現高維輸入至輸出的重現,說明它是一種抽象、凝練且更具區分性的特徵。相比於聲紋識別中的Mel頻率倒譜系數 (Mel Frequency Cepstral Coefficients, MFCC)特徵,DBF在聲紋識別上也表現出了必定的優點。在本文中,實現了基於DBF的I-Vector模型的估計。此外,考慮到MFCC以及DBF的互補做用,進行了基於DBF以及MFCC特徵融合的I-Vector建模,進一步提升聲紋識別系統的性能。


有些可能記錄時忘記記錄獲取信息的網站地址,有不當之處請指正~~ (若非特別聲明,文章均爲Vanessa的我的筆記,轉載請註明出處。文章若有侵權內容,請聯繫我,我會及時刪除)

相關文章
相關標籤/搜索