王芷悅,崔 琳,2
(1.西安工程大學(xué)電子信息學(xué)院,陜西 西安 710699; 2.西北工業(yè)大學(xué)航海學(xué)院,陜西 西安 710072)
聲紋識(shí)別又稱說話人識(shí)別,是生物識(shí)別技術(shù)的一種,它是通過對(duì)比不同語音的深度特征來達(dá)到區(qū)分說話人的目的。相較于其他需要接觸采集的生物識(shí)別方式,聲紋識(shí)別獲取樣本方式更多樣,被采集者接受度更高。聲紋識(shí)別在刑事偵查、國防監(jiān)聽、金融證券、生活加密等領(lǐng)域都有重要的應(yīng)用。
在深度學(xué)習(xí)進(jìn)入聲紋識(shí)別領(lǐng)域之前,傳統(tǒng)方法中最有效的是利用高斯混合模型-通用背景模型(Gaussian Mixture Model-Universal Background Model,GMM-UBM)[1-2]進(jìn)行聲紋識(shí)別,但是此方法過程繁瑣,整體性差。隨著深度學(xué)習(xí)的發(fā)展,神經(jīng)網(wǎng)絡(luò)在多個(gè)方面表現(xiàn)優(yōu)異,聲紋識(shí)別領(lǐng)域也開始引入深度學(xué)習(xí)的方法。由谷歌提出的d-vector模型[3]首次建立了深層神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks, DNN)下的聲紋識(shí)別系統(tǒng),后來又發(fā)展出基于三維卷積神經(jīng)網(wǎng)絡(luò)(3D Convolutional Neural Networks, 3D-CNN)的說話人識(shí)別模型[4]和基于時(shí)延神經(jīng)網(wǎng)絡(luò)(Time-Delay Neural Network, TDNN)的x-vector模型[5]等各種模型。以上幾種方法是端到端聲紋識(shí)別的雛形,近幾年,端到端模型[6-7]愈發(fā)引起研究人員的重視。百度提出基于殘差網(wǎng)絡(luò)(Residual Convolution Neural Network, ResCNN)的端到端聲紋識(shí)別模型[8],此外還有從神經(jīng)網(wǎng)絡(luò)的隱藏層提取幀級(jí)別說話人深度嵌入的方法[9],用于建立端到端的說話人識(shí)別模型。這些模型充分發(fā)揮神經(jīng)網(wǎng)絡(luò)的優(yōu)勢(shì),一次性完成深度特征提取與分類,過程簡潔、整體性強(qiáng)、便于優(yōu)化,且結(jié)果較好。
主干網(wǎng)絡(luò)的選擇對(duì)于端到端聲紋識(shí)別模型來說非常關(guān)鍵,常見的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)[10-11]雖擅長提取數(shù)據(jù)的深層特征,但在處理時(shí)序數(shù)據(jù)方面仍有短板。循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)[12-13]擅于處理序列信號(hào),具有信息持久性,所以常被用來處理具有時(shí)間連續(xù)性的語音信號(hào)。雖然RNN擅長處理時(shí)序信號(hào)但是存在梯度爆炸或梯度消失的問題,且傳統(tǒng)RNN無法實(shí)現(xiàn)對(duì)長序列的記憶。后來長短時(shí)記憶網(wǎng)絡(luò)(Long Short-Term Memory, LSTM)[14-15]被提出,它改變了傳統(tǒng)RNN網(wǎng)絡(luò)的內(nèi)部結(jié)構(gòu),避免梯度在傳遞過程中的大量連乘,使網(wǎng)絡(luò)只對(duì)有價(jià)值的信息進(jìn)行記憶,解決了RNN梯度消失與無法處理長序列任務(wù)的問題。文獻(xiàn)[16]構(gòu)建了一種LSTM-RNN模型,研究不同語音特征和不同信噪比情況下的文本無關(guān)的說話人識(shí)別。
對(duì)于語音信號(hào),前一幀與后一幀同樣地反映著說話人的音色特征。因此,對(duì)于主干網(wǎng)絡(luò)而言全面處理時(shí)序信息的能力至關(guān)重要。雙向長短時(shí)記憶網(wǎng)絡(luò)(Bidirectional Long Short-Term Memory, BLSTM)[17]是由前向和后向LSTM結(jié)合而成,它能夠獲得更多的時(shí)序信息從而得到相對(duì)LSTM更細(xì)粒度的分類結(jié)果。要使網(wǎng)絡(luò)模型的特征提取能力進(jìn)一步加強(qiáng),就要改變?cè)季W(wǎng)絡(luò)結(jié)構(gòu)。堆疊網(wǎng)絡(luò)(stacked network)[18]是由多層神經(jīng)網(wǎng)絡(luò)層疊而成,它能夠獲得更深層次的數(shù)據(jù)特征信息從而得到更精確的識(shí)別結(jié)果。但是如果網(wǎng)絡(luò)在外部沒有非線性激活層,這就使網(wǎng)絡(luò)缺少非線性表達(dá)能力從而缺少應(yīng)對(duì)復(fù)雜問題的能力。此問題本文通過堆疊多層的非線性層來解決。
綜合上述研究,針對(duì)語音信號(hào)獨(dú)特的數(shù)據(jù)特征,同時(shí)為得到過程簡潔、整體性強(qiáng)且具有時(shí)序全面性與非線性的高精度識(shí)別模型,本文提出一種以非線性堆疊雙向LSTM(Nonlinear Stacked Bidirectional Long Short-Term Memory, NSB-LSTM)為主干網(wǎng)絡(luò)的文本無關(guān)端到端聲紋識(shí)別模型。
本文所構(gòu)建的NSB-LSTM主干網(wǎng)絡(luò),通過多層BLSTM與非線性層的疊加,逐層提取語音信號(hào)的深層次特征。其中LSTM是一種改進(jìn)的循環(huán)神經(jīng)網(wǎng)絡(luò),它改造了傳統(tǒng)RNN隱藏單元的內(nèi)部結(jié)構(gòu),加入“門”和細(xì)胞狀態(tài)的理念,使網(wǎng)絡(luò)能夠有選擇地記憶和遺忘。BLSTM結(jié)合前向LSTM與后向LSTM,能夠雙向提取數(shù)據(jù)序列的特征信息。在t時(shí)刻,前向和后向2個(gè)網(wǎng)絡(luò)會(huì)同時(shí)處理網(wǎng)絡(luò)的輸入信息,能更全面地提取時(shí)序信號(hào)的深度特征,為時(shí)序性強(qiáng)的語音信號(hào)問題提供更好的識(shí)別結(jié)果。其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 BLSTM結(jié)構(gòu)示意圖
(1)
(2)
(3)
其中,W表示權(quán)重矩陣,b表示偏置向量。
對(duì)于SB-LSTM網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。它的獨(dú)特之處在于下一層的網(wǎng)絡(luò)可以重新組合前一層網(wǎng)絡(luò)學(xué)習(xí)到的內(nèi)容,即它能夠在更高級(jí)別建立新的時(shí)序數(shù)據(jù)特征。如圖2所示,第1層網(wǎng)絡(luò)接收輸入數(shù)據(jù)并進(jìn)行特征提取后的輸出,被當(dāng)作第2層網(wǎng)絡(luò)的輸入數(shù)據(jù),繼續(xù)進(jìn)行深度特征計(jì)算。
圖2 SB-LSTM結(jié)構(gòu)示意圖
本文主干網(wǎng)絡(luò)中所加非線性層通過激活函數(shù)實(shí)現(xiàn)。在深度學(xué)習(xí)發(fā)展初期,傳統(tǒng)S型非線性飽和激活函數(shù)sigmoid和tanh函數(shù)得到了廣泛的應(yīng)用[19],但是它們有梯度彌散的問題[20-21]。為解決這一問題,修正線性單元(Rectified Linear Units, ReLU)[22]作為激活函數(shù)的方法被提出。由于ReLU函數(shù)容易發(fā)生神經(jīng)元壞死的情況[23],因而Leaky ReLU激活函數(shù)[24]被提出。由式(4)可以看出,Leaky ReLU在負(fù)半軸添加一個(gè)線性參數(shù)a,使梯度不再限定為0,所以能有效緩解神經(jīng)元死亡的問題,本文選擇使用此激活函數(shù)來實(shí)現(xiàn)非線性層。
(4)
其中,a為常數(shù)。
本文所提端到端聲紋識(shí)別模型主要組成部分為:輸入原始數(shù)據(jù)預(yù)處理過程、將語音信號(hào)轉(zhuǎn)化為高維向量的特征提取和計(jì)算聲學(xué)特征深度嵌入的神經(jīng)網(wǎng)絡(luò)。圖3為本文所提方法的總體流程。
圖3 本文所提方法的總體流程
其中聲音信號(hào)預(yù)處理主要包括預(yù)加重、分幀、加窗過程,目的是為其后的特征提取過程做數(shù)據(jù)準(zhǔn)備。聲學(xué)特征提取技術(shù)發(fā)展較早,梅爾倒譜系數(shù)(Mel Frequency Cepstrum Coefficient,MFCC)與濾波器組(Filter bank, Fbank)是其中最常用的2種。相對(duì)于MFCC特征,F(xiàn)bank的信息相關(guān)性更高且更類似于人耳處理音頻的方式,本文使用此特征作為神經(jīng)網(wǎng)絡(luò)的輸入。其主要過程為,將預(yù)處理后的語音信號(hào)經(jīng)過快速傅里葉變換,再經(jīng)過Mel濾波器組計(jì)算Mel頻率,最后取對(duì)數(shù)得到Fbank特征。
神經(jīng)網(wǎng)絡(luò)是整個(gè)聲紋識(shí)別模型的關(guān)鍵部分,主干網(wǎng)絡(luò)是將輸入的特征向量計(jì)算成語音深度嵌入的工具,識(shí)別過程就是通過對(duì)比不同深度特征的距離來確定是否為同一說話人,本文針對(duì)語音信號(hào)的特點(diǎn)在主干網(wǎng)絡(luò)部分做出新的改進(jìn)。加深神經(jīng)網(wǎng)絡(luò)深度通常能夠獲得更好的識(shí)別結(jié)果,SB-LSTM由多層BLSTM堆疊而成,比單層網(wǎng)絡(luò)有更高的擬合度,它能更深入且全面地提取時(shí)序信號(hào)的深度特征。本文利用此優(yōu)勢(shì),將其引入聲紋識(shí)別領(lǐng)域,用來處理時(shí)序性較強(qiáng)的語音信號(hào)。同時(shí)為了增加網(wǎng)絡(luò)的非線性表達(dá)能力,使網(wǎng)絡(luò)更好地處理復(fù)雜問題,增加模型識(shí)別精度,在SB-LSTM網(wǎng)絡(luò)基礎(chǔ)上加入多層非線性層,構(gòu)建具有時(shí)序全面性與非線性的NSB-LSTM主干網(wǎng)絡(luò)。
本文所構(gòu)建NSB-LSTM主干網(wǎng)絡(luò)的具體結(jié)構(gòu)如下:首先為序列輸入層,將提取出的FBank特征向量進(jìn)行維度變換,變?yōu)榉仙窠?jīng)網(wǎng)絡(luò)輸入的大小。然后是多層的BLSTM網(wǎng)絡(luò),雙向處理接收數(shù)據(jù),經(jīng)過多層網(wǎng)絡(luò)計(jì)算數(shù)據(jù)的深層特征。再者為多層非線性層,在網(wǎng)絡(luò)中添加非線性表達(dá)能力。最后為一層全連接層,目的是對(duì)網(wǎng)絡(luò)處理后的數(shù)據(jù)做維度變換。經(jīng)過神經(jīng)網(wǎng)絡(luò)計(jì)算得到說話人特征的深度嵌入后,使用交叉熵?fù)p失函數(shù)結(jié)合softmax分類器對(duì)比不同語音的深度嵌入,得到說話人識(shí)別結(jié)果。
本文采用TIMIT數(shù)據(jù)集進(jìn)行模型的訓(xùn)練和測(cè)試。該數(shù)據(jù)集由麻省理工學(xué)院、斯坦福研究院、德州儀器共同構(gòu)建。數(shù)據(jù)集包含來自美國8個(gè)不同州的630位說話者,每人10句話,總計(jì)6300個(gè)句子,說話者中約有70%的男性,大多數(shù)為成年白人。音頻文件錄制環(huán)境為安靜的室內(nèi),數(shù)據(jù)集的語音采樣頻率為16 kHz,比特位數(shù)為16 bits。在本文實(shí)驗(yàn)中將數(shù)據(jù)集以9:1劃分訓(xùn)練集和測(cè)試集,即567個(gè)說話人數(shù)據(jù)用于訓(xùn)練,63個(gè)說話人數(shù)據(jù)用于測(cè)試。進(jìn)行數(shù)據(jù)預(yù)處理時(shí)設(shè)置幀長和幀移分別為512、160,漢明窗大小為400。預(yù)處理后的數(shù)據(jù)通過40個(gè)梅爾濾波器,得到40維的Fbank特征作為神經(jīng)網(wǎng)絡(luò)的輸入。
本文實(shí)驗(yàn)在Windows 64位操作系統(tǒng)上進(jìn)行,采用Pytorch深度學(xué)習(xí)框架。進(jìn)行模型訓(xùn)練時(shí)使用SGD優(yōu)化器,學(xué)習(xí)率設(shè)置為0.01,整個(gè)訓(xùn)練過程共經(jīng)歷500輪迭代。
本文采用損失值(Loss)和測(cè)試時(shí)的等錯(cuò)誤率(Equal Error Rate, EER)作為評(píng)價(jià)指標(biāo)。損失值表示模型判定結(jié)果與實(shí)際標(biāo)簽的偏差,損失的具體數(shù)值由損失函數(shù)計(jì)算得到,本文使用交叉熵?fù)p失函數(shù)計(jì)算損失值。損失值的大小可作為衡量模型好壞的參考,損失值越小模型預(yù)測(cè)越準(zhǔn)確。等錯(cuò)誤率是錯(cuò)誤拒絕率(False Rejection Rate, FRR)與錯(cuò)誤接受率(False Acceptance Rate, FAR)相等時(shí)的值,等錯(cuò)誤率越小就說明2種錯(cuò)誤率同時(shí)越低,即聲紋識(shí)別模型性能越好。
2.3.1 模型參數(shù)選擇
本文構(gòu)建NSB-LSTM為網(wǎng)絡(luò)主干的聲紋識(shí)別模型,其中BLSTM的堆疊層數(shù)、每層隱藏節(jié)點(diǎn)數(shù)與非線性層數(shù)是網(wǎng)絡(luò)的重要參數(shù),對(duì)網(wǎng)絡(luò)性能有著不可忽視的影響。對(duì)于SB-LSTM而言,層數(shù)越多,網(wǎng)絡(luò)越深,理論上對(duì)說話人的識(shí)別能力也就越強(qiáng),但是層數(shù)深意味著計(jì)算資源的大量消耗,并且在實(shí)際應(yīng)用中,層數(shù)越多不一定得到的結(jié)果就越準(zhǔn)確。因此需要首先構(gòu)建基于SB-LSTM的聲紋識(shí)別模型,通過實(shí)驗(yàn)得到最高性能的網(wǎng)絡(luò)結(jié)構(gòu),從而與非線性層組合。
將SB-LSTM層數(shù)分別設(shè)置為1、3、5,將每層的隱藏節(jié)點(diǎn)數(shù)分別設(shè)置為256、512、768,一共9種組合方式。圖4是9種不同模型的實(shí)驗(yàn)結(jié)果,從圖中可看出SB-LSTM的網(wǎng)絡(luò)層數(shù)從1層增加到3層時(shí),不同隱藏節(jié)點(diǎn)數(shù)的網(wǎng)絡(luò)對(duì)應(yīng)的EER都有所下降,但當(dāng)網(wǎng)絡(luò)層數(shù)為5層時(shí),等錯(cuò)誤率大幅上升。此實(shí)驗(yàn)結(jié)果表明,層數(shù)為1時(shí),網(wǎng)絡(luò)過淺造成學(xué)習(xí)能力不足,層數(shù)為5時(shí),對(duì)于聲紋識(shí)別來說網(wǎng)絡(luò)過深造成過擬合。從圖4可以看出,不同隱藏節(jié)點(diǎn)在層數(shù)為3時(shí)所對(duì)應(yīng)的模型效果是最好的,因此本文選擇層數(shù)為3的SB-LSTM網(wǎng)絡(luò)與非線性層結(jié)合進(jìn)行后續(xù)實(shí)驗(yàn)。
圖4 不同參數(shù)的SB-LSTM識(shí)別結(jié)果
將3層的SB-LSTM與不同層數(shù)的非線性激活層組合進(jìn)行實(shí)驗(yàn),得到最佳的參數(shù)組合。對(duì)于隱藏節(jié)點(diǎn)數(shù)則分別設(shè)為256、521、768,將非線性層數(shù)分別設(shè)為1、2、3、4,得到12種組合。圖5是不同模型的實(shí)驗(yàn)結(jié)果,從圖中可以看出,非線性層數(shù)從1增加到3時(shí),各隱藏節(jié)點(diǎn)數(shù)對(duì)應(yīng)模型的EER均逐漸下降,其中層數(shù)為3和隱藏節(jié)點(diǎn)數(shù)為768的模型表現(xiàn)最好,非線性層數(shù)增加到4時(shí),模型性能變差。對(duì)比圖4與圖5可以看出,加入非線性層的NSB-LSTM模型在各個(gè)隱藏節(jié)點(diǎn)不同的情況下,性能均優(yōu)于SB-LSTM模型。圖5實(shí)驗(yàn)結(jié)果表明在非線性層數(shù)為3時(shí),模型的非線性表達(dá)能力最好,因此本文將NSB-LSTM堆疊層數(shù)設(shè)置為3、隱藏節(jié)點(diǎn)數(shù)設(shè)置為768、非線性層數(shù)設(shè)置為3進(jìn)行后續(xù)模型對(duì)比實(shí)驗(yàn)。
圖5 不同參數(shù)的NSB-LSTM識(shí)別結(jié)果
2.3.2 模型性能對(duì)比
為增加LSTM的時(shí)序全面性與非線性,本文提出了NSB-LSTM網(wǎng)絡(luò),為驗(yàn)證本文所構(gòu)建模型的有效性,將本文所提的NSB-LSTM2模型與RNN、GRU、LSTM、BLSTM、NSB-LSTM1(ReLU)這5種模型進(jìn)行對(duì)比,除網(wǎng)絡(luò)結(jié)構(gòu)不同外,其他實(shí)驗(yàn)參數(shù)設(shè)置均相同。
圖6是5種不同模型訓(xùn)練過程中的損失值變化曲線。在本文實(shí)驗(yàn)中,基于RNN模型的損失值變化范圍與其他模型損失值范圍差距較大,故將RNN的損失值變化排除在曲線圖之外,這一實(shí)驗(yàn)結(jié)果也驗(yàn)證了傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)無法很好地進(jìn)行識(shí)別工作。對(duì)于其他5種模型,從圖6可以看出,雙向LSTM網(wǎng)絡(luò)收斂后的損失值小于非雙向網(wǎng)絡(luò),而增加非線性層的堆疊雙向LSTM收斂后的損失值最小,收斂速度也相對(duì)最快。
圖6 損失值變化曲線
模型最后一次迭代的損失值與等錯(cuò)誤率的實(shí)驗(yàn)結(jié)果如表1所示。從表1可看出,基于RNN網(wǎng)絡(luò)的模型表現(xiàn)最差,其他改進(jìn)模型在損失值與等錯(cuò)誤率方面均有較大提升,其中本文所提模型表現(xiàn)最好。本文模型相比GRU模型、LSTM模型和BLSTM模型,在損失值方面分別下降約0.8、0.76、0.34,在等錯(cuò)誤率方面分別下降比例約為38%、36%、28%。將非線性層為ReLU函數(shù)的NSB-LSTM1模型作為對(duì)比項(xiàng)時(shí),可以看出本文所使用的Leaky ReLU函數(shù)在性能上有所提升。綜合以上實(shí)驗(yàn)結(jié)果可得出本文所提模型具有更好的識(shí)別效果和更強(qiáng)的模型性能,同時(shí)也驗(yàn)證了本文所提方法的有效性。
表1 不同網(wǎng)絡(luò)結(jié)構(gòu)性能對(duì)比
本文提出了一個(gè)具有時(shí)序全面性與非線性的NSB-LSTM網(wǎng)絡(luò)作為聲紋識(shí)別主干網(wǎng)絡(luò),通過實(shí)驗(yàn)找出網(wǎng)絡(luò)模型的最佳參數(shù),在實(shí)驗(yàn)中驗(yàn)證了本文所提模型性能優(yōu)于LSTM模型、GRU等其他模型。本文構(gòu)建的端到端聲紋識(shí)別模型解決了傳統(tǒng)方法過程繁瑣的問題,并且針對(duì)語音信號(hào)特點(diǎn)在原有網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上提出新的改進(jìn)策略,得到高性能的聲紋識(shí)別模型,為提取語音深度特征提供了新的方法。