王 昕,張洪冉
南京郵電大學(xué) 通信與信息工程學(xué)院,南京 210003
說話人識別[1]也稱為聲紋識別,是一種基于語音信息實(shí)現(xiàn)的特殊生物識別技術(shù)。經(jīng)過幾十年的發(fā)展,目前無噪聲干擾條件下的說話人識別技術(shù)已經(jīng)相對較為成熟。其中,Dehak等提出的i-vector[2]說話人識別方法成為該領(lǐng)域的主流研究技術(shù)之一。i-vector方法是在聯(lián)合因子分析(Joint Factor Analysis,JFA)[3]的基礎(chǔ)上發(fā)展起來的,能夠有效提升說話人識別系統(tǒng)的性能。該算法使用一個低維子空間來表示說話人語音之間的差異性,每段語音被表征成一個固定的低維度矢量(即i-vector)。然而,實(shí)際應(yīng)用環(huán)境中,由于加性背景噪聲的存在,i-vector說話人識別算法性能會明顯下降。因此,如何提高現(xiàn)有說話人識別系統(tǒng)的噪聲魯棒性成為近年來該領(lǐng)域的研究熱點(diǎn)。
為解決上述問題,相關(guān)研究人員分別在語音信號處理的不同層面做出嘗試,旨在不改變說話人相關(guān)信息的情況下,降低加性噪聲對系統(tǒng)性能的影響。其中,基于頻譜分析的語音增強(qiáng)方法作為信號處理前端被引入到說話人識別領(lǐng)域[4-5]。然而,由文獻(xiàn)[5]中理論分析和實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn),增強(qiáng)后再進(jìn)行說話人識別的方法能夠提高語音信號的質(zhì)量,卻不一定能獲取識別性能上的改善。文獻(xiàn)[6]進(jìn)一步證實(shí),在信號處理領(lǐng)域的相關(guān)識別算法能否取得好的效果取決于噪聲的類型和信噪比的大小。此后,國內(nèi)外專家學(xué)者提出了語音特征領(lǐng)域的說話人識別方法。對于語音來說,特征真實(shí)的概率分布依賴于特定的說話人并且是多模態(tài)的。然而,在實(shí)際應(yīng)用場景中,信道的不匹配和加性噪聲等因素會破壞特征真實(shí)的概率分布。相關(guān)研究通過將具有噪聲魯棒性的語音特征與均值方差歸一化等技術(shù)結(jié)合,在一定條件下可以調(diào)整特征的概率分布,達(dá)到降低噪聲對系統(tǒng)性能影響的目的[7]。文獻(xiàn)[7]中提出的特征彎折算法(feature warping)將訓(xùn)練和測試語音的特征向量的分布映射到統(tǒng)一的概率分布中。經(jīng)過映射后的特征向量的每一維都服從標(biāo)準(zhǔn)正態(tài)分布,在一定程度上補(bǔ)償了信道不匹配和加性噪聲對特征分布造成的影響。但是,對基于不同語音特征的識別算法[8]進(jìn)行比較可以發(fā)現(xiàn),識別性能是否改善與噪聲的類型和信噪比也是緊密相關(guān)的。當(dāng)環(huán)境中含有少量噪聲時,基于特征域的相關(guān)算法考慮到噪聲對特征分布特性的影響,通過分布映射等方式調(diào)整特征分布可以提高系統(tǒng)的噪聲魯棒性。但是,隨著信噪比的減小,噪聲影響特征分布特性的同時,也會改變語音中說話人相關(guān)的信息,系統(tǒng)性能會急劇下降,通過調(diào)整特征分布帶來的系統(tǒng)性能上的提升就顯得微不足道。
近年來,隨著機(jī)器學(xué)習(xí)算法性能的提升和計算機(jī)存儲、計算能力的提高,深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)被應(yīng)用到語音增強(qiáng)領(lǐng)域中并取得了顯著的效果[9-11]。DNN對非線性函數(shù)關(guān)系具有很強(qiáng)的擬合能力,經(jīng)過訓(xùn)練后的DNN可以用來表示輸入數(shù)據(jù)和輸出數(shù)據(jù)之間的非線性映射關(guān)系。利用DNN的這種非線性結(jié)構(gòu),通過學(xué)習(xí)含噪語音特征和純凈語音特征之間的非線性映射關(guān)系,將訓(xùn)練好的DNN模型作為一個降噪濾波器來完成對語音的增強(qiáng)工作。文獻(xiàn)[12]將DNN作為語音信號前端處理模塊應(yīng)用到說話人識別系統(tǒng)中。但是,上述方法[12]在提高噪聲魯棒性的同時,也增加了系統(tǒng)結(jié)構(gòu)模型的復(fù)雜度。
此外,自從i-vector方法引入說話人識別領(lǐng)域后,相關(guān)研究人員對直接在i-vector特征空間消除噪聲影響做了大量的工作。在文獻(xiàn)[13]中提出了純凈i-vector的全方差高斯模型和噪聲在i-vector特征空間的概率分布,通過估計含噪i-vector和噪聲的概率密度函數(shù),利用最大后驗(yàn)概率(Maximuma Posterior,MAP)方法得到純凈i-vector的估計。DNN也被嘗試用來減小i-vector空間中不同類別的說話人的類內(nèi)協(xié)方差[14]。
基于上述研究背景,本文提出將DNN回歸模型用于說話人識別系統(tǒng)后端,通過有監(jiān)督地訓(xùn)練DNN學(xué)習(xí)說話人含噪語音i-vector和純凈語音i-vector之間的非線性映射關(guān)系,得到純凈語音i-vector的一種近似表征。
與傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)相比,DNN具有更多的隱含層數(shù)和節(jié)點(diǎn)數(shù)、更強(qiáng)的非線性函數(shù)關(guān)系的擬合能力。近年來,基于受限玻爾茲曼機(jī)(Restricted Boltzmann Machine,RBM)[15]的無監(jiān)督逐層貪婪式的參數(shù)初始化算法的提出,很好地解決了DNN在學(xué)習(xí)過程中的局部最優(yōu)問題,使深度神經(jīng)網(wǎng)絡(luò)在各個領(lǐng)域得到了廣泛的應(yīng)用。
RBM是一種兩層無向圖模型,包含一個可見層和一個隱含層,層間有權(quán)重連接,層內(nèi)無連接。假設(shè)RBM的可見層為ν,隱含層為h,( )ν,h的聯(lián)合概率分布定義如下所示:
其中,W為可見層和隱含層之間的連接矩陣;b和c分別為可見層和隱含層偏置;Z為歸一化因子。利用梯度下降和對比散度學(xué)習(xí)算法,通過最大化可見層節(jié)點(diǎn)概率分布P(ν)來獲取模型參數(shù)。采用自底向上的方法,上一個RBM的隱含層作為下一個RBM的可見層,逐層貪婪式地訓(xùn)練多個RBM,最后將多個RBM疊加可以得到深度置信網(wǎng)絡(luò)(Deep Belief Network,DBN)[16]結(jié)構(gòu)。將DBN的各層網(wǎng)絡(luò)參數(shù)作為DNN初始化參數(shù),根據(jù)學(xué)習(xí)任務(wù)的不同,在DBN最后一層添加softmax層或線性層,可以分別得到DNN的分類模型或回歸模型。本文采用線性函數(shù)作為輸出層的激活函數(shù)。
其中,W(l)為l層和l+1層之間的權(quán)重矩陣;b(l)為l層偏置;z(l+1)為l層輸入值a(l)的加權(quán)和;f(?)為隱含層激活函數(shù),本文采用Sigmoid函數(shù)作為隱含層激活函數(shù)。
利用BP算法進(jìn)行參數(shù)調(diào)優(yōu)時,采用最小均方誤差(Minimum Mean Square Error,MMSE)函數(shù)作為代價函數(shù),通過基于小批量數(shù)據(jù)(mini-batches)的隨機(jī)梯度下降算法多次迭代后得到最優(yōu)值。MMSE表達(dá)式如下:
當(dāng)基于DBN預(yù)訓(xùn)練的參數(shù)初始化完成后,需要利用誤差的反向傳播算法(Back Propagation,BP)[17]對DNN網(wǎng)絡(luò)的參數(shù)進(jìn)行調(diào)優(yōu)。設(shè)第0層為輸入層,L+1層為輸出層,1到L層為隱含層。對第l隱含層,其節(jié)點(diǎn)的輸出如下:
其中,E表示均方誤差;N為小批量數(shù)據(jù)容量;D為特征維度;Wl和bl分別為l層的權(quán)重和偏置參數(shù);和分別表示第n個輸入特征樣本維度d上的估計值和目標(biāo)值。對于具有L層隱含層的網(wǎng)絡(luò)結(jié)構(gòu)來說,當(dāng)學(xué)習(xí)率為λ時,權(quán)重W和偏置參數(shù)b可以通過以下公式進(jìn)行迭代更新:
需要說明的是,在參數(shù)的學(xué)習(xí)和更新過程中,沒有基于網(wǎng)絡(luò)輸入的任何假設(shè),是DNN完全自主的學(xué)習(xí)過程。
將上述DNN的回歸模型結(jié)構(gòu)應(yīng)用到語音增強(qiáng)中,通過擬合含噪語音特征和純凈語音特征之間的非線性映射關(guān)系,利用純凈語音特征的近似表征可以合成得到降噪后的語音。該語音增強(qiáng)方法分為訓(xùn)練和增強(qiáng)兩個階段。在訓(xùn)練階段,通過將大量的噪聲數(shù)據(jù)和純凈語音相加的方法獲得不同信噪比的含噪語音,與相對應(yīng)的純凈語音一起構(gòu)成訓(xùn)練數(shù)據(jù)對并提取相應(yīng)的語音特征。分別將提取的含噪語音和純凈語音的語音特征作為輸入和標(biāo)簽數(shù)據(jù)對DNN進(jìn)行訓(xùn)練。語音增強(qiáng)時,直接將含噪語音特征輸入,DNN的輸出即為增強(qiáng)后的語音特征。在基于DNN的語音增強(qiáng)方法中,沒有關(guān)于噪聲統(tǒng)計特性和噪聲與語音之間的獨(dú)立性等相關(guān)假設(shè),這些相關(guān)假設(shè)往往限制系統(tǒng)性能的提升。此外,大量的訓(xùn)練數(shù)據(jù)可以保證系統(tǒng)的泛化能力,提高系統(tǒng)的實(shí)用性。
JFA將說話人和信道的相關(guān)變量分別建模成兩個不同的子空間,即說話人子空間和信道子空間。然而,文獻(xiàn)[18]中相關(guān)研究表明,JFA中的信道子空間中也包含有說話人相關(guān)信息,分割子空間建模不足夠精確。為此,i-vector模型將說話人和信道相關(guān)變量統(tǒng)一建模為一個總體變化子空間。該空間同時包含說話人和信道信息,由一個低秩矩陣T表征。在i-vector模型中,不再區(qū)分GMM模型均值超向量空間中的說話人效應(yīng)和信道效應(yīng)。給定一段說話人語音,包含說話人和信道信息的GMM均值超向量可以表示成如下形式:
其中,m為說話人和信道無關(guān)向量,可以用UBM的均值超向量代替;T為表征總體變化子空間的低秩矩陣;w為包含了信道和說話人信息的隱含因子,即i-vector。在i-vector模型中,第i語音段的第t語音幀的聲學(xué)特征服從以下分布:
其中,?k為第k個高斯分量的權(quán)重。表征語音段的i-vector即為ω()i的MAP估計。
給定一段語音,通過UBM計算以下統(tǒng)計量:
說話人識別中的PLDA模型是基于i-vector子空間的因子分析模型。文獻(xiàn)[19]指出,簡化后的高斯PLDA對不同說話人的i-vector區(qū)分性比傳統(tǒng)PLDA模型更好。對于給定說話人的R個語音段的i-vector{ωi:i=1,2,…,R},PLDA模型可以表示如下:
其中,m為所有i-vector訓(xùn)練數(shù)據(jù)的全局均值;Φ為描述說話人類間差異的子空間矩陣;β為說話人身份相關(guān)的隱含因子,服從標(biāo)準(zhǔn)正態(tài)分布;εr是服從均值為零,協(xié)方差矩陣為對角矩陣Σ的殘余項(xiàng)。PLDA模型參數(shù)的最大似然估計可以根據(jù)文獻(xiàn)[20]中描述的EM算法得到。
在系統(tǒng)識別階段,給定兩段語音的i-vector向量,分別用符號η1和η2表示。提出兩個假設(shè):
Ηs假設(shè):η1和η2來自同一個說話人,即η1和η2具有相同的隱含變量β。
Ηd假設(shè):η1和η2來自不同的說話人,即η1和η2具有不同的隱含變量β1和β2。
則η1和η2之間的對數(shù)似然比可以由以下公式得到:
最后,根據(jù)預(yù)設(shè)的閾值做出最終判決。
本文在以上研究背景的基礎(chǔ)上,提出將DNN回歸模型用于對說話人識別系統(tǒng)含噪語音i-vector的增強(qiáng)。當(dāng)純凈語音受到背景噪聲的干擾時,語音的i-vector也會相應(yīng)地隨之發(fā)生改變。噪聲環(huán)境下語音i-vector的改變會導(dǎo)致系統(tǒng)識別性能的下降。含噪語音和純凈語音i-vector之間存在某種復(fù)雜的非線性函數(shù)關(guān)系。因此,本文利用DNN的強(qiáng)大擬合能力,通過訓(xùn)練DNN學(xué)習(xí)含噪語音i-vector和純凈語音i-vector之間復(fù)雜的非線性映射關(guān)系,可以得到純凈語音i-vector的一種近似表征。本文使用的DNN模型結(jié)構(gòu)如圖1所示。
本文提出的基于DNN的i-vector增強(qiáng)方法分為訓(xùn)練和增強(qiáng)兩個階段。因?yàn)镈NN的訓(xùn)練為有監(jiān)督訓(xùn)練過程,數(shù)據(jù)量的大小和噪聲類型的多少直接決定了DNN的泛化能力。因此首先需要構(gòu)建大量的含噪語音和純凈語音的訓(xùn)練數(shù)據(jù)對。本文基于加性噪聲背景環(huán)境,構(gòu)造含噪語音的方式如下:
圖1 用于i-vector增強(qiáng)的DNN模型結(jié)構(gòu)
其中,X為純凈語音;N為噪聲數(shù)據(jù);α為常量系數(shù),用來控制信噪比。
通過改變噪聲的類型和信噪比可以構(gòu)造出訓(xùn)練DNN所需的大量的訓(xùn)練數(shù)據(jù)。數(shù)據(jù)準(zhǔn)備完成后,對每一條平行語料,根據(jù)第1章所述方法分別提取含噪語音和純凈語音的i-vector,將其最為訓(xùn)練DNN模型的訓(xùn)練數(shù)據(jù)對,即含噪語音i-vector作為輸入數(shù)據(jù),純凈語音i-vector作為標(biāo)簽數(shù)據(jù)。需要說明的是,DNN訓(xùn)練之前,i-vector的預(yù)處理操作是必需的。本文對i-vector做了去均值和白化處理。DNN的訓(xùn)練方法和第2章所述一致,即先預(yù)訓(xùn)練DBN模型來對DNN進(jìn)行參數(shù)初始化,然后使用BP算法對DNN參數(shù)調(diào)優(yōu)。在增強(qiáng)階段,將訓(xùn)練完成的DNN模型和現(xiàn)有的說話人識別系統(tǒng)模型融合,作為i-vector的特征處理后端,降低噪聲對系統(tǒng)性能的影響。需要注意的是,在進(jìn)行模型融合時,PLDA模型訓(xùn)練和說話人的注冊i-vector都需要通過訓(xùn)練的DNN進(jìn)行特征映射,輸出的i-vector再分別用于訓(xùn)練和注冊。融合后的系統(tǒng)結(jié)構(gòu)如圖2所示。
本文實(shí)驗(yàn)環(huán)境為Windows 64位操作系統(tǒng),64位Matlab軟件的2016版本。說話人識別模型訓(xùn)練采用微軟的Matlab說話人識別工具包[21]。DNN實(shí)現(xiàn)部分采用的開源的Matlab深度信念網(wǎng)絡(luò)工具包(Deep Belief NetWorks,DeeBNet)[22]。
圖2 說話人識別系統(tǒng)結(jié)構(gòu)圖
本文在TIMIT[23]數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。采用等錯誤率(Equal Error Rate,EER)和最小檢測代價函數(shù)(Detection Function,DCF)作為系統(tǒng)性能評價指標(biāo)。TIMIT語音庫共有630個說話人(192個女性說話人和438個男性說話人),每個說話人10條語音,每條語音平均時長為5 s。從中挑選530個說話人,共5 300條語音,作為UBM和DNN所需的訓(xùn)練數(shù)據(jù),100個說話人(30個女性說話人和70個男性說話人)語音作為測試數(shù)據(jù),其中,每個測試說話人的9條語音作為注冊語音,剩下的1條語音為測試語音,共10 000條測試實(shí)驗(yàn)。實(shí)驗(yàn)中所使用噪聲來自NoiseX-92[24]和freesound(www.freesound.org)網(wǎng)站,其中4個城市噪聲(city)樣本,4個街道噪聲(street)樣本,4個餐廳噪聲(restaurant)樣本,4個辦公室噪聲(office)樣本,2個圖書館噪聲(library)樣本,4個工作間噪聲(workshop)樣本。這些噪聲數(shù)據(jù)和用來訓(xùn)練DNN的語音加到一起構(gòu)成訓(xùn)練DNN的含噪語音數(shù)據(jù),其中信噪比為0~30 dB間的隨機(jī)數(shù)值。將取自NoiseX-92噪聲庫的人群嘈雜聲(babble)、車內(nèi)噪聲(car)和驅(qū)逐艦輪機(jī)艙(destroyerops)噪聲與測試數(shù)據(jù)混合構(gòu)成測試數(shù)據(jù)集。
訓(xùn)練UBM模型使用的聲學(xué)特征為39維(13維基本特征、一階、二階差分的組合)、幀長為25 ms、幀移為10 ms的梅爾頻率倒譜系數(shù)(Melfrequency Cepstral Coefficient,MFCC)特征。UBM的高斯混合數(shù)為512,方差采用對角矩陣形式。i-vector維度為400,PLDA說話人子空間維度為200。
本文采用含噪語音的i-vector作為DNN模型輸入,純凈語音的i-vector作為訓(xùn)練標(biāo)簽。由表1實(shí)驗(yàn)結(jié)果可以看出,當(dāng)DNN隱含層數(shù)及隱含結(jié)點(diǎn)數(shù)變化時,系統(tǒng)的性能會有一定的差異。當(dāng)DNN模型有兩層隱含層,每層隱含結(jié)點(diǎn)數(shù)為800時,系統(tǒng)具有最好的表現(xiàn)。因此,本文將DNN的隱含層設(shè)置為兩層,每層800個結(jié)點(diǎn)。
表1 不同隱含層結(jié)點(diǎn)數(shù)時系統(tǒng)在測試噪聲環(huán)境下的性能表現(xiàn)
表2 系統(tǒng)在不同噪聲環(huán)境下的性能表現(xiàn)
表2給出了在純凈語音(clean)、babble噪聲、car噪聲、destroyerops噪聲環(huán)境下系統(tǒng)的性能表現(xiàn)。其中,DCF_08和DCF_10的計算方法分別來自美國國家標(biāo)準(zhǔn)與技術(shù)研究院(National Institute of Standards and Technology,NIST)2008年和2010年發(fā)起的說話人識別評測(Speaker Recognition Evaluation,SRE)[25-26]。
由表2可以看出,系統(tǒng)在不同的噪聲環(huán)境下性能都有一定的提升。尤其在car噪聲下,其EER下降了50%。另外,在純凈語音的情況下,系統(tǒng)在增強(qiáng)前后的表現(xiàn)基本保持一致。
圖3到圖5分別給出了在不同大小的信噪比條件下babble、destroyerops和car噪聲環(huán)境下系統(tǒng)的EER折線圖??梢悦黠@看出,系統(tǒng)在不同信噪比的噪聲環(huán)境下都能有穩(wěn)定的表現(xiàn)。
圖3 不同信噪比babble噪聲下系統(tǒng)EER折線圖
圖4 不同信噪比destroyerops噪聲下系統(tǒng)EER折線圖
因?yàn)楸疚男盘柵c噪聲的信噪比是隨機(jī)加入的,表2能夠說明在訓(xùn)練和測試環(huán)境信噪比不匹配的情況下,系統(tǒng)也具有一定的自適應(yīng)性。此外,DNN的強(qiáng)大的擬合能力是以大量的訓(xùn)練數(shù)據(jù)對做基礎(chǔ)的,本文只是在較少的噪聲環(huán)境下做了驗(yàn)證性實(shí)驗(yàn),可能會在某些噪聲環(huán)境下系統(tǒng)性能并不理想,出現(xiàn)自適應(yīng)差的問題。
圖5 不同信噪比car噪聲下系統(tǒng)EER折線圖
本文提出一種將DNN用于說話人識別后端對ivector進(jìn)行增強(qiáng)的方法。該方法首先需要分別提取純凈語音和含噪語音的i-vector。然后用含噪語音i-vector作為輸入,純凈語音i-vector作為標(biāo)簽數(shù)據(jù)訓(xùn)練用于i-vector增強(qiáng)的DNN模型。最后將訓(xùn)練好的DNN模型與說話人識別系統(tǒng)進(jìn)行融合,得到具有噪聲魯棒性的說話人識別系統(tǒng)模型。本文在TIMIT數(shù)據(jù)庫做的驗(yàn)證性實(shí)驗(yàn)證明了方法的可行性和有效性。