李建文 趙統(tǒng)軍
(陜西科技大學(xué)電子信息與人工智能學(xué)院 陜西省西安市 710021)
說話人識別也叫聲紋識別,是根據(jù)說話人的語音判斷其身份的技術(shù)。由于每個人在說話時使用的發(fā)聲器官,如聲帶、口腔、舌頭、牙齒、口腔、鼻腔等在尺寸和形態(tài)方面有著生理上的不同,并且每個人說話時對于這些器官的使用程度也有著習(xí)慣上的差異,這些特點使得每個人的語音都有著明確的個人信息。說話人識別的任務(wù)就是提取語音中說話人特征,以此來區(qū)分不同說話人,達到識別說話人的目的。
在早期,說話人語音數(shù)據(jù)不足,計算機性能有限,傳統(tǒng)的GMM-UBM 模型[1],對說話人身份進行建模,先使用大量的非目標用戶數(shù)據(jù)訓(xùn)練UBM,再利用MPA 自適應(yīng)算法和目標人數(shù)據(jù)更新局部參數(shù),建立說話人模型。該模型一般選擇經(jīng)過預(yù)加重、分幀、加窗、傅里葉變換等步驟獲得的MFCC 特征向量作為輸入。后來出現(xiàn)了特征更加緊湊的I-vector 矢量[2],用來表征說話人特征。
隨著計算機性能的提升,深度學(xué)習(xí)也開始在特征提取方面顯示出優(yōu)勢,最開始Google 提出d-vector 特征向量[3],將語音信息輸入DNN,將最后一層的數(shù)據(jù)作為特征用于代替之前的I-vector,開啟了深度學(xué)習(xí)時代。DNN 的使用更加促進了深度學(xué)習(xí)網(wǎng)絡(luò)的應(yīng)用,之后出現(xiàn)了性能更好的x-vector[4]。而隨著在圖像處理領(lǐng)域有著良好效果的卷積神經(jīng)網(wǎng)絡(luò)CNN 的加入,包含更多信息的梅爾語譜圖也更加適合作為語音的特征輸入,有人嘗試使用混合CNN 網(wǎng)絡(luò)[5]提取特征,結(jié)合LSTM[6]。不過CNN 在增加過多深度的同時會引起梯度爆炸或消失的現(xiàn)象,隨后出現(xiàn)了基于ResNet[7]的改進ResCNN[8],通過使用殘差結(jié)構(gòu),使得卷積網(wǎng)絡(luò)模型設(shè)計更加多層數(shù)的同時,避免出現(xiàn)梯度爆炸等現(xiàn)象。在圖像處理領(lǐng)域中,Attention注意力機制[9]提出了針對重要信息突出的想法,把任務(wù)中需要的特征信息進行強調(diào),不需要的其他信息進行抑制。有人嘗試將傳統(tǒng)TDNN[10]中加入注意力模塊,提升了傳統(tǒng)模型的效果。Google 也在注意力機制上進行了探索,用于對上下文相關(guān)信息的LSTM[11]模型進行改進。之后也出現(xiàn)了一些權(quán)重分配的其他方案[12,13],嘗試與其他傳統(tǒng)模型進行結(jié)合[14,15],但仍未將語音信息中說話人相關(guān)信息充分提取。
目前注意力機制被運用在其他領(lǐng)域居多,在運用時只在單一維度進行使。在說話人識別中也未能進行深入探索,因此,本文提出了3A-RCNN 網(wǎng)絡(luò)模型,運用注意力機制在通道維度、時間維度、頻率維度三個維度進行權(quán)值自分配,結(jié)合深度殘差CNN 網(wǎng)絡(luò)對特征的充分提取能力,從中篩選出說話人身份信息。
在卷積神經(jīng)網(wǎng)絡(luò)模型提取說話人特征時,對于卷積核提取出來的通道空間特征,總是等權(quán)重的進行傳遞,而實際中不同卷積核提取出不同通道,包含的身份特征信息并不相同。為了能加深重要權(quán)重通道的影響力,本文提出,將通道維度注意力機制引入卷積模型的殘差結(jié)構(gòu)中,通過對提取出的通道空間進行權(quán)重分配,使得更重要的空間特征獲得更高的權(quán)重。由于神經(jīng)網(wǎng)絡(luò)的卷積核個數(shù)通常較大,為了提高模型的泛化能力,所以通道維度的注意力機制使用較為復(fù)雜的設(shè)置方式,同時進行全局平均池化和全局最大池化,之后的時間和頻率維度注意力機制則使用較為簡潔的設(shè)置方式。引入的注意力機制框架如圖1 所示。
圖1:通道注意力機制
圖2:時間注意力機制
圖3:頻率注意力機制
表1:3A-RCNN 參數(shù)設(shè)置
表2:不同殘差塊個數(shù)對模型的影響
表3:不同模型性能對比
通道維度注意力機制連接在傳統(tǒng)殘差結(jié)構(gòu)的后面,以殘差結(jié)構(gòu)作為輸入。輸入的特征圖為其中M 表示輸入的特征圖,F(xiàn) 表示頻率維度,T 表示時間幀數(shù),C 表示通道維度,表示學(xué)習(xí)到的通道維度權(quán)重。
首先,殘差塊輸入的特征圖M 分別輸入Globalaveragepooling層和Globalmaxpooling 層,得到兩個維度為通道維度C 的特征圖,之后并列疊加,維度變?yōu)?2,C),繼續(xù)傳入Dense 層,通過Relu激活函數(shù)進行激活,再傳入Dense 層,之后將通道維度求和并輸入Softmax 激活函數(shù)進行激活,通道權(quán)重映射在0 到1 之間,Softmax激活函數(shù)公式為:
其中ei代表第i 個通道的權(quán)值,Si就是第i 個通道在所有通道C 中的權(quán)重,激活之后就得到表示通道權(quán)重的之后將特征圖M 各個維度與通道權(quán)重Ac相乘,得到經(jīng)過通道權(quán)重分配的新特征圖M1,通道維度注意力機制運算公式如下:
將計算出的特征圖M1向后傳遞到下一個處理單元。
圖4:殘差結(jié)構(gòu)
語音信息相比于其他數(shù)據(jù),特殊點在于具有時間維度,不同的時間幀中包含的說話人之間的差異信息,為了增加特定時間幀的權(quán)重,本文提出將注意力機制作用于時間維度,具體框架如圖2 所示。
時間維度注意力機制連接在通道維度注意力機制后面,輸入為特征圖M1,時間注意力機制運算過程如下:
其中,Mf()和Mc()分別表示在特征維度和通道維度計算平均值的過程,表示學(xué)習(xí)到的時間維度權(quán)重,其余符號意義和公式(2)相同。
將計算出的特征圖M2向后傳遞到下一個處理單元。
對于不同頻率的特征,同樣需要進行權(quán)重分配,本文提出將特征注意力機制作用于頻率維度,具體框架如圖3 所示,運算過程如下:
頻率維度注意力機制連接在時間維度注意力機制后面,輸入為特征圖M2,頻率注意力機制運算過程如下:
其中,Mt()表示在時間維度取平均值的過程,表示學(xué)習(xí)到的頻率維度權(quán)重,其余符號意義和公式(2)相同。
計算出特征圖M3,完成權(quán)重分配。
在ResNet 中,殘差塊可以有效解決深層網(wǎng)絡(luò)的梯度消失問題,具有強大的特征學(xué)習(xí)能力,圖4(a)為傳統(tǒng)的殘差結(jié)構(gòu),圖4(b)為本文提出的3A 殘差結(jié)構(gòu)。
輸入數(shù)據(jù)經(jīng)過原始的殘差結(jié)構(gòu)后,連接上文提出的3A 殘差結(jié)構(gòu),這樣會讓每次殘差結(jié)果都進行了3A 注意力的權(quán)值分配。3A 殘差結(jié)構(gòu)如圖4 所示,不同層的殘差結(jié)構(gòu)相同,參數(shù)不同。
圖5:3A-RCNN 網(wǎng)絡(luò)結(jié)構(gòu)
圖6:準確率和損失值隨迭代次數(shù)變化
圖7:不同模型準確率隨迭代批次的變化
圖8:不同模型損失值隨迭代批次的變化
基于3A-RCNN 網(wǎng)絡(luò)的聲紋識別模型如圖5 所示,網(wǎng)絡(luò)的輸入端使用的是聲紋識別中常用梅爾語譜圖,不僅保留了足夠多的說話人身份信息,又能模擬人耳將信息進行了過濾,以圖片的形式輸入神經(jīng)網(wǎng)絡(luò)中,其大小為128×376,128 為頻率維度,376 為時間維度,圖中明亮程度代表能量大小,能量越大,亮度越大。
當(dāng)數(shù)據(jù)進入3A-RCNN 網(wǎng)絡(luò),按照表1 所示,先進入conv64卷積層,卷積核大小為(5,5),卷積核個數(shù)為64,步長為(2,2),得到特征圖X,之后進入3A_01 殘差結(jié)構(gòu),其中包含4 個3A 殘差塊,每個3A 殘差塊運算過程見第1 節(jié)。之后按照表1 后續(xù)的層級設(shè)計和參數(shù)設(shè)置依次向后傳遞,最終將提取出的特征進行average pooling,再輸入全連接Dense 層,得到最終的說話人特征。
最后,將說話人特征輸入Softmax 分類器中進行分類,Softmax分類器的計算如下:
假設(shè)所有輸入語音數(shù)據(jù)有n 個說話人,對于給定某條語音x,每一個說話人類別j 的輸出概率值為p(y=j|x),用n 個向量表示n 個說話人輸出概率值,則Softmax 函數(shù)為:
其中,hθ(x)為Softmax 分類的輸出,θ 為模型參數(shù),x 為輸入的某條語音這一項對概率分布進行歸一化,使得所有說話人概率之和為1。
本文對輸入數(shù)據(jù)的標簽進行獨熱編碼,損失函數(shù)為交叉熵損失函數(shù),其表達式為:
其中p(y=j)表示某個數(shù)據(jù)真實標簽y 中屬于第j 個說話人的概率,表示數(shù)據(jù)的預(yù)測標簽在屬于第j 個說話人的概率。
本次實驗所使用的計算機配置如下:處理器型號為Intel (R) Core (TM) i5-9600KF CPU @ 3.70 GHz;內(nèi)存大小為16GB;操作系統(tǒng)為Windows10 專業(yè)版64 位操作系統(tǒng);GPU 為GeForce RTX 2070s;深度學(xué)習(xí)開發(fā)平臺為TensorFlow 2.0.0。
本次實驗所使用的數(shù)據(jù)集為Free ST Chinese Mandarin Corpus,該數(shù)據(jù)集為免費的公開中文數(shù)據(jù)集,其中包含855 位說話人,每人包含120句語音,每句語音時長2到8秒不等,總共有102600句語音,語音采樣率均為16000Hz,語音均為標準普通話,語音清晰。本文首先將該數(shù)據(jù)集中的語音進行去除靜音操作,之后使用截取固定3秒鐘的語音片段,再將語音數(shù)據(jù)提取梅爾語譜圖作為模型的輸入,維度大小為128×376。在實驗中,劃分數(shù)據(jù)集中的80%作為訓(xùn)練集,20%作為測試集,兩組數(shù)據(jù)相互不包含。
本文使用在說話人識別中常用的準確率ACC(accuracy)和用于描述真實值和預(yù)測值差別的損失函數(shù)Loss(Loss function),其中損失函數(shù)Loss 的計算公式如公式(9)所示,準確率公式如下:
其中,TPj表示第j 位說話人中分類正確的個數(shù),F(xiàn)Nj表示第j位說話人中分類錯誤的個數(shù)。準確率越高,分類器效果越好,損失值越小,預(yù)測值與真實值越接近,效果越好。
實驗測試中發(fā)現(xiàn),不同深度的選擇對模型的性能有不同程度的影響,為了使模型達到最佳效果,實驗對比了不同深度的3A 殘差塊的性能差異,在模型訓(xùn)練完成后,記錄模型在測試集上的損失變化情況,實驗結(jié)果如表2 所示。
從表2 中可以看到,隨著殘差塊個數(shù)的增加,模型收斂后的平均準確率會逐漸上升,最小損失值也會不斷下降,其中每個殘差塊數(shù)量為4 時,效果達到98.0%,損失達到0.061,達到最優(yōu)。
為了驗證3A 殘差結(jié)構(gòu)帶來的提升,本文將提出的模型與不加入3A 殘差塊的原有RCNN 模型進行對比,通過50000 次迭代,觀察兩個模型的收斂速度與性能。迭代結(jié)果點數(shù)有50000 個,為了便于顯示,將顯示數(shù)據(jù)進行平滑處理,便于進行觀察,結(jié)果如圖6 所示。
圖6 表示3A-RCNN 和不增加3A 殘差塊的RCNN 兩個模型隨著網(wǎng)絡(luò)迭代次數(shù)變化在訓(xùn)練集上的損失值變化情況和兩個模型隨著網(wǎng)絡(luò)迭代次數(shù)變化在訓(xùn)練集上的準確率變化情況。從圖中可以看出,3A-RCNN 模型在收斂速度上明顯快于RCNN 網(wǎng)絡(luò)模型,在迭代大約達到11000次之后,3A-RCNN開始收斂,損失值穩(wěn)定在0.044左右,準確率也穩(wěn)定在98.9%,而原本的RCNN 則需要在迭代約20000 次后才趨于穩(wěn)定,說明使用3A 殘差塊的卷積網(wǎng)絡(luò)能夠更好在更短的時間內(nèi)提取出相應(yīng)的身份信息,從而在更少的訓(xùn)練次數(shù)下獲得更好的結(jié)果。
而在模型的性能提升上,本文將不同模型在相同測試數(shù)據(jù)集上的表現(xiàn)進行展示,與3A-RCNN 模型進行對比,結(jié)果如圖7 圖8 所示。
可以看出,沒有注意力機制的RCNN 網(wǎng)絡(luò),波動幅度較大,最終在較大范圍內(nèi)波動。文獻[8]提出的ResCNN 模型較為穩(wěn)定效果有所提升,但在最終收斂后的準確率為95.4%,損失值為0.097。本文提出的3A-RCNN 模型相比于其他模型,準確率上升平穩(wěn)、最終穩(wěn)定值高、且波動小。損失值下降平穩(wěn)、最終穩(wěn)定在很低的水平,波動小。
本文將上述模型以及近期相關(guān)模型結(jié)果進行匯總,其結(jié)果如表3 所示。
從表3 可以看出,3A-RCNN 收斂后的平均準確率達到了98.0%,收斂后平均損失值下降到了0.061,這表明通過對時間維度、通道維度、頻率維度三個維度進行權(quán)重的自分配,再將信息通過全連接層及分類器進行分類,可以重點捕獲到需要提取的相關(guān)身份信息,屏蔽掉無關(guān)信息,表明了多重注意力機制嵌入殘差塊末端的有效性。
本文將語音信號轉(zhuǎn)化為梅爾語譜圖,將神經(jīng)網(wǎng)絡(luò)在圖像處理領(lǐng)域的新思想與新方法引入說話人識別領(lǐng)域。并且提出一種新的3A注意力機制,并且嵌入每個殘差快的末端,與本文設(shè)計的ResCNN相結(jié)合,強化特征提取模型的專注性,搭建了新的模型3A-RCNN模型。多重注意力機制與殘差結(jié)構(gòu)深度的結(jié)合,擴展了注意力機制在維度上的運用,并且增強了每個殘差快的特異性提取功能,可以有針對性的捕獲到語音中與說話人相關(guān)的特征,并且提升模型性能。下一步將引入文本內(nèi)容與說話人識別結(jié)合,以達到輔助提升識別性能的目的。