張玉杰,張 贊
(陜西科技大學(xué)電氣與控制工程學(xué)院,陜西 西安710021)
聲紋識(shí)別是一種生物識(shí)別技術(shù),可根據(jù)一段語(yǔ)音識(shí)別出說(shuō)話人的身份[1]。從傳統(tǒng)的高斯混合模型GMM(Gaussian Mixture Model)[2]到深度學(xué)習(xí)算法[3 - 5],聲紋識(shí)別技術(shù)得到了快速發(fā)展。近年來(lái),隨著語(yǔ)譜圖的出現(xiàn),研究者提出采用語(yǔ)譜圖與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合的方式進(jìn)行說(shuō)話人身份識(shí)別[6 - 8],其優(yōu)勢(shì)在于語(yǔ)譜圖具有很強(qiáng)的綜合表征能力,能夠充分表示說(shuō)話人身份的完整信息,且卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network)擅于提取特征的能力,使聲紋識(shí)別系統(tǒng)的識(shí)別性能得到大幅度提升。
針對(duì)基于語(yǔ)譜圖的聲紋識(shí)別算法的研究目前仍處于初級(jí)階段,文獻(xiàn)[6-8]將卷積神經(jīng)網(wǎng)絡(luò)視為一種特征提取器,所用卷積層數(shù)較少,網(wǎng)絡(luò)的表達(dá)能力有限。而基于端到端的深度卷積神經(jīng)網(wǎng)絡(luò)模型不僅能夠利用深層的網(wǎng)絡(luò)結(jié)構(gòu)提取深度特征,而且端到端的方式使CNN具有特征提取與分類2種能力。DenseNet(Dense convolutional Network)作為一種端到端的網(wǎng)絡(luò)模型,采用密集連接結(jié)構(gòu)一方面能夠構(gòu)建更深層次的網(wǎng)絡(luò),另一方面加強(qiáng)了特征傳播,在圖像分類領(lǐng)域取得了較好的效果[9,10]。本文借鑒圖像處理的方法,將DenseNet應(yīng)用于語(yǔ)譜圖聲紋識(shí)別中,以提高聲紋識(shí)別的識(shí)別率。但是,利用DenseNet進(jìn)行聲紋識(shí)別時(shí),存在以下問(wèn)題:聲紋識(shí)別在許多場(chǎng)合下需要在嵌入式設(shè)備上進(jìn)行,大量的卷積池化操作會(huì)帶來(lái)網(wǎng)絡(luò)參數(shù)量的增加,導(dǎo)致在提取聲紋特征時(shí)網(wǎng)絡(luò)的存儲(chǔ)數(shù)據(jù)量增大,計(jì)算效率降低,不利于在對(duì)參數(shù)量有嚴(yán)格限制的嵌入式環(huán)境中運(yùn)行;采用Softmax 損失訓(xùn)練的DenseNet網(wǎng)絡(luò)提取的特征只具有可分離性,未考慮類內(nèi)的緊湊性,使特征沒(méi)有很好的表征性能,降低了聲紋識(shí)別的精確度。
本文將DenseNet用于語(yǔ)譜圖處理實(shí)現(xiàn)聲紋識(shí)別,從減少網(wǎng)絡(luò)參數(shù)量以及提高聲紋特征表征能力2個(gè)方面展開研究,對(duì)DenseNet進(jìn)行優(yōu)化,提高DenseNet在語(yǔ)譜圖聲紋識(shí)別中的識(shí)別效果。
語(yǔ)譜圖[11]是將語(yǔ)音信號(hào)的頻域特性通過(guò)時(shí)間域上的累積而形成的一種二維圖像,動(dòng)態(tài)地顯示了語(yǔ)音頻譜與時(shí)間之間的變化關(guān)系。語(yǔ)譜圖中包含對(duì)應(yīng)時(shí)刻頻率與能量強(qiáng)度組成的空間特征信息以及隨時(shí)間變化的時(shí)序特征信息,這些信息根據(jù)顏色的深淺形成了不同的紋理,在這些紋理中包含了大量的說(shuō)話人的個(gè)性特征信息,根據(jù)語(yǔ)譜圖紋理的區(qū)別,可以鑒別不同的說(shuō)話人。
語(yǔ)譜圖的生成過(guò)程如圖1所示。依據(jù)語(yǔ)音信號(hào)的短時(shí)平穩(wěn)特性將語(yǔ)音信號(hào)分割為若干幀信號(hào),再對(duì)每一幀信號(hào)加窗處理,然后進(jìn)行傅里葉變換得到信號(hào)的幅頻特性,通過(guò)對(duì)幅度值進(jìn)行對(duì)數(shù)變換和彩色映射獲得語(yǔ)音信號(hào)對(duì)應(yīng)的語(yǔ)譜圖。
Figure 1 Generation process of the spectrogram圖1 語(yǔ)譜圖的生成過(guò)程
借鑒基于深度學(xué)習(xí)的圖像處理方法,按照?qǐng)D1的過(guò)程生成說(shuō)話人的語(yǔ)譜圖,將語(yǔ)譜圖作為原始數(shù)據(jù),輸入至DenseNet網(wǎng)絡(luò)中進(jìn)行聲紋識(shí)別。按照語(yǔ)譜圖的處理要求,DenseNet的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,主要由1個(gè)初始卷積、N個(gè)密集連接模塊(Dense Block)、多個(gè)傳輸層(Transition Layer)和1個(gè)分類層(Classification Layer)組成。Dense Block結(jié)構(gòu)圖如圖3所示,x0,x1,…,xl-1為第0層到第l-1層的特征圖,通過(guò)對(duì)各層特征圖的拼接,再經(jīng)過(guò)非線性變換Hl(*)得到第l層的特征圖xl,其過(guò)程如式(1)所示:
xl=Hl([x0,x1,…,xl-1])
(1)
其中,非線性變換H(*)由一個(gè)1×1卷積和一個(gè)3×3的卷積組成,1×1卷積被稱為瓶頸層(Bottleneck Layer),其輸出通道數(shù)為4k(k是一個(gè)超參數(shù),被稱為增長(zhǎng)率),其作用是既融合了各個(gè)通道的特征,又通過(guò)降維減少了輸入到3×3卷積的特征圖數(shù)量,減少網(wǎng)絡(luò)的計(jì)算量。
Figure 2 Network structure of DenseNet 圖2 DenseNet網(wǎng)絡(luò)結(jié)構(gòu)
Figure 3 Network structure of densely connected modules 圖3 密集連接模塊的網(wǎng)絡(luò)結(jié)構(gòu)
為了防止隨著網(wǎng)絡(luò)層數(shù)的增加,特征維度增長(zhǎng)過(guò)快,Dense Block模塊之間通過(guò)Transition Layer連接。假設(shè)傳輸層的輸入通道數(shù)為k,采用1×1卷積產(chǎn)生θ×k個(gè)特征,當(dāng)0<θ<1時(shí)傳輸層起到模型壓縮的作用,再通過(guò)2×2池化操作縮小特征圖大小,減少網(wǎng)絡(luò)的參數(shù)量。
將DenseNet應(yīng)用于聲紋識(shí)別對(duì)語(yǔ)譜圖進(jìn)行處理時(shí),可以將語(yǔ)譜圖看作是一種紋理圖像,說(shuō)話人的語(yǔ)音個(gè)性特征體現(xiàn)在像素間的空間幾何特征與時(shí)序特征上,利用DenseNet進(jìn)行聲紋識(shí)別時(shí),利用其特征重用特性和對(duì)卷積池化層累積的特性,語(yǔ)音原本的序列特性可得到充分體現(xiàn)。但是,隨著卷積池化層的增多,網(wǎng)絡(luò)的數(shù)據(jù)量隨之增大,DenseNet的瓶頸層和傳輸層分別采用小的卷積核對(duì)特征圖的維度進(jìn)行壓縮,在一定程度上減少了網(wǎng)絡(luò)的參數(shù)量。但由于網(wǎng)絡(luò)層數(shù)的加深,網(wǎng)絡(luò)的參數(shù)量與計(jì)算量仍處于“超重”狀態(tài),不利于在資源有限的嵌入式平臺(tái)上實(shí)現(xiàn)聲紋識(shí)別。
DenseNet的Classification Layer由全局池化層、全連接層和Softmax層組成,經(jīng)過(guò)全局池化層和全連接層能夠得到語(yǔ)譜圖中描述說(shuō)話人的語(yǔ)音特征,再用Softmax函數(shù)進(jìn)行歸一化處理得到每個(gè)說(shuō)話人的概率。DenseNet使用交叉熵?fù)p失函數(shù)作為目標(biāo)函數(shù),通過(guò)網(wǎng)絡(luò)訓(xùn)練劃分不同說(shuō)話人類別。但是,對(duì)于聲紋識(shí)別來(lái)說(shuō),該方法只考慮到類內(nèi)的距離,提取到的聲紋特征并沒(méi)有更好的表征能力,不足以實(shí)現(xiàn)說(shuō)話人身份的精確識(shí)別。
針對(duì)DenseNet應(yīng)用于聲紋識(shí)別領(lǐng)域存在參數(shù)量大、特征表征能力弱的情況,本文對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化。一方面在不損失精度的前提下,對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化以減少參數(shù)量;另一方面通過(guò)多個(gè)損失函數(shù)的聯(lián)合監(jiān)督訓(xùn)練,增強(qiáng)聲紋特征的表征能力,實(shí)現(xiàn)說(shuō)話人身份的精確識(shí)別。
深度可分離卷積DSC(Depth Separable Convolution)是一種能夠有效減少網(wǎng)絡(luò)參數(shù)量的方法,本文將其應(yīng)用至DenseNet網(wǎng)絡(luò)中以降低算法的運(yùn)算復(fù)雜度。
本文設(shè)計(jì)的DenseNet網(wǎng)絡(luò)結(jié)構(gòu)如表1所示,采用了4個(gè)密集連接模塊和3個(gè)傳輸層。其中,4個(gè)密集連接模塊的密集連接單元個(gè)數(shù)分別為6,12,24和16。為了減少網(wǎng)絡(luò)的參數(shù)量,使用深度可分離卷積將Dense Block模塊中3×3的標(biāo)準(zhǔn)卷積分為一個(gè)3×3深度卷積DW(Depthwise Convolution)和一個(gè)1×1逐點(diǎn)卷積PW(Pointwise Convolution)。DW卷積的作用是對(duì)每一個(gè)輸入通道的特征圖做單獨(dú)卷積,一個(gè)卷積核負(fù)責(zé)一個(gè)通道;再利用PW卷積對(duì)DW卷積產(chǎn)生的特征圖進(jìn)行組合,改變輸出通道數(shù)。
Table 1 Network structure of improved DenseNet
在模型訓(xùn)練中,假設(shè)瓶頸層輸出大小為H×W×N的特征圖,利用3×3的卷積核進(jìn)行卷積操作后,輸出大小為H×W的P通道特征圖,則標(biāo)準(zhǔn)卷積參數(shù)量PSC與計(jì)算量FSC分別如式(2)和式(3)所示:
PSC=3×3×P×N
(2)
FSC=H×W×3×3×N×P
(3)
而深度可分離卷積的參數(shù)量PDSC與計(jì)算量FDSC分別如式(4)和式(5)所示:
PDSC=3×3×N+N×P
(4)
FDSC=H×W×32×N+H×W×N×P
(5)
深度可分離卷積與標(biāo)準(zhǔn)卷積的計(jì)算量與參數(shù)量之比如式(6)所示:
(6)
因此,采用深度可分離卷積,在模型的精度損失較小的情況下運(yùn)算量減少近8~9倍,極大地提高了模型的運(yùn)算效率。
為了提高聲紋特征的表征能力,使特征具有很好的類內(nèi)緊湊性和類間可分離性,本文采用Softmax損失函數(shù)(Softmax+交叉熵?fù)p失函數(shù))與中心損失函數(shù)(Center Loss)[12]聯(lián)合監(jiān)督的方式來(lái)訓(xùn)練DenseNet,其損失函數(shù)的具體表達(dá)式如式(7)所示:
L=Ls+λLc
(7)
其中,L表示總損失,Ls表示Softmax損失,Lc表示中心損失,λ用于平衡2個(gè)損失函數(shù)。其中Softmax損失函數(shù)的表達(dá)式如式(8)所示:
(8)
其中,xi表示第i個(gè)特征;yi是xi的真實(shí)類別標(biāo)簽;Wyi與Wj分別表示將xi判別為yi類和第j類的權(quán)重向量,即最后全連接層中權(quán)重W的第yi和第j列;byi與bj分別表示yi類和第j類的偏置項(xiàng);m表示小批量(mini-batch)的大小。
Center Loss損失函數(shù)如式(9)所示:
(9)
其中,cyi表示第yi類特征的類中心??梢钥闯觯行膿p失函數(shù)為每一個(gè)類別提供一個(gè)類別中心,使參與訓(xùn)練的每一個(gè)樣本都能向同一類別的中心靠攏,達(dá)到聚類的效果。
由式(8)和式(9)可以得到,在Softmax損失的監(jiān)督下訓(xùn)練的網(wǎng)絡(luò)可以劃分不同類別,但未曾考慮類內(nèi)特征的緊湊性;中心損失雖然最小化了類內(nèi)距離,但并未考慮類間的可分離性。因此,采用兩者相結(jié)合的方式對(duì)算法進(jìn)行尋優(yōu),可以擴(kuò)大類內(nèi)的緊湊性和類間可分離性,實(shí)現(xiàn)說(shuō)話人身份的高精度判別。
實(shí)驗(yàn)采用的語(yǔ)音數(shù)據(jù)集來(lái)自希爾貝殼中文普通話AISHELL-ASR0009OS1開源語(yǔ)音數(shù)據(jù)庫(kù),400名發(fā)言人參與錄制,分別來(lái)自中國(guó)不同口音區(qū)域,錄制過(guò)程在安靜的室內(nèi)環(huán)境中進(jìn)行,每人錄制300多個(gè)語(yǔ)音片段,同一人的語(yǔ)音放在一個(gè)文件夾下,隨機(jī)抽取10人的語(yǔ)音進(jìn)行實(shí)驗(yàn),一段語(yǔ)音被截取為1.5 s時(shí)長(zhǎng)的語(yǔ)音片段,按照8∶2的比例分為訓(xùn)練集與測(cè)試集,訓(xùn)練集包括41 909幅語(yǔ)譜圖,測(cè)試集包括10 472幅語(yǔ)譜圖。
硬件平臺(tái):GPU:NVIDIA Tesla V100;RAM:32 GB;顯存:16 GB;操作系統(tǒng):Ubuntu 16.04LTS,實(shí)驗(yàn)基于Keras框架。首先對(duì)語(yǔ)音信號(hào)進(jìn)行處理,語(yǔ)音信號(hào)的采樣率為11 025 Hz,幀長(zhǎng)為25 ms,則傅里葉變換點(diǎn)數(shù)為256,每幀語(yǔ)音信號(hào)的長(zhǎng)度為256,幀疊為128,按照?qǐng)D1所示的方法得到說(shuō)話人的語(yǔ)譜圖大小為119×129,隨機(jī)挑選2人的語(yǔ)譜圖如圖4所示,圖中明顯的橫方向的條紋,稱之為“聲紋”,不同說(shuō)話人的語(yǔ)譜圖聲紋紋理有所區(qū)別。
Figure 4 Spectrogram with 119×129 圖4 119×129語(yǔ)譜圖
為了驗(yàn)證本文聲紋識(shí)別算法的有效性,設(shè)計(jì)4組實(shí)驗(yàn)進(jìn)行對(duì)比,具體實(shí)驗(yàn)細(xì)節(jié)如表2所示。
Table 2 Experimental grouping
實(shí)驗(yàn)1為梅爾倒譜系數(shù)MFCC(Mel Frequency Cepstral Coefficients)+高斯混合模型GMM分類方法中,MFCC采用16維特征,GMM的階數(shù)為10階。實(shí)驗(yàn)2和實(shí)驗(yàn)3采用的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)如表1中的“DenseNet”部分所示,實(shí)驗(yàn)4采用的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)如表1中的“改進(jìn)的DenseNet”部分所示。其中,Dense Block模塊的增長(zhǎng)率k設(shè)置為32;Transition層的壓縮系數(shù)為0.5,即特征圖通過(guò)傳輸層特征維度減少一半;中心損失函數(shù)的中心學(xué)習(xí)率設(shè)置為0.6,λ取0.01。本次實(shí)驗(yàn)采用Adam優(yōu)化器,批量大小為64,學(xué)習(xí)率設(shè)置為0.001,迭代次數(shù)為40次。定義識(shí)別率為性能評(píng)價(jià)指標(biāo),即識(shí)別正確的語(yǔ)音片段的數(shù)量與測(cè)試數(shù)據(jù)集中的總語(yǔ)音片段數(shù)量的比值。
(1)收斂性分析。
通過(guò)對(duì)實(shí)驗(yàn)2~實(shí)驗(yàn)4進(jìn)行仿真訓(xùn)練,模型損失值與迭代次數(shù)的關(guān)系如圖5所示。由圖5可以看出,實(shí)驗(yàn)2比實(shí)驗(yàn)3和實(shí)驗(yàn)4的收斂速度更快,而實(shí)驗(yàn)3和實(shí)驗(yàn)4的收斂速度比較接近。說(shuō)明在Softmax損失的監(jiān)督下,DenseNet網(wǎng)絡(luò)能夠很快收斂,Center Loss的加入對(duì)網(wǎng)絡(luò)的收斂速度有一定的抑制作用,但是隨著迭代次數(shù)的增加,3組實(shí)驗(yàn)的Loss值都呈下降趨勢(shì)且趨于平穩(wěn),表明3組實(shí)驗(yàn)的網(wǎng)絡(luò)都可以正常收斂。
Figure 5 Effect of epoch on Loss value圖5 迭代次數(shù)對(duì)Loss值的影響
(2)模型大小與參數(shù)量。
原DenseNet網(wǎng)絡(luò)與基于深度可分離卷積的DenseNet網(wǎng)絡(luò)的參數(shù)量和模型大小如表3所示,改進(jìn)的DenseNet網(wǎng)絡(luò)的參數(shù)量減少了25.5%,模型大小減少了24.6%。
Table 3 DenseNet network model size
(3)識(shí)別率。
表4反映了4組實(shí)驗(yàn)的識(shí)別率,由表4可知,實(shí)驗(yàn)2與實(shí)驗(yàn)1相比,識(shí)別率提高了12.4%,充分體現(xiàn)了基于DenseNet網(wǎng)絡(luò)的聲紋識(shí)別方法優(yōu)于傳統(tǒng)的MFCC+GMM模型;實(shí)驗(yàn)3與實(shí)驗(yàn)2相比,識(shí)別率提高了1.94%,實(shí)驗(yàn)4與實(shí)驗(yàn)2相比,識(shí)別率提高了1.9%,說(shuō)明Center Loss與Softmax Loss相結(jié)合更有利于說(shuō)話人身份的識(shí)別,提高了聲紋識(shí)別的識(shí)別率;實(shí)驗(yàn)3與實(shí)驗(yàn)4相比,基于深度可分離卷積的DenseNet網(wǎng)絡(luò)與原網(wǎng)絡(luò)的識(shí)別率基本接近,說(shuō)明DenseNet網(wǎng)絡(luò)結(jié)構(gòu)上的改變并未影響網(wǎng)絡(luò)的識(shí)別率,還有效地減少了網(wǎng)絡(luò)參數(shù),提高了網(wǎng)絡(luò)的計(jì)算效率。
Table 4 Recognition rates comparision of four groups of experiments
(4)特征可視化。
針對(duì)實(shí)驗(yàn)2與實(shí)驗(yàn)4,利用PCA(Principal Component Analysis)算法對(duì)最后一層全連接層所提取的特征進(jìn)行降維,再進(jìn)行特征可視化,可視化結(jié)果如圖6和圖7所示。由圖6可以看出Softmax Loss雖然能夠?qū)⒚恳活悇e分開,但是同一類別特征比較分散。與圖7進(jìn)行對(duì)比,可以明顯看出加入中心損失函數(shù)后,DenseNet網(wǎng)絡(luò)提取的聲紋特征有很好的聚類效果,進(jìn)一步表明改進(jìn)的DenseNet網(wǎng)絡(luò)+Center Loss+Softmax Loss更適合于聲紋識(shí)別任務(wù)。
Figure 6 Feature visualization results based on Softmax Loss圖6 基于Softmax Loss的特征可視化結(jié)果
Figure 7 Feature visualization results based on Softmax Loss and Center Loss圖7 基于Softmax Loss 與Center Loss的特征可視化結(jié)果
將DenseNet應(yīng)用于語(yǔ)譜圖實(shí)現(xiàn)聲紋識(shí)別,從提高網(wǎng)絡(luò)的運(yùn)算效率和增強(qiáng)聲紋特征的表征能力2個(gè)方面對(duì)DenseNet展開研究,提出采用深度可分離卷積以及增加中心損失函數(shù)項(xiàng)實(shí)現(xiàn)對(duì)DenseNet的優(yōu)化。實(shí)驗(yàn)結(jié)果表明,與優(yōu)化前比較,網(wǎng)絡(luò)參數(shù)量減少了25.5%,模型大小減少了24.6%;從仿真結(jié)果可以看出,優(yōu)化后的網(wǎng)絡(luò)提取的聲紋特征具有很好的類內(nèi)緊湊性與類間可分離性,特征的表征能力得到了增強(qiáng)。由此可以得出,改進(jìn)后的DenseNet在語(yǔ)譜圖聲紋識(shí)別方面具有很好的識(shí)別效果,是一種有效的聲紋識(shí)別方法。