陳志高 李 鵬 肖潤秋 黎 塔 王文超*
①(中國科學院聲學研究所語言聲學與內(nèi)容理解重點實驗室 北京 100190)
②(中國科學院大學 北京 100049)
③(國家計算機網(wǎng)絡應急技術(shù)處理協(xié)調(diào)中心 北京 100029)
過去10年里,說話人識別技術(shù)得益于深度學習方法的幫助而發(fā)展迅速。深度神經(jīng)網(wǎng)絡(Deep Neural Networks, DNN)通過強大的抽象表達能力,在多種模式識別任務中都表現(xiàn)出十分可觀的性能。同時,在說話人任務中,基于深度神經(jīng)網(wǎng)絡的技術(shù)方法也在一定程度上逐漸超過了傳統(tǒng)的因子分析框架[1]。
受深度神經(jīng)網(wǎng)絡在自動語音識別(Automatic Speech Recognition, ASR)領域的成功啟發(fā),Variani等人[2]提出了利用深度神經(jīng)網(wǎng)絡提取說話人特征的方法,通過建立一個幀級別的神經(jīng)網(wǎng)絡說話人分類器,區(qū)分每一幀輸入語音的說話人身份。網(wǎng)絡訓練收斂之后,最后一層隱含層的輸出用作每一幀輸入語音的說話人特征表達,稱為d-vector。此后,為了獲得輸入語音更多的上下文信息,時間延遲神經(jīng)網(wǎng)絡(Time-Delay Neural Networks, TDNN)也被引入說話人識別任務,它把網(wǎng)絡的輸入從單一的幀級別提升到一個更大的時間尺度。
類似于d-vector的思路,Snyder等人[3]提出了x-vector說話人識別系統(tǒng),期望在文本無關的短時語音任務中,取得更好的表現(xiàn)。其中最重要的改進是在網(wǎng)絡結(jié)構(gòu)中引入了一個統(tǒng)計層,計算前面網(wǎng)絡層輸出的統(tǒng)計信息,從而把特征表達從幀級別提升到句級別,積累更多的說話人信息。最終,x-vector系統(tǒng)在短時說話人識別任務中取得顯著的性能提升,并成為后來多數(shù)說話人識別研究的基線系統(tǒng)。
近幾年,卷積神經(jīng)網(wǎng)絡在計算機視覺和語音識別任務中取得了長足的進展,在說話人識別任務中的作用也更加顯著。王文超等人[4]通過時間延遲神經(jīng)網(wǎng)絡和卷積神經(jīng)網(wǎng)絡的融合,同時關注語音的局部和全局信息,目的同樣是在學習多尺度的特征表達。
早些時候的卷積神經(jīng)網(wǎng)絡框架,例如AlexNet和視覺幾何組網(wǎng)絡(the Visual Geometry Group Network, VGGNet),在圖像分類任務中效果顯著。Nagrani等人[5]、Huang等人[6]、Yadav等人[7]把VGGNet引入說話人識別領域,并同樣證明有效。在說話人識別任務中,VGGNet結(jié)構(gòu)通過增加網(wǎng)絡層數(shù)來增強表征說話人信息的能力,然而與其他領域一樣,過多的網(wǎng)絡層數(shù)可能會導致梯度消失的問題。
為了應對梯度消失,He等人[8]提出了一種深度殘差神經(jīng)網(wǎng)絡(Residual neural Network, ResNet)。它由多個殘差模塊堆積而成,每個模塊的輸入和輸出層之間建立一個捷徑鏈接。通過恒等映射的引入,有效避免了網(wǎng)絡的退化。此外,與Inception-Nets類似,ResNet也利用不同的卷積核大小來提升多尺度特征表達能力。綜合上述優(yōu)勢,ResNet(例如ResNet-34, ResNet-50, ResNet-101)已經(jīng)成為目前最通用的卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)之一。然而,它提升表達能力的主要方法仍依靠增多網(wǎng)絡層的數(shù)目。
Gao等人[9]此前在計算機視覺任務中提出了一種多尺度特征提取結(jié)構(gòu),Res2Net,取得了可觀的性能提升。然而其對信息的發(fā)掘可能不夠充分,網(wǎng)絡結(jié)構(gòu)的刪減也缺乏原理性解釋。本文引入文本無關說話人識別任務中,驗證其在語音任務的有效性和魯棒性,并對該結(jié)構(gòu)做進一步改進,最大限度利用訓練數(shù)據(jù),應對更復雜的識別任務。
第2節(jié)將介紹基于卷積神經(jīng)網(wǎng)絡的框架結(jié)構(gòu),尤其是本文的基線系統(tǒng),ResNet框架。而新引入的Res2Net結(jié)構(gòu)以及改進將在第3節(jié)詳細描述。第4節(jié)是實驗的具體設置和結(jié)果分析。最后的結(jié)論將在第5節(jié)闡述。
卷積神經(jīng)網(wǎng)絡設計初衷是為從多尺度表達特征,以此為基礎的網(wǎng)絡結(jié)構(gòu)已經(jīng)在大量模式識別任務中表現(xiàn)出最優(yōu)的性能[10]。AlexNet通過濾波器的堆疊獲得可觀的性能表現(xiàn),但是它的網(wǎng)絡層數(shù)有限,因此感受野相對較小。此后VGGNet通過更深層的網(wǎng)絡結(jié)構(gòu)來增大感受野,而且由于卷積核更小,VGGNet在性能超過AlexNet的同時,參數(shù)量也更少。然而,隨著網(wǎng)絡層數(shù)的增加,梯度消失成為難以避免的問題。
為了應對梯度消失的問題,ResNet引入了殘差塊結(jié)構(gòu)。與傳統(tǒng)的單線結(jié)構(gòu)不同的是,每一個殘差塊的輸入和輸出之間建立了捷徑連接,直接把輸入x傳到輸出作為初始結(jié)果,輸出結(jié)果為H(x)=F(x)+x,當F(x)=0時,H(x)=x,也就是恒等映射。這使得網(wǎng)絡加深的時候,準確率不會下降,而且學習目標由原本的完整輸出H(x)變?yōu)镠(x)和x的殘差F(x), F(x)=0也更容易學習。圖1是經(jīng)典的深度殘差網(wǎng)絡的殘差塊結(jié)構(gòu)。
圖1 深度殘差網(wǎng)絡的殘差塊
Cai等人[11]、Heo等人[12]和Chung等人[13]將Res-Net結(jié)構(gòu)引入了說話人識別任務,然而目前這些系統(tǒng)提升識別性能的主要方法還是在于增加網(wǎng)絡層數(shù)。
本文引入說話人識別任務的結(jié)構(gòu)Res2Net,核心思想是尋求更多尺度的特征表達。相比于傳統(tǒng)的增加網(wǎng)絡深度(depth)和寬度(width)[14],它用一種更細?;墓ぷ鞣绞?,更高效地獲得更多的感受野。
圖2是文獻[9]的Res2Net模塊示意圖,本文中稱為簡化的Res2Net模塊。如圖2所示,Res2Net調(diào)整的是ResNet-50里的3 ×3 模 塊。一共C個通道的3×3 濾波器被切分成s個濾波器組,每組有w個通道(C=s×w) , 特征圖也被切分成s組,并由此引入了一個新的維度:s(scale)。與ResNet和Res-NeXt網(wǎng)絡結(jié)構(gòu)相比,scale是繼depth,width和基數(shù)(cardinality)[15]之后的第4個維度。在切分操作之后,每一組xi(i ∈{1,2,...,s}) 都有w個通道的輸入特征圖,輸出yi可以表示為
其中,小的3 ×3卷 積操作記作Ci。在圖2所示的簡化Res2Net模塊中,當一個Ci接 收到前一個Ci的信息,相應的感受野會變大。而ResNet主體網(wǎng)絡有若干個卷積層,上述切分操作層層作用,最終Res2Net網(wǎng)絡的輸出將獲得多種感受野大小的組合,從而有效地從多尺度表達語音特征。
圖2 簡化的Res2Net模塊示意圖
然而,簡化的Res2Net模塊刪除了最后一個Ci,并且每一組輸出只傳遞給相鄰的下一組。文獻[9]沒有給出原理性的解釋,可能是避免過擬合現(xiàn)象。本文改進的全連接的Res2Net模塊結(jié)構(gòu),如圖3所示。
圖3 全連接的Res2Net模塊示意圖
公式相應地調(diào)整為
為了更充分地發(fā)掘訓練數(shù)據(jù)中的信息,本文改進的全連接的Res2Net模塊結(jié)構(gòu)與簡化的Res2Net模塊不同的是,在訓練過程中,每一組濾波器會接收前面所有輸出,以求獲得更多的感受野尺寸組合。如圖3所示,特征圖在分組后,會先融合前面的濾波器輸出,再由自身的濾波器提取特征,同時傳送給后面的組以及最后的輸出。最終,所有分組的特征圖拼接回一起,傳送給后面的 1 ×1濾波器,融合之后進入下一個模塊。
這樣每一份輸入特征,都有多種路徑到達最后的輸出特征。每一條可能的路徑,都會有不同的信息融合。因為相比于圖像分類任務中一些固定的物品種類,說話人識別面對的是相對更難的開集(open set)問題,期望訓練數(shù)據(jù)有更強的覆蓋和泛化性,以及關注到各種環(huán)境信息、噪聲干擾等。因此,本文改進的全連接的Res2Net結(jié)構(gòu)能更充分地利用語音信息,預期比簡化的Res2Net模塊有著更強大的多尺度特征表達能力,有望在更復雜的識別任務中發(fā)揮作用,第4節(jié)的實驗將會對兩種結(jié)構(gòu)的模塊進行性能比較。
本節(jié)首先介紹實驗用到的數(shù)據(jù)集,然后詳細描述實驗系統(tǒng)的設置,最后是結(jié)果的展示與分析。
本文實驗的訓練集用的是近些年說話人識別通用的VoxCeleb1數(shù)據(jù)集[5]和VoxCeleb2數(shù)據(jù)集[13]。其中VoxCeleb1訓練集包含1211名說話人的148642條訓練語句,VoxCeleb2則有5994名說話人的超過百萬條訓練語句。本文實驗主體的測試集是VoxCeleb1的評估集,包含40名說話人的4874條語音,構(gòu)成37720個測試對。
為了驗證文章方法在不同錄制環(huán)境等復雜任務的魯棒性,實驗還測試了在SITW(Speakers In The Wild,)數(shù)據(jù)集[16]上的性能。SITW是由斯坦福國際研究院(Stanford Research Institute international, SRI international)開發(fā)的現(xiàn)實環(huán)境錄制的語音數(shù)據(jù)集,包含299位名人的語音。其中,本文用到的它的評估集包含180位名人的2883條語音,且有4種不同的測試場景,core-core, core-multi, assist-core以及assist-multi。Core代表注冊或測試的語音中只包含單一說話人是語音,而assist和multi則分別代表注冊和測試的語音中包含多于一個人的說話語音,干擾因素更多。
為了驗證網(wǎng)絡結(jié)構(gòu)對特征表達能力的提升,本文實驗采用樸素的訓練方法?;€系統(tǒng)是x-vector和ResNet-50網(wǎng)絡,前端沒有語音增強,后端沒有復雜的處理和損失函數(shù)技巧。所有實驗系統(tǒng)在PyTorch平臺搭建,均采用批標準化和線性整流函數(shù)(ReLU)加速收斂。語音特征提取的是64維濾波器組特征(Filter Banks, FBank),最終輸出的說話人特征向量為512維。最終采用簡單的余弦距離打分,計算等錯誤率(Equal Error Rate, EER)和最小檢測代價函數(shù)(minimum Detection Cost Function,minDCF)來評估識別性能。EER是指檢測的虛警率(False Alarm Probability, FAP)和漏檢率(Miss Probability, MP)相等時的指標,檢測代價函數(shù)也是在特定目標先驗概率的情況下虛警和漏檢的代價加權(quán)和。
4.3.1 性能比較
主體實驗的第1部分,測試不同的網(wǎng)絡系統(tǒng)在VoxCeleb1上的識別性能,本文引入的Res2Net方法由于更豐富的感受野組合,預期會比基線系統(tǒng)有更強的特征表達能力。
如表1所示,簡化的Res2Net-50系統(tǒng)(Res2Net-50-sim)表現(xiàn)出了最好的識別性能,并且比基線Res-Net-50系統(tǒng)有相對12%的提升,符合此前的預期,而全連接的模塊結(jié)構(gòu)(Res2Net-50-full)比簡化的模塊結(jié)構(gòu)性能略差。
表1 VoxCeleb1測試集各系統(tǒng)性能表現(xiàn)(訓練集:VoxCeleb1)
實驗接下來采用規(guī)模更大的VoxCeleb2訓練集,再次測試上述系統(tǒng)的識別性能。
如表2所示,各網(wǎng)絡系統(tǒng)在接收更豐富的訓練數(shù)據(jù)之后,識別性能都有大幅提升,Res2Net-50系統(tǒng)相比于ResNet-50基線,有超過20%的性能提高。而且此時全連接的模塊結(jié)構(gòu),表現(xiàn)出了較明顯的優(yōu)勢,各項指標相比于簡化的模塊結(jié)構(gòu)都有10%左右的領先。
表2 VoxCeleb1測試集各系統(tǒng)性能表現(xiàn)(訓練集:VoxCeleb2)
參照其他研究者在VoxCeleb1測試集上一些可以復現(xiàn)的性能,本文引入的Res2Net-50同樣有可觀的表現(xiàn)。Okabe等人通過引入注意力機制的池化方法(attentive pooling)達到3.85%的等錯率,訓練集改用規(guī)模更大的VoxCeleb2后,Zeinali等人[17]使用多達160層的ResNet以及加性角度間隔損失函數(shù),得到了1.31%的等錯率。而本文引入的Res2Net,僅用50層和余弦距離打分即可達到1.4%的等錯率。具體性能對比見表3。
表3 系統(tǒng)VoxCeleb測試集性能
為了驗證Res2Net的魯棒性,本實驗又在開放環(huán)境數(shù)據(jù)集SITW上測試各系統(tǒng)的性能。如表4所示,Res2Net-50系統(tǒng)保持了比ResNet-50基線相對約10% 的性能提升。X-vector系統(tǒng)也表現(xiàn)不俗,體現(xiàn)出在跨數(shù)據(jù)集情況下的魯棒性。與表2結(jié)果類似,當有更充足的訓練數(shù)據(jù)供學習,以及更復雜的識別任務時,全連接的模塊結(jié)構(gòu)更能發(fā)揮優(yōu)勢。尤其是VoxCeleb2訓練時,4種測試場景相對簡化的模塊結(jié)構(gòu)都有9%~15%的性能提升。
表4 SITW 4種測試條件下各系統(tǒng)性能表現(xiàn)
4.3.2 效率探究
首先值得一提的是,實驗中Res2Net-50相較于ResNet-50有穩(wěn)定的超過10%的性能提升,但模型大小和參數(shù)量僅僅是ResNet-50的1.06倍,而采用全連接模塊結(jié)構(gòu)的Res2Net-50-full也只是簡化的Res2Net-50-sim的1.16倍,同等訓練數(shù)據(jù)時幾乎不增加計算負載。
識別性能的提升,得益于更多的感受野為Res2Net系統(tǒng)帶來了更強大的多尺度特征提取能力。而在不增加網(wǎng)絡深度的前提下,直接關系到感受野的就是width和scale兩個維度。Scale表示特征圖被切分的組數(shù),width表示每一組的通道數(shù),增大scale和width都可以起到增大感受野的作用。接下來的實驗將選取小訓練集性能較好的簡化Res2Net作為框架,探究scale和width對識別性能的影響。
在表5和表6中,7w4s表示width為7, scale為4的Res2Net-50網(wǎng)絡,16w表示width增大為16,8s則表示scale設為8。實驗結(jié)果可以看出,二者都可以降低識別的等錯誤率,只是width增大1倍多,性能提升十分有限,而scale設為8則使得性能有相對10%的提升。因此,本文引入Res2Net中新增的scale維度,相比傳統(tǒng)ResNet的width維度,能更高效地增強網(wǎng)絡的特征提取能力。
表5 Res2Net-50調(diào)整width和scale在VoxCeleb性能表現(xiàn)
表6 Res2Net-50調(diào)整width和scale在SITW性能表現(xiàn)
本文引入了一種簡單、高效的Res2Net結(jié)構(gòu)到說話人識別領域。相比于傳統(tǒng)ResNet結(jié)構(gòu),它通過更加細粒化的工作方式,在參數(shù)量只增加0.06倍的情況下,獲得了更多的感受野組合和更多尺度的特征表達,從而取得了超過20%的性能提升。在此基礎上改進的全連接Res2Net結(jié)構(gòu)確保信息利用更充分,在學習數(shù)據(jù)充足或復雜的識別任務中,又有相對10%左右的提升,并且在沒有任何語音增強和后端處理的情況下,VoxCeleb1測試集上達到了1.4%的等錯率。魯棒性上,本方法在不同錄制環(huán)境(SITW)的識別任務中都有穩(wěn)定的超過10%的性能提升。此外,新的scale維度也被證明相比于傳統(tǒng)的網(wǎng)絡深度和寬度,在多尺度表達特征的能力上更加高效,值得引入其他神經(jīng)網(wǎng)絡框架進行嘗試。