劉俊坤,李燕萍,凌云志
(南京郵電大學 通信與信息工程學院,江蘇 南京 210003)
說話人識別(speaker recognition,SR),又稱話者識別[1],是利用說話人語音中的個性特征進行身份鑒定的一種認證技術。基于矢量量化(vector quantizaion,VQ)的說話人識別模型[2-3]是基于不同說話人的語音特征矢量具有不同分布這一假設,然后采用最小化失真原則對不同說話人特征矢量進行編碼識別。該算法直接采用語音的梅爾倒譜參數(Mel frequency cepstral coefficients,MFCC)作為模型訓練或識別的特征參數。實際應用時該方法存在兩方面的問題:一方面,在說話人數量較多,且每個說話人語音數據較少時,該模型對說話人個性特征得不到充分學習,導致系統的正確識別率達不到期望值;另一方面,系統的模型訓練一般是在干凈無噪語音條件下,采用說話人有噪語音或是應用在有噪條件下進行識別時,會出現模型訓練數據和測試數據不匹配現象,從而系統的識別結果會受到很大影響或者識別結果直接崩潰。
2006年,Hinton等[4]提出深度學習的概念,深度置信網絡(deep belief network,DBN)是由多層受限玻爾茲曼機(restricted Boltzmann machine,RBM)堆疊構成的多層深度網絡。DBN網絡采用貪婪逐層訓練學習算法,通過逐層預訓練和整體微調的方法,可以從少量數據中充分學習數據中的潛在特征,挖掘數據中深層表示,并且克服了傳統多層神經網絡易陷入局部最優解、需要大量數據標記等問題。深度置信網絡被證明對自然界中的實際信號建模,比傳統淺層結構的建模方法強[5],可以更好地對實際信號進行建模學習。1986年,Rumelhart提出自動編碼器的概念[6],自動編碼器采用這樣一個思想:原始輸入x經過加權(W、b)、映射(Sigmoid)之后得到y,再對y反向加權映射回來成為z。通過反復迭代訓練兩組加權系數(W、b),使得誤差函數最小,盡可能保證z近似于x,即實現重構x。自動編碼器可以獲得代表良好輸入的特征,可以實現數據的編碼重構,并且訓練完成的模型對輸入帶噪數據具有噪聲過濾能力?;谧詣泳幋a器的這種優勢,文中構造自動編碼深度置信網絡[7],利用其對不同說話人語音特征編碼[8],使網絡模型對說話人個性特征進行深度學習和挖掘,然后通過網絡模型實現數據重構,在對輸入帶噪語音提取說話人有效個性特征的同時,有效地過濾噪聲。
在基于矢量量化的傳統說話人識別方法的基礎上,采用自動編碼深度置信網絡(AutoEncoder DBN)與矢量量化結合的說話人識別方法(AutoEncoder DBN-VQ)。采用AutoEncoder DBN對說話人語音特征進行特征編碼與重構,將網絡輸出作為VQ的模型訓練或識別的輸入。結合深度置信網絡和自動編碼器的優勢,AutoEncoder DBN具備對少量說話人個性特征數據進行深度學習和挖掘,進而提取有效個性特征信息的能力,同時通過模型重構可以過濾說話人語音中的干擾噪聲數據。
VQ是很重要的信號處理方法,具有運算量少,速度快,原理簡單等優點,廣泛應用于圖像和語音等領域。VQ的原理是把輸入的矢量數據空間劃分為不同的小區域,每個小區域尋找一個合適的矢量,該矢量用來代表落入到該小區域的所有矢量,用所有的代表矢量即碼本來表示整個訓練數據。VQ說話人識別系統在模型訓練時將說話人訓練語音特征進行聚類,形成碼書,每一位說話人對應一個碼書。文中采用的碼書生成算法是LGB算法[9-10],LGB算法是最常用的也是比較簡單的碼書生成算法。在識別階段,采用矢量量化方法計算待識別語音特征與碼本之間的失真測度,根據失真測度判定該語音屬于哪位說話人。VQ說話人識別系統中常見的失真測度有歐氏距離、加歐氏距離、Itakura-Saito距離等,文中采用歐氏距離測度。
基于VQ算法的原理,VQ說話人識別系統存在兩個問題:系統采用說話人的MFCC特征參數,為不同說話人訓練不同的矢量分布,MFCC參數中包含說話人多種信息,在說話人語音數據有限時,會使量化碼本學習不充分,即得到的每個小區域的量化值代表性較弱,影響系統識別準確性;模型訓練一般在純凈語音條件下,當待識別語音數據中有噪聲時,會因為模型對訓練數據和測試數據無法匹配導致系統識別率崩潰。
為了解決VQ說話人識別系統在說話人語音數據不足條件下的模型學習不充分、系統識別率下降等問題,采用DBN網絡對說話人語音進行特征學習,DBN網絡可以有效提取說話人的個性特征信息[11-12]。DBN相比于傳統神經網絡,有著更多層非線性映射結構[13],可以完成更復雜的數據學習。該網絡是由RBM模塊堆疊而成的深層網絡結構[14-15]。典型的RBM是由可見層和隱含層構成二部圖模型,可見層或隱含層層內沒有連接,只有可見層和隱含層節點間存在連接。
RBM是一個能量模型,其能量函數表示為:

(1)
其中,vi和hj表示可見層第i個節點狀態和隱含層第j個節點狀態;Wij為第i個可見層節點和第j個隱含層節點的連接權重;ai和bj分別為可見層節點和隱含層節點的偏置。
可見層v和隱含層h的聯合概率分布為:
(2)
其中,Z為分配函數,或稱歸一化常量,可以通過所有隱含層單元和可見層單元分配能量計算得到,表示如下:

(3)
由于RBM在訓練時,同一層中具有條件獨立性,條件概率分布如下:
(4)
p(hj=0|v)=1-p(hj=1|v)
(5)
(6)
p(vi=0|h)=1-p(vi=1|h)
(7)
其中,函數f為sigmoid函數,f(x)=1/(1+e-x)。
可以得到RBM的更新公式:
Δwij=(?lnp(v)/?wij)=
ε(〈vi,hj〉data-〈vi,hj〉)model
(8)
(9)
(10)
其中,ε為學習率;〈〉data為數據期望;〈〉model為模型期望。
模型期望計算比較復雜,它需要隨機初始化可見層狀態然后經過長時間采樣,可通過對比散度算法[16]求解。
多層RBM堆疊,依次將RBM隱含層單元的輸出數據作為更高層RBM輸入層數據,通過學習下一層RBM對輸出數據的RBM隱藏單元的顯著依賴關系進行建模,則構成DBN[17],這種層層遞進的深層網絡結構可以有效挖掘語音數據中說話人的深層個性特征,提取出更具代表性的特征向量。DBN網絡模型訓練首先進行逐層RBM預訓練,每層的RBM預訓練方式和RBM訓練方式相同,經過多次迭代得到節點間權重和偏置,多層網絡依次預訓練完畢,然后根據誤差反向微調整個網絡。DBN網絡可以實現數據有監督或非監督式學習,并且可以提取數據高層特征實現數據特征升降維度。DBN優化權值的學習算法克服了傳統神經網絡無法求出最優解等缺點,并有更強的數據建模能力。其模型結構如圖1所示。

圖1 DBN模型結構
將DBN網絡應用在說話人語音識別中,采用少量的說話人語音數據進行DBN網絡逐層RBM訓練,可以有效學習和挖掘到語音中的潛在特征,更好地捕獲到說話人個性信息,從而在說話人語音數據不充分的條件下大大改善系統識別能力。
為進一步解決噪聲環境下系統識別性能不好的問題,結合自動編碼器的去噪特點,應用DBN網絡構造AutoEncoder DBN網絡,實現深層自動編碼網絡。網絡訓練首先采用貪婪學習算法對DBN逐層預訓練,得到編碼網絡的初步訓練參數,然后由得到的參數反轉重構其對稱網絡,最后通過BP算法反向微調整個網絡,完成整個網絡訓練。AutoEncoder DBN網絡前半部分可以實現對輸入數據的特征提取和數據編碼,后半部分通過深層的特征數據實現對輸入數據重構。AutoEncoder DBN網絡結構如圖2所示。

圖2 AutoEncoder DBN網絡結構
在文中說話人識別系統中,AutoEncoder DBN網絡首先采用純凈語音特征數據根據其訓練算法進行網絡訓練,得到AutoEncoder DBN網絡參數。模型訓練完成后,一段有噪語音數據輸入網絡時,首先經過圖2(b)中的編碼網絡對數據進行編碼,獲得說話人語音深層特征。由于網絡訓練數據為純凈語音數據,編碼網絡會捕獲語音數據中說話人有效的語音特征數據,過濾掉語音中的噪聲數據,得到的特征可以代表說話人語音去噪后深層個性特征,然后經過圖2(b)中的重構網絡,利用得到的深層個性特征重構輸出數據,便得到去噪后并且代表說話人的有效個性特征向量。采用AutoEncoder DBN網絡不僅可以在少量說話人語音數據中捕獲高質量的說話人個性特征,還可以對輸入的有噪語音數據進行噪聲過濾,在提高系統識別率的同時增強了系統魯棒性。

圖3 AutoEncoder DBN-VQ說話人識別系統流程
整個說話人識別系統流程如圖3所示。首先需要對說話人語音進行預處理,并提取網絡模型訓練數據。網絡訓練時,對特征數據根據不同說話人進行標記,將所有說話人標記過的數據輸入網絡進行有監督的模型訓練。AutoEncoder DBN訓練完成后,分別將不同說話人無標簽特征數據經過AutoEncoder DBN編碼重構,得到經過AutoEncoder DBN網絡挖掘和重構的說話人數據,重構數據再作為VQ模型訓練輸入數據,進行VQ模型訓練。說話人識別時,一段語音過來,經過預處理,提取該語音特征,提取的語音特征數據經過訓練好的AutoEncoder DBN編碼重構,然后輸入VQ進行說話人身份識別。
實驗運行環境為MATLAB2014a。采用TIMIT語音數據庫進行實驗。TIMIT是一個全英文語音數據庫,由麻省理工MIT、斯坦福研究院SRI和德州儀器TI共同設計。該數據庫每位話者在安靜環境下錄制10句話,聲音采集頻率是16000Hz,采樣位數為16位。實驗選取該語音庫200名錄音人,其中男128名,女72名。實驗將每個人10句語音分為互不交叉的訓練語音集和測試語音集,每句話平均時長3s左右。實驗中采用的噪聲信號取自NoiseX-9噪聲數據庫。實驗分為兩部分,一部分是測試純凈語音條件下說話人語音數據有限時系統性能,另一部分是測試在語音加入噪聲情況下算法的正確識別率。
AutoEncoder DBN-VQ(簡稱AEDBN-VQ)中初始DBN網絡結構設置為3層,每層節點數為1024-1024-1024,模型學習率為0.0002。訓練數據提取說話人語音40維MFCC參數,去除代表直流分量的第一維數據,然后依次取每幀前后各兩幀拼接,形成195(5*(40-1))維的超幀。采用的VQ模型編碼長度為32,碼本設計采用LBG算法。
文中提出的算法是在VQ方法上改進的,首先與該方法進行系統性能對比。基于矢量量化方法的實驗設置為:說話人語音特征數據同樣提取40維MFCC參數,去除第一幀直流分量,直接進行連續5幀拼接構成195維超幀,矢量量化編碼長度是32,碼本設計采用LBG算法?;诟咚够旌夏P头椒?GMM)的基本原理是用多個高斯模型來擬合說話人語音信號。該方法在說話人識別領域是研究熱點,同樣選擇該方法進行系統性能對比?;诟咚够旌夏P头椒ǖ脑O置為:語音特征數據采用20維MFCC參數,高斯混合度設為16。
在說話人語音時長有限(不超過10s)時,測試模型訓練語音和測試語音都為純凈語音條件下的系統識別性能。表1和表2是模型訓練語音時長每人2句話(時長約6s)和3句話(時長約9s),測試語音時長為1~3句話下的系統識別結果。

表1 純凈語音條件下每人訓練2句話的

表2 純凈語音條件下每人訓練3句話的
在訓練語音時長為2句話時,AEDBN-VQ識別率達到97.5%,另外兩種算法識別率不到90%;訓練語音增加到3句話時,AEDBN-VQ識別率基本達到性能最優,識別率是99.5%,其他兩種算法識別率還有很大提升空間,與AEDBN-VQ相差10%左右。另外,在測試語音時長為1句話這種極端條件下,AEDBN-VQ系統在訓練時長2句話時識別率達到86.5%,訓練為3句話時識別率達到93%,比另外兩種算法高出平均10%。實驗結果表明,在純凈語音及說話人訓練和測試語音時長有限的條件下,AEDBN-VQ系統可以更好地捕獲說話人個性特征,進行準確識別,系統性能明顯高于VQ算法與傳統GMM算法。在每人訓練2句話和3句話的條件下,測試時語句由測試1句話到測試3句話時長增加,AEDBN-VQ系統的識別率也有一定的改善,進一步說明了AEDBN-VQ說話人識別系統的穩定性。
有噪語音條件下的實驗是測試系統對帶有噪聲的語音或者模擬實際有噪聲環境下的系統識別情況。實驗中每位說話人選取的訓練語音時長為3句話(時長約9s),每人剩余語句數都用來進行識別測試。實驗設計加入的噪聲類型分別是white噪聲、factory1噪聲、babble噪聲、pink噪聲。AEDBN-VQ算法網絡模型訓練數據采用說話人的純凈語音,識別時,由網絡模型對待測有噪語音數據進行編碼重構,然后輸入下一模型進行說話人身份識別。
傳統VQ算法和GMM算法采用純凈語音數據進行模型訓練,然后對帶噪語音識別時由于訓練環境和測試環境不匹配,導致系統識別率急劇惡化,所以在模型訓練時在訓練語音數據中加入和測試語音中相應的噪聲。
表3~5分別是在測試語音信噪比為10dB、5dB、0dB時三種算法的識別結果。

表3 信噪比為10 dB時三種算法的正確識別率 %

表4 信噪比為5 dB時三種算法的正確識別率 %

表5 信噪比為0 dB時三種算法的正確識別率 %
由表中數據可以看出,在信噪比為10dB時,平穩噪聲(white噪聲)條件下AEDBN-VQ算法的正確識別率高出另外兩種算法15%之多,可達到87%;非平穩噪聲條件下,AEDBN-VQ算法正確識別率在95%左右,同樣高出另外兩種算法平均10%之多。信噪比為5dB時,AEDBN-VQ算法正確識別率能穩定在80%左右,相比另外兩種算法系統性能也平均高出15%。信噪比在0dB時三種算法的識別率都變得很差,但是AEDBN-VQ識別率還可以在50%之上。在測試語音數據中加入噪聲,VQ和GMM說話人識別系統的識別率大幅降低,AEDBN-VQ算法實驗結果仍可達到期望識別效果。
實驗數據表明,AEDBN-VQ算法中的自動編碼深度置信網絡對輸入的有噪語音數據確實具有挖掘有效說話人個性信息以及進行有效噪聲過濾的作用,使說話人識別系統具有了一定的魯棒性。
在傳統矢量量化方法的基礎上,提出深度置信網絡與矢量量化方法相結合的算法。應用深度置信網絡構造自動編碼深度置信網絡,實現對說話人語音數據個性特征深度學習,改善了當說話人語音時長有限或不足時傳統算法模型訓練不充分、識別率不高等問題;更進一步,結合自動編碼器對數據編碼重構可以實現數據噪聲過濾的優勢,使網絡模型具備對有噪語音進行噪聲過濾的能力,提升了系統的魯棒性,確保該算法在有噪聲環境下也能具備穩定的系統性能。實驗結果表明,在純凈語音和有噪語音條件下,該算法比傳統算法有更好的識別結果。當然,在0dB等這種極端噪聲環境下,該算法的識別率還無法保持在一個可以接受的正確識別率之上,仍然需要進一步探索和完善。
[1] QUATIERI T F.離散時間語音信號處理:原理與應用[M].北京:電子工業出版社,2004.
[2] MARTINEZ J,PEREZ H,ESCAMILLA E,et al.Speaker recognition using Mel frequency cepstral coefficients (MFCC) and vector quantization (VQ) techniques[C]//International conference on electrical communications and computers.[s.l.]:IEEE,2012:248-251.
[3] HUANG C C, GONG W, FU W L,et al.A research of speaker recognition based on VQ and MFCC[J].Applied Mechanics and Materials,2014,644-650:4325-4329.
[4] HINTON G E,SALAKHUTDINOV R R.Reducing the dimensionality of data with neural networks[J].Science,2006,313(5786):504-507.
[5] YU D,SELTZER M L.Improved bottleneck features using pretrained deep neural networks[C]//Conference of the international speech communication association.[s.l.]:[s.n.],2011:237-240.
[6] RUMELHART D E,HINTON G E,WILLIAMS R J.Learning representations by back-propagating errors[J].Nature,1986,323(6088):533-536.
[7] 曲建嶺,杜辰飛,邸亞洲,等.深度自動編碼器的研究與展望[J].計算機與現代化,2014(8):128-134.
[8] VINCENT P,LAROCHELLE H,LAJOIE I,et al.Stacked denoising autoencoders:learning useful representations in a deep network with a local denoising criterion[J].Journal of Machine Learning Research,2010,11(12):3371-3408.
[9] 趙 力.語音信號處理[M].北京:機械工業出版社,2009.
[10] 丁艷偉,戴玉剛.基于VQ的說話人識別系統[J].電腦知識與技術,2008,4(5):1181-1183.
[11] 田 垚,蔡 猛,何 亮,等.基于深度神經網絡和Bottleneck特征的說話人識別系統[J].清華大學學報:自然科學版,2016,56(11):1143-1148.
[12] 王山海,景新幸,楊海燕.基于深度學習神經網絡的孤立詞語音識別的研究[J].計算機應用研究,2015,32(8):2289-2291.
[13] LIU Y,ZHOU S,CHEN Q.Discriminative deep belief networks for visual data classification[J].Pattern Recognition,2011,44(10):2287-2296.
[14] HINTON G E,OSINDERO S,TEH Y W.A fast learning algorithm for deep belief nets[J].Neural Computation,2006,18(7):1527-1554.
[15] HINTON G E.Learning multiple layers of representation[J].Trends in Cognitive Sciences,2007,11(10):428-434.
[16] MOHAMED A,DAHL G E,HINTON G.Acoustic modeling using deep belief networks[J].IEEE Transactions on Audio,Speech,and Language Processing,2012,20(1):14-22.
[17] SALAKHUTDINOV R. Learning deep generative models[D].Toronto:University of Toronto,2009.