聲紋識別之GMM-UBM系統框架簡介

在深度學習的路上,從頭開始瞭解一下各項技術。本人是DL小白,連續記錄我自己看的一些東西,大家可以互相交流。

本文參考:https://blog.csdn.net/twinkle_star1314/article/details/55050138

https://wenku.baidu.com/view/c6e257d576eeaeaad1f33020.html

https://blog.csdn.net/xmu_jupiter/article/details/47209961

論文:話者確認中信道和時長失配補償研究_胡羣威

 

本來今天是要學習i-vector的,但是在學習過程中,發現缺乏了關於聲紋識別的一個重要前置條件,所以先講一下GMM-UBM系統框架。

這篇內容乾貨不多,主要是對聲紋識別中i-vector理解的一個前置補充,大家可以選看。

一、前言

聲紋識別,也稱做說話人識別,是一種通過聲音來判別說話人身份的技術(pretty cool, right?)。根據研究表明,聲紋雖然不如指紋、人臉這樣,個體差異明顯,但是由於每個人的聲道、口腔和鼻腔(發音要用到的器官)也具有個體差異性。因爲反映到聲音上,也是具有差異性的。就比如說,當我們在接電話的時候,通過一聲"喂",我們就能準確的分辨出接電話的是誰,我們人耳作爲身體的接收器生來就具有分辨聲音的能力,那麼我們也可以通過技術的手段,使聲紋也可以向人臉、指紋那樣作爲“個人身份認證”的重要信息。

二、簡單說話人識別的流程

首先,我們來看一個典型的說話人確認系統流程圖。爲了讓計算機認識一個用戶,我們需要將目標用戶的聲音提取特徵,訓練爲一個或多個模型,存儲在我們的模型庫中。當我們在測試或實際使用中,實際上就是提取當前接收到的語音中的特徵,將其與我們模型庫中的模型進行對比判斷,最終確認誰是當前語音的說話人。因此,識別性能好壞的關鍵在於對語音中身份信息的建模能力與區分能力,同時對於身份無關的其餘信息具有充分的抗干擾能力和魯棒性。

三、GMM-UBM系統框架

在之前的文章中,我曾向大家介紹過GMM(高斯混合模型)。它將空間分佈的概率密度用多個高斯概率密度函數的加權來擬合,可以平滑的逼近任意形狀的概率密度函數,並且是一個易於處理的參數模型,具備對實際數據極強的表徵力。但反過來,GMM規模越龐大,表徵力越強,其負面效應也會越明顯:參數規模也會等比例的膨脹,需要更多的數據來驅動GMM的參數訓練才能得到一個更加通用(或稱泛化)的GMM模型。

在實際中每一個說話人的語音數據很少,這將導致無法訓練出高效的GMM模型。並且由於多通道的問題,訓練GMM模型的語音與測試語音存在失配的情況,這些因素都會降低聲紋識別系統的性能。所以機器學習的前輩們(DA Reynolds的團隊)提出了一個通用背景模型(Universal Background Model, 簡稱UBM)。我們可以用UBM和少量的說話人數據,通過自適應算法(如最大後驗概率MAP、最大似然線性迴歸MLLR等,本文選擇闡述MAP算法)來得到目標說話人模型。

GMM-UBM實際上是一種對GMM的改進方法,我們既然沒法從目標用戶那裏收集到足夠的語音,那就換一種思路,可以從其他地方收集到大量非目標用戶的聲音,我們將這些非目標用戶數據(聲紋識別領域稱爲背景數據)混合起來充分訓練出一個GMM,這個GMM可以看作是對語音的表徵,但是又由於它是從大量身份的混雜數據中訓練而成,它又不具備表徵具體身份的能力。我們可以把這種模型看作是某一個具體說話人模型的先驗模型。形象的比方就是說你準備去相親,媒人給你看了小莉的照片,你耳邊浮現的肯定是小莉各種可能的溫柔的聲音,而不是你家旺財的叫聲。這種GMM-UBM就是起到類似的作用,它對語音特徵在空間分佈的概率模型給出一個良好的預先估計,讓我們可以提前訓練GMM。然後將目標用戶的數據在這個模型上進行參數的微調即可。GMM-UBM模型最重要的優勢就是通過MAP算法對模型參數進行估計,避免了過擬合的發生,同時我們不必調整目標用戶GMM的所有參數(權重,均值,方差)只需要對各個高斯成分的均值參數進行估計,就能實現最好的識別性能。 根據實驗表明,這可以讓待估的參數減少超過一半,越少的參數也意味着更快的收斂,不需要那麼多的目標用戶數據即可模型的良好訓練。

通過上圖我們可以大致的瞭解GMM-UBM模型的大致邏輯。用大白話講就是,用其他用戶的數據來進行“預訓練”,減少對真正目標用戶的訓練時間和參數調整。

四、MAP自適應算法

在GMM-UBM系統框架中,UBM擬合出大量說話人的特徵分佈,目標用戶的數據散落在UBM某些高斯分佈的附近。其中自適應的過程就是將UBM的每個高斯分佈向目標用戶數據偏移。極大後驗概率(MAP)算法就是解決這種問題的算法之一。

我們對目標用戶的GMM模型自適應的過程分爲兩個步驟:

1、首先,使用目標說話人的訓練數據計算出UBM模型的新參數(高斯權重、均值和方差);

2、將得到的新參數與UBM模型的原參數進行融合,從而得到目標說話人的模型。

字不如圖,一起來看圖把吧

具體的計算方法如下:

1、給定GMM模型和目標說話人的訓練矢量集X = (X1, X2...XT)。計算新的參數。

計算Xi和UBM中中第i個高斯分佈的相似度:

然後計算新的權重、均值和方差參數:

2、由第一步得到的新參數和UBM原參數融合,得到最終的目標說話人模型:

其中,自適應參數用於調節新參數和UBM參數對最終模型的影響。歸一化因子(可以理解爲權重值的權重)γ可以保證各混合度的權重滿足:

具體自適應參數的取值與具體模型有關,具體信息可以參考論文:話者確認中信道和時長失配補償研究_胡羣威

總結而言:

GMM-UBM系統框架,是GMM模型的一個推廣,是用於解決當前目標說話人數據量不夠的問題的一種方式。通過收集其他說話人數據來進行一個預先的訓練。通過MAP算法的自適應,將預先訓練過的模型向目標說話人模型進行微調。這種方式可以大大減少訓練所需要的樣本量和訓練時間(通過減少訓練參數)。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章