張 靖,俞一彪
(蘇州大學 電子信息學院,江蘇 蘇州 215000)
現(xiàn)階段,說話人識別任務在實驗室環(huán)境下已經(jīng)取得很好的效果,但實際應用場景中常常會存在環(huán)境噪聲,尤其當這種噪聲還在發(fā)生變化時,說話人識別系統(tǒng)的性能會急劇下降。因此,如何減少環(huán)境失配造成的影響成為一個亟需解決的問題。而對于環(huán)境噪聲的處理,在說話人識別領域一般有3 種解決方案。第一種是在預處理階段,在信號域中有很多經(jīng)典的語音增強的方法用來去除語音信號中的加性噪聲。第二種是在特征提取階段,或提取更加魯棒的特征來減小環(huán)境噪聲的影響,或根據(jù)噪聲特性在特征參數(shù)上對噪聲進行補償,恢復出純凈的說話人語音特征。第三種是在后端實現(xiàn)的噪聲補償,如對說話人模型的補償或者對得分域的處理。
在預處理階段,早期的處理方法主要包括譜減法(Spectral Subtraction,SS)[1]、小波變換、維納濾波等。但是,這些信號域中的處理一般是先計算出語音和噪聲的功率譜,然后對噪聲進行補償,處理后的結果再變換成語音特征。由于不是直接對語音特征或者模型進行補償,這樣的變換補償效果有限。而提取更加魯棒的特征如GFCC 特征[2]等,當面臨多變的環(huán)境噪聲時,同樣無法滿足實際應用的需要。因此,必須要在特征或者模型上直接能夠得到噪聲和純凈語音之間的關系,從而消除環(huán)境噪聲引起的失配。
在特征提取階段,基于濾波的特征補償算法主要有倒譜均值減(Cepstral Mean Subtraction,CMS)[3]、相對譜(Relative Spectral,RASTA)[4]、特征彎折(Feature Warping,F(xiàn)W)[5]等。而矢量泰勒級數(shù)(Vector Taylor Series,VTS)[6-9]是基于模型的特征補償算法中最成功的魯棒說話人識別方法之一。矢量泰勒級數(shù)最早被應用于魯棒語音識別,后來被應用于魯棒說話人識別也取得了很大成功。VTS 方法在倒譜域中利用VTS 展開式逼近失配語音的非線性模型,可從含噪語音中估計噪聲模型。在文獻[10]中將矢量泰勒級數(shù)特征補償算法應用于說話人識別,給出了卷積噪聲方差的近似閉式解。文獻[11]中將VTS 方法與i-vector 框架相結合,顯著提升了識別效果。
而在模型域,并行模型聯(lián)合(Parallel Model Combination,PMC)[12-13]是比較早期的模型補償方法。PMC 方法提取含噪測試語音的靜音段建立噪聲模型,然后將干凈的說話人模型映射成含噪模型,最后將含噪語音和含噪模型進行匹配。但是,由于PMC 模型映射過程中需要多次近似變換,會帶來額外的誤差。VTS 方法同樣可以應用到模型域,從含噪測試語句中估計出噪聲模型后,可以根據(jù)噪聲和語音的非線性映射關系得到含噪說話人模型。由于VTS 算法需要近似的次數(shù)比PMC 少,因而可以認為VTS 方法得到的補償模型精度更高。
本文提出了一種具有環(huán)境自學習能力的魯棒說話人識別算法,并在算法中引入環(huán)境自學習和自適應的思想。首先從當前的環(huán)境中學習得到環(huán)境噪聲的模型參數(shù),然后根據(jù)噪聲和純凈語音的關系建立噪聲補償模型。當環(huán)境變化時,根據(jù)當前環(huán)境將噪聲補償模型更新為新的補償模型,并從特征域或模型域對環(huán)境噪聲進行自適應補償,從而克服環(huán)境失配帶來的影響。在自學習階段,認為在每一次測試時環(huán)境噪聲有可能發(fā)生變化,但在一次測試過程中環(huán)境噪聲是平穩(wěn)的。測試開始前的先驗噪聲和測試過程中的環(huán)境噪聲特性保持一致,因此可以采集測試開始前的一段先驗噪聲來估計當前測試環(huán)境下的噪聲模型。在自適應階段,提出了改進的矢量泰勒級數(shù)(Vector Taylor Series,VTS)方法來刻畫環(huán)境噪聲和純凈說話人語音特征和模型間的統(tǒng)計關系,利用學習到的環(huán)境噪聲模型,分別在特征域和模型域對環(huán)境噪聲進行補償。在特征域中將含噪測試語音特征自適應為純凈語音特征,而在模型域中將純凈說話人模型自適應到應用環(huán)境得到含噪說話人模型。
基于矢量泰勒級數(shù)(Vector Taylor Series,VTS)的補償算法是基于失配語音的非線性模型提出的,具有比線性模型更好的建模精度,且可以直接從含噪語音中估計加性噪聲的參數(shù),對先驗信息要求較少。
在倒譜域,加性噪聲對純凈語音的影響可以用倒譜域中失配語音特征參數(shù)的非線性模型來描述[14]:

其中,y、x、n分別為失配語音、純凈語音和加性噪聲的倒譜特征向量,C和C-1分別為離散余弦變換(Discrete Cosine Transform,DCT)矩陣及其逆矩陣。
假設x、n獨立,則可將式(1)在(μx,m,μn0)處做一階VTS 展開,得到y(tǒng)和x的近似關系式:


其中μx,m為純凈語音模型λx{GMM}的第m個高斯分量的均值,μn0為加性噪聲的均值初值,Um為失配語音y關于加性噪聲n的偏導數(shù),δm為失配語音在(μx,m,μn0)處的初值,μy,m和σy,m分別為含噪語音第m個高斯分量上的均值和方差,μn和σn分別為加性噪聲的均值和方差。這樣可以將式(1)的噪聲和含噪語音的非線性關系近似為式(2)的線性關系,從而實現(xiàn)特征層次上噪聲與純凈語音的分離。
噪聲參數(shù)μn和σn可以通過EM 算法和最大似然準則從含噪測試語音中估計。

其中ot=yt-μy,m,符號·表示兩個同維度矩陣的對應元素分別相乘。
為了能夠實現(xiàn)自適應特征補償和模型補償,在環(huán)境噪聲的自學習階段需要學習到自適應需要的噪聲模型參數(shù),因而需要對進傳統(tǒng)的VTS 方法。將經(jīng)典VTS 方法中噪聲的單高斯模型用高斯混合模型代替,并加入先驗噪聲估計的步驟,同時利用當前的環(huán)境噪聲模型參數(shù)更新噪聲補償模型,并在特征域和模型域對噪聲進行補償。
由于VTS 方法使用EM 算法[15]估計出的噪聲模型可能不夠精確,假設一次測試過程中環(huán)境噪聲是平穩(wěn)的,可以采集測試開始前的一段先驗噪聲來估計當前測試環(huán)境下的噪聲模型。其中,噪聲模型用和說話人模型相同混合度的高斯混合模型(Gaussian Mixture Model,GMM)來表示。

式中xn為先驗噪聲的D維倒譜特征矢量;M是模型的階數(shù),即需求加權和的高斯分布的數(shù)目;pm為加權系數(shù)且滿足條件為具有均值矢量μnm和協(xié)方差陣∑nm的高斯分布的概率密度函數(shù)。
應用EM 算法,可得到先驗噪聲的模型參數(shù)集λn={pnm,μnm,∑nm}m=1,2,…,M。
在得到先驗噪聲模型λn后,可以通過式(6)和式(7)結合UBM 模型自適應得到噪聲補償模型參數(shù)μy,m和σy,m。純凈語音特征向量根據(jù)式(12)MMSE 準則估計得到,能夠在環(huán)境變化時根據(jù)新的噪聲模型對含噪測試語音特征進行自適應補償。

特征域補償算法框圖如圖1 所示。

圖1 環(huán)境自適應VTS 特征域補償算法系統(tǒng)
特征域補償具體的算法流程如下:
(1)對所有說話人語音進行劃分,用大部分說話人語音提取特征訓練UBM 通用背景模型λUBM{GMM},其余說話人語音進一步分成訓練語音和測試語音,去除靜音段提取訓練語音特征MAP 自適應得到每個說話人模型λx{GMM}。
(2)對含噪測試語音和先驗噪聲段分別去除靜音段提取特征參數(shù),根據(jù)噪聲特征建立噪聲模型λn{GMM}。
(3)根據(jù)式(3)、式(4)、式(5),計算δm、Um以及Vm。
(4)對于每個說話人,根據(jù)式(6)和式(7)計算補償模型λy{GMM}的均值μy,m和協(xié)方差σy,m。
(5)根據(jù)式(12),結合MMSE 準則,利用含噪測試語音和補償模型λy{GMM},估計出純凈測試語音特征。
(6)最終將得到的純凈測試語音特征和說話人模型λx{GMM}進行匹配,得到結果。
在特征補償算法中,可以對靜態(tài)分量的估值做差分,從而求出MFCC 的動態(tài)分量。但是,在模型自適應算法中,動態(tài)分量不能用直接差分的方式得到,所以模型自適應算法也需要對動態(tài)分量進行更新。模型參數(shù)的靜態(tài)分量同樣通過式(6)和式(7)計算。動態(tài)分量使用式(13)和式(14)得到:

在得到先驗噪聲模型λn后,利用式(6)、式(7)、式(13)、式(14)對純凈說話人模型進行調整得到每個人對應的含噪說話人模型,然后用含噪測試語音和含噪說話人模型進行匹配得到識別結果,這樣就能夠在環(huán)境變化時根據(jù)新的噪聲模型對訓練時的說話人模型進行自適應補償。
模型域補償算法框圖如圖2 所示。

圖2 環(huán)境自適應VTS 模型域補償算法系統(tǒng)
實驗中采用的MFCC 特征矢量為24 維,包括12 維的靜態(tài)特征和12 維的動態(tài)特征。為了說明實驗的有效性,實驗使用了兩個語料庫分別進行實驗。一個是語音庫SD2002[16],共有40 個說話人,每人7 段語音,每段語音長度為12 s,其中20 個人用來訓練UBM 模型,20 人用來測試。另一個是400 h的AISHELL-1 中文普通話語料庫[17],使用70 個說話人的語音數(shù)據(jù)來完成實驗,其中30 人訓練UBM模型,40 人用來測試。本實驗采用GMM-UBM 框架,UBM 模型階數(shù)為256。其中,UBM 語音以及訓練集語音都是干凈的,而測試時對每條測試語音疊加不同種類的噪聲進行實驗,預處理階段去除了每條語音的靜音段。本實驗中,從NOISEX-92 噪聲庫中選擇了3 種不同類型的噪聲babble、f-16 和white。考慮5 種不同的信噪比(Noise Signal Ratio,SNR)0 dB、5 dB、10 dB、15 dB 和20 dB,將3 種噪聲分別疊加到測試集中進行實驗。
對于每條測試語句,選取和測試語句同等長度的NOISEX-92 數(shù)據(jù)庫中的噪聲疊加到測試語句上得到含噪測試語句。為了獲得先驗環(huán)境噪聲,需要在當前測試結束后和下一次測試開始前的間隙采集噪聲數(shù)據(jù)。因此,在每個測試語音前需要另外拼接一段相同類型的噪聲片段。
表1 顯示了與基線系統(tǒng)和傳統(tǒng)VTS 方法相比,改進的VTS 方法(Vector Taylor Series-Feature Improved,VTS-F)在特征域中的性能,其中選取的先驗噪聲時長為10 s。可以在SD2002 和AISHELL-1 數(shù)據(jù)庫上看到,提出的方法在低SNR條件下比VTS 表現(xiàn)更好,但它在高SNR 條件下表現(xiàn)不佳。這可以被理解為當信噪比很低時,先驗噪聲得到的GMM 噪聲模型比VTS 方法估計出的單高斯噪聲模型更能夠精確刻畫噪聲的分布。而當信噪比很高時,由于此時先驗噪聲很小,由此得出的噪聲模型可能會不精確,導致系統(tǒng)識別性能下降。

表1 設定先驗環(huán)境噪聲為10 s 時,在SD2002 和AISHELL-1 下基線系統(tǒng)、傳統(tǒng)VTS 方法和VTS-F 方法在混有不同信噪比的3 種噪聲下的正確識別率
將提出的方法應用到模型域,可以得到改進的模型域VTS 方法(Vector Taylor Series-Model Improved,VTS-M)。從表2 可以發(fā)現(xiàn),VTS-M 相比于特征域方法VTS-F,在低SNR 下識別率有了進一步提高,但在高SNR 下的下降更為明顯。這是因為VTS-F方法中只用了噪聲模型的均值進行MMSE 估計得到干凈的特征,而VTS-M 方法分別使用了噪聲模型的均值和方差對純凈說話人模型進行調整。當SNR比較高時,VTS-M 方法由噪聲模型不精確帶來的影響更大。同樣,當SNR 比較低時,VTS-M 方法補償?shù)男Ч谩榱搜a償VTS-M 方法在高SNR 下的識別率急劇下降的問題,本文使用了一種自適應方法對VTS-M 方法進行調整,得到了新的改進的模型域VTS 方法(VTS-M-N)。
首先計算測試語音特征與純凈說話人模型中的每個高斯分量的匹配似然度。

其中nm是測試語音特征中屬于第m個高斯分量的幀數(shù);r是一個常數(shù),這里取2。
VTS-M-N 模型域補償算法流程:
(1)對所有說話人語音進行劃分,用大部分說話人語音提取特征訓練UBM 通用背景模型λUBM{GMM},其余說話人語音進一步分成訓練語音和測試語音,去除靜音段提取訓練語音特征MAP 自適應得到每個說話人模型λx{GMM}。
(2)對含噪測試語音和先驗噪聲段分別去除靜音段提取特征參數(shù),根據(jù)噪聲特征建立噪聲模型λn{GMM}。
(3)根據(jù)式(3)、式(4)、式(5)計算δm、Um以及Vm。
(4)對于每個說話人,根據(jù)式(6)、式(7)計算含噪模型靜態(tài)分量的均值μy,m和協(xié)方差σy,m。
(5)根據(jù)式(13)、式(14)計算含噪模型動態(tài)分量的均值μ?y,m和協(xié)方差σ?y,m。其中含噪模型的權重和純凈模型權重保持一致,將靜態(tài)分量和動態(tài)分量合并得到完整的含噪模型λy{GMM}。
(6)將含噪模型λy{GMM}的均值進行自適應,得到新的含噪模型。
從表2 中可以發(fā)現(xiàn),新提出的VTS-M-N 方法能夠有效補償VTS-M 方法在高SNR 時識別率的急劇下降,并且在低SNR 時某些情況下能夠進一步提高識別率,表明這種自適應是有效的。
從表3 可以發(fā)現(xiàn),對于3 種噪聲,VTS-M 方法的識別率隨著噪聲時間的變長而變高,而VTSM-N 方法的識別率隨著噪聲時間變長沒有太大的變化,在噪聲時間為10 s 時有很好的表現(xiàn)。

表2 設定先驗環(huán)境噪聲為10 s 時,在SD2002 和AISHELL-1 下傳統(tǒng)VTS 方法、VTS-M 和VTS-M-N 方法在混有不同信噪比的3 種噪聲下的正確識別率

表3 AISHELL-1 語料庫下先驗環(huán)境噪聲時長對VTS-M 方法和VTS-M-N 方法正確識別率的影響(SNR=10 dB)
現(xiàn)實中當應用環(huán)境與訓練環(huán)境不一致時,如何根據(jù)變化的環(huán)境噪聲來調整特征與模型參數(shù)來減少環(huán)境失配帶來的影響,是說話人識別系統(tǒng)面向實際應用迫切需要解決的問題。文章提出了自學習和自適應的思想,從先驗環(huán)境噪聲中自學習到當前測試語音中噪聲的參數(shù),然后利用學習到的噪聲參數(shù)自適應調整噪聲補償模型,并分別應用到特征域和模型域中進行相應的補償。
在GMM-UBM 框架下,當信噪比較低時,提出的特征域和模型域補償方法均能有效提升識別性能。而在高信噪比下,當運用到模型域時,識別率會急劇下降,為此使用了一種自適應方法對VTS-M 方法進行改進。結果發(fā)現(xiàn),新的VTS-M-N 方法在高信噪比下也能取得較好的效果,同時在低信噪比下也能進一步提高識別率。此外,從表3 中可以看出,只需要在測試開始前獲得10 s 的先驗環(huán)境噪聲,就能很好地減小環(huán)境噪聲的影響,這在實際應用中可以接受。