陳志高 李 鵬 肖潤秋 黎 塔 王文超*
①(中國科學院聲學研究所語言聲學與內容理解重點實驗室 北京 100190)
②(中國科學院大學 北京 100049)
③(國家計算機網絡應急技術處理協調中心 北京 100029)
過去10年里,說話人識別技術得益于深度學習方法的幫助而發展迅速。深度神經網絡(Deep Neural Networks, DNN)通過強大的抽象表達能力,在多種模式識別任務中都表現出十分可觀的性能。同時,在說話人任務中,基于深度神經網絡的技術方法也在一定程度上逐漸超過了傳統的因子分析框架[1]。
受深度神經網絡在自動語音識別(Automatic Speech Recognition, ASR)領域的成功啟發,Variani等人[2]提出了利用深度神經網絡提取說話人特征的方法,通過建立一個幀級別的神經網絡說話人分類器,區分每一幀輸入語音的說話人身份。網絡訓練收斂之后,最后一層隱含層的輸出用作每一幀輸入語音的說話人特征表達,稱為d-vector。此后,為了獲得輸入語音更多的上下文信息,時間延遲神經網絡(Time-Delay Neural Networks, TDNN)也被引入說話人識別任務,它把網絡的輸入從單一的幀級別提升到一個更大的時間尺度。
類似于d-vector的思路,Snyder等人[3]提出了x-vector說話人識別系統,期望在文本無關的短時語音任務中,取得更好的表現。其中最重要的改進是在網絡結構中引入了一個統計層,計算前面網絡層輸出的統計信息,從而把特征表達從幀級別提升到句級別,積累更多的說話人信息。最終,x-vector系統在短時說話人識別任務中取得顯著的性能提升,并成為后來多數說話人識別研究的基線系統。
近幾年,卷積神經網絡在計算機視覺和語音識別任務中取得了長足的進展,在說話人識別任務中的作用也更加顯著。王文超等人[4]通過時間延遲神經網絡和卷積神經網絡的融合,同時關注語音的局部和全局信息,目的同樣是在學習多尺度的特征表達。
早些時候的卷積神經網絡框架,例如AlexNet和視覺幾何組網絡(the Visual Geometry Group Network, VGGNet),在圖像分類任務中效果顯著。Nagrani等人[5]、Huang等人[6]、Yadav等人[7]把VGGNet引入說話人識別領域,并同樣證明有效。在說話人識別任務中,VGGNet結構通過增加網絡層數來增強表征說話人信息的能力,然而與其他領域一樣,過多的網絡層數可能會導致梯度消失的問題。
為了應對梯度消失,He等人[8]提出了一種深度殘差神經網絡(Residual neural Network, ResNet)。它由多個殘差模塊堆積而成,每個模塊的輸入和輸出層之間建立一個捷徑鏈接。通過恒等映射的引入,有效避免了網絡的退化。此外,與Inception-Nets類似,ResNet也利用不同的卷積核大小來提升多尺度特征表達能力。綜合上述優勢,ResNet(例如ResNet-34, ResNet-50, ResNet-101)已經成為目前最通用的卷積神經網絡結構之一。然而,它提升表達能力的主要方法仍依靠增多網絡層的數目。
Gao等人[9]此前在計算機視覺任務中提出了一種多尺度特征提取結構,Res2Net,取得了可觀的性能提升。然而其對信息的發掘可能不夠充分,網絡結構的刪減也缺乏原理性解釋。本文引入文本無關說話人識別任務中,驗證其在語音任務的有效性和魯棒性,并對該結構做進一步改進,最大限度利用訓練數據,應對更復雜的識別任務。
第2節將介紹基于卷積神經網絡的框架結構,尤其是本文的基線系統,ResNet框架。而新引入的Res2Net結構以及改進將在第3節詳細描述。第4節是實驗的具體設置和結果分析。最后的結論將在第5節闡述。
卷積神經網絡設計初衷是為從多尺度表達特征,以此為基礎的網絡結構已經在大量模式識別任務中表現出最優的性能[10]。AlexNet通過濾波器的堆疊獲得可觀的性能表現,但是它的網絡層數有限,因此感受野相對較小。此后VGGNet通過更深層的網絡結構來增大感受野,而且由于卷積核更小,VGGNet在性能超過AlexNet的同時,參數量也更少。然而,隨著網絡層數的增加,梯度消失成為難以避免的問題。
為了應對梯度消失的問題,ResNet引入了殘差塊結構。與傳統的單線結構不同的是,每一個殘差塊的輸入和輸出之間建立了捷徑連接,直接把輸入x傳到輸出作為初始結果,輸出結果為H(x)=F(x)+x,當F(x)=0時,H(x)=x,也就是恒等映射。這使得網絡加深的時候,準確率不會下降,而且學習目標由原本的完整輸出H(x)變為H(x)和x的殘差F(x), F(x)=0也更容易學習。圖1是經典的深度殘差網絡的殘差塊結構。

圖1 深度殘差網絡的殘差塊
Cai等人[11]、Heo等人[12]和Chung等人[13]將Res-Net結構引入了說話人識別任務,然而目前這些系統提升識別性能的主要方法還是在于增加網絡層數。
本文引入說話人識別任務的結構Res2Net,核心思想是尋求更多尺度的特征表達。相比于傳統的增加網絡深度(depth)和寬度(width)[14],它用一種更細粒化的工作方式,更高效地獲得更多的感受野。
圖2是文獻[9]的Res2Net模塊示意圖,本文中稱為簡化的Res2Net模塊。如圖2所示,Res2Net調整的是ResNet-50里的3 ×3 模 塊。一共C個通道的3×3 濾波器被切分成s個濾波器組,每組有w個通道(C=s×w) , 特征圖也被切分成s組,并由此引入了一個新的維度:s(scale)。與ResNet和Res-NeXt網絡結構相比,scale是繼depth,width和基數(cardinality)[15]之后的第4個維度。在切分操作之后,每一組xi(i ∈{1,2,...,s}) 都有w個通道的輸入特征圖,輸出yi可以表示為

其中,小的3 ×3卷 積操作記作Ci。在圖2所示的簡化Res2Net模塊中,當一個Ci接 收到前一個Ci的信息,相應的感受野會變大。而ResNet主體網絡有若干個卷積層,上述切分操作層層作用,最終Res2Net網絡的輸出將獲得多種感受野大小的組合,從而有效地從多尺度表達語音特征。

圖2 簡化的Res2Net模塊示意圖
然而,簡化的Res2Net模塊刪除了最后一個Ci,并且每一組輸出只傳遞給相鄰的下一組。文獻[9]沒有給出原理性的解釋,可能是避免過擬合現象。本文改進的全連接的Res2Net模塊結構,如圖3所示。

圖3 全連接的Res2Net模塊示意圖
公式相應地調整為

為了更充分地發掘訓練數據中的信息,本文改進的全連接的Res2Net模塊結構與簡化的Res2Net模塊不同的是,在訓練過程中,每一組濾波器會接收前面所有輸出,以求獲得更多的感受野尺寸組合。如圖3所示,特征圖在分組后,會先融合前面的濾波器輸出,再由自身的濾波器提取特征,同時傳送給后面的組以及最后的輸出。最終,所有分組的特征圖拼接回一起,傳送給后面的 1 ×1濾波器,融合之后進入下一個模塊。
這樣每一份輸入特征,都有多種路徑到達最后的輸出特征。每一條可能的路徑,都會有不同的信息融合。因為相比于圖像分類任務中一些固定的物品種類,說話人識別面對的是相對更難的開集(open set)問題,期望訓練數據有更強的覆蓋和泛化性,以及關注到各種環境信息、噪聲干擾等。因此,本文改進的全連接的Res2Net結構能更充分地利用語音信息,預期比簡化的Res2Net模塊有著更強大的多尺度特征表達能力,有望在更復雜的識別任務中發揮作用,第4節的實驗將會對兩種結構的模塊進行性能比較。
本節首先介紹實驗用到的數據集,然后詳細描述實驗系統的設置,最后是結果的展示與分析。
本文實驗的訓練集用的是近些年說話人識別通用的VoxCeleb1數據集[5]和VoxCeleb2數據集[13]。其中VoxCeleb1訓練集包含1211名說話人的148642條訓練語句,VoxCeleb2則有5994名說話人的超過百萬條訓練語句。本文實驗主體的測試集是VoxCeleb1的評估集,包含40名說話人的4874條語音,構成37720個測試對。
為了驗證文章方法在不同錄制環境等復雜任務的魯棒性,實驗還測試了在SITW(Speakers In The Wild,)數據集[16]上的性能。SITW是由斯坦福國際研究院(Stanford Research Institute international, SRI international)開發的現實環境錄制的語音數據集,包含299位名人的語音。其中,本文用到的它的評估集包含180位名人的2883條語音,且有4種不同的測試場景,core-core, core-multi, assist-core以及assist-multi。Core代表注冊或測試的語音中只包含單一說話人是語音,而assist和multi則分別代表注冊和測試的語音中包含多于一個人的說話語音,干擾因素更多。
為了驗證網絡結構對特征表達能力的提升,本文實驗采用樸素的訓練方法。基線系統是x-vector和ResNet-50網絡,前端沒有語音增強,后端沒有復雜的處理和損失函數技巧。所有實驗系統在PyTorch平臺搭建,均采用批標準化和線性整流函數(ReLU)加速收斂。語音特征提取的是64維濾波器組特征(Filter Banks, FBank),最終輸出的說話人特征向量為512維。最終采用簡單的余弦距離打分,計算等錯誤率(Equal Error Rate, EER)和最小檢測代價函數(minimum Detection Cost Function,minDCF)來評估識別性能。EER是指檢測的虛警率(False Alarm Probability, FAP)和漏檢率(Miss Probability, MP)相等時的指標,檢測代價函數也是在特定目標先驗概率的情況下虛警和漏檢的代價加權和。
4.3.1 性能比較
主體實驗的第1部分,測試不同的網絡系統在VoxCeleb1上的識別性能,本文引入的Res2Net方法由于更豐富的感受野組合,預期會比基線系統有更強的特征表達能力。
如表1所示,簡化的Res2Net-50系統(Res2Net-50-sim)表現出了最好的識別性能,并且比基線Res-Net-50系統有相對12%的提升,符合此前的預期,而全連接的模塊結構(Res2Net-50-full)比簡化的模塊結構性能略差。

表1 VoxCeleb1測試集各系統性能表現(訓練集:VoxCeleb1)
實驗接下來采用規模更大的VoxCeleb2訓練集,再次測試上述系統的識別性能。
如表2所示,各網絡系統在接收更豐富的訓練數據之后,識別性能都有大幅提升,Res2Net-50系統相比于ResNet-50基線,有超過20%的性能提高。而且此時全連接的模塊結構,表現出了較明顯的優勢,各項指標相比于簡化的模塊結構都有10%左右的領先。

表2 VoxCeleb1測試集各系統性能表現(訓練集:VoxCeleb2)
參照其他研究者在VoxCeleb1測試集上一些可以復現的性能,本文引入的Res2Net-50同樣有可觀的表現。Okabe等人通過引入注意力機制的池化方法(attentive pooling)達到3.85%的等錯率,訓練集改用規模更大的VoxCeleb2后,Zeinali等人[17]使用多達160層的ResNet以及加性角度間隔損失函數,得到了1.31%的等錯率。而本文引入的Res2Net,僅用50層和余弦距離打分即可達到1.4%的等錯率。具體性能對比見表3。

表3 系統VoxCeleb測試集性能
為了驗證Res2Net的魯棒性,本實驗又在開放環境數據集SITW上測試各系統的性能。如表4所示,Res2Net-50系統保持了比ResNet-50基線相對約10% 的性能提升。X-vector系統也表現不俗,體現出在跨數據集情況下的魯棒性。與表2結果類似,當有更充足的訓練數據供學習,以及更復雜的識別任務時,全連接的模塊結構更能發揮優勢。尤其是VoxCeleb2訓練時,4種測試場景相對簡化的模塊結構都有9%~15%的性能提升。

表4 SITW 4種測試條件下各系統性能表現
4.3.2 效率探究
首先值得一提的是,實驗中Res2Net-50相較于ResNet-50有穩定的超過10%的性能提升,但模型大小和參數量僅僅是ResNet-50的1.06倍,而采用全連接模塊結構的Res2Net-50-full也只是簡化的Res2Net-50-sim的1.16倍,同等訓練數據時幾乎不增加計算負載。
識別性能的提升,得益于更多的感受野為Res2Net系統帶來了更強大的多尺度特征提取能力。而在不增加網絡深度的前提下,直接關系到感受野的就是width和scale兩個維度。Scale表示特征圖被切分的組數,width表示每一組的通道數,增大scale和width都可以起到增大感受野的作用。接下來的實驗將選取小訓練集性能較好的簡化Res2Net作為框架,探究scale和width對識別性能的影響。
在表5和表6中,7w4s表示width為7, scale為4的Res2Net-50網絡,16w表示width增大為16,8s則表示scale設為8。實驗結果可以看出,二者都可以降低識別的等錯誤率,只是width增大1倍多,性能提升十分有限,而scale設為8則使得性能有相對10%的提升。因此,本文引入Res2Net中新增的scale維度,相比傳統ResNet的width維度,能更高效地增強網絡的特征提取能力。

表5 Res2Net-50調整width和scale在VoxCeleb性能表現

表6 Res2Net-50調整width和scale在SITW性能表現
本文引入了一種簡單、高效的Res2Net結構到說話人識別領域。相比于傳統ResNet結構,它通過更加細粒化的工作方式,在參數量只增加0.06倍的情況下,獲得了更多的感受野組合和更多尺度的特征表達,從而取得了超過20%的性能提升。在此基礎上改進的全連接Res2Net結構確保信息利用更充分,在學習數據充足或復雜的識別任務中,又有相對10%左右的提升,并且在沒有任何語音增強和后端處理的情況下,VoxCeleb1測試集上達到了1.4%的等錯率。魯棒性上,本方法在不同錄制環境(SITW)的識別任務中都有穩定的超過10%的性能提升。此外,新的scale維度也被證明相比于傳統的網絡深度和寬度,在多尺度表達特征的能力上更加高效,值得引入其他神經網絡框架進行嘗試。