肖金壯,李瑞鵬,紀盟盟
河北大學 電子信息工程學院,河北 保定 071000
無文本說話人確認(text-independent speaker verification,TI-SV)的任務是判定任意一個語音段和模型中給定目標之間是否匹配[1],語音段是不做任何限定的,因此該技術可以在生活場景中廣泛應用。相比說話人辨認(speaker identification,SI),屬于聲紋識別(voiceprint recognition,VR)中較難的任務[2]。以高斯混合-通用背景模型和全因子空間與概率線性判別式分析相結合的確認模型為代表[3-4]的傳統方法緩解了數據量缺乏、信道補償等問題,但識別精度與應用仍存在差距。隨著人工智能技術的發展,利用神經網絡特征提取優勢,結合傳統方法后端判別特點的模型出現,識別精度得到一定提升[5],但在面對十萬級及以上的數據集時,訓練效率受限,導致性能降低。基于深度學習的說話人確認技術可以充分利用大數據集,使確認精度大幅提升,于是逐漸成為研究熱點。
基于深度學習的說話人確認技術包括兩個大方向,其一,是追求性能的提升,但忽略了能否走出實驗室的可能性;其二,是面向實際應用,追求性能和應用的統一性。前者主要有兩種方式,第一,擴展說話人模型的深度和寬度以提高學習能力,早期使用VGG網絡來提取具有辨別性的聲紋特征[6],取得了明顯的效果,之后便采用可以延伸到上百層的網絡ResNet,說話人確認模型的性能有顯著提升[7],但同時帶來收斂緩慢和過擬合的問題;第二,改進損失函數增強聲紋模型的特征分辨能力,例如中心損失函數(center loss)、三重損失函數(triplet loss)以及基于softmax函數進行邊界調整的損失函數,均專注于增強說話人確認模型對于類別的表征特性[8-10]。
這些方法雖然解決了說話人確認技術精度低的問題,但也伴隨著出現了模型計算參數量龐大、消耗內存資源過多等情況,不利于模型部署在資源有限的輕量級設備中,如門禁系統、金融交易系統等,因為它們需要的是高精度和低功耗。
此時面向實際應用的后者,使用緊湊神經網絡設計和知識蒸餾(knowledge distillation,KD)的模型壓縮技術[11-12]緩解了該問題。
緊湊神經網絡設計在學習前者大模型改進思路的基礎上,以不損失聲紋模型性能的方式,減少每秒浮點運算次數并降低模型體積。其中以MobileNe網絡為架構的聲紋模型利用深度可分離卷積來減少計算量和加快網絡計算速度,改善了聲紋模型的分類效果和準確性[13]。相比之前的大型聲紋確認模型,在參數量和計算資源需求上,已經達到了部署的基本要求,但存在識別精度下降的現象。
基于知識蒸餾中產生的知識遷移,把前者研究出的大型聲紋確認模型訓練得到的軟輸出(soft target)遷移到輕量化小模型中指導其學習,進而讓小模型在保持規模較小的同時,精度得到提升,實現壓縮模型的目標[14]。其中,把大模型稱為教師模型(teacher model),小模型稱為學生模型(student model)。文獻[15-16]分別把該方法應用在有文本和無文本的說話人確認任務上,但是學生模型的性能仍差于教師模型,特別是在特征分辨和模型泛化能力方面達不到大模型的標準,影響了實際的使用效果。
針對在該技術應用中如何既能保留前者大模型的性能又能滿足后者壓縮模型體量的需求,本文在說話人確認方法中引入新型知識蒸餾技術——虛擬教師架構(teacher-free framework)[17],提出一種基于Resnet18的輕量化虛擬教師說話人確認模型,它包含一個有百分之百正確率的虛擬教師,同時,在該模型中加入附加角裕度損失函數[18](additive angular margin loss,AAM-Softmax)和空間共享而通道分離(spatial-shared and channel-wise)的動態激活函數[19],在小計算成本下,提升模型的泛化能力,實現無文本的說話人確認任務既能取得和大模型一致甚至略高的效果,又能達到在資源受限設備上使用的目的。
基于知識蒸餾的聲紋確認模型是把教師模型訓練得到的軟輸出(soft target)遷移到輕量化的學生模型中,相比硬標簽可以提供更多的聲紋特征類別內和類別間的信息,從而讓學生模型學習到和教師模型一致的效果,達到壓縮模型滿足實際應用的目的,其工作流程如圖1所示,CE代表交叉熵函數(cross entropy),α是占比參數。

圖1 傳統知識蒸餾聲紋確認模型Fig.1 Traditional knowledge distillation voiceprint verification model
上述是基于傳統知識蒸餾的聲紋確認模型的基本原則,但是文獻[17]論證了新的知識蒸餾觀點:
(1)手動設計的100%正確率輕量級虛擬教師知識蒸餾模型(Tf-KD)可以達到傳統知識蒸餾方法中教師模型的性能,證明了虛擬教師能夠給學生模型帶來更多的特征分辨信息;
(2)該模型自身的標簽正則化作用,比單獨使用標簽平滑歸一化的優化效果更佳。
Tf-KD框架具有通用性,可直接用于輕量級神經網絡,且沒有額外的計算成本,因此,針對在實際應用中說話人確認(SV)任務更有難度以及要滿足高性能的需求,本文提出將該框架應用于無文本聲紋確認任務上,并稱其為虛擬教師說話人確認模型(teacher-free speaker verification model,Tf-SV)。
Tf-SV模型關于類別的輸出分布設計為:

其中,K是類別總數,k是某個語音段,c是正確標簽,a是正確類別的正確概率。令a≥0.9,則一個正確類別的概率要遠高于一個錯誤的類別。這可以使虛擬教師說話人確認模型對于之后用到的聲紋數據集有100%的分類正確率。
Tf-SV模型的總損失函數為:

其中,DKL是KL散度函數,T是用來把式(1)設計的分布pd軟化為pdT,q是真實的類別分布,p是輸出的類別分布。這樣,手動設計的虛擬教師說話人確認模型輸出的soft target不僅具有100%的分類正確率,還帶有標簽平滑歸一化的平滑分布特性,模型的工作流程如圖2所示。對比圖1可以發現:

圖2 虛擬教師說話人確認模型Fig.2 Teacher-free speaker verification model
(1)傳統聲紋模型需要先單獨訓練教師,再遷移知識訓練學生兩個步驟,而Tf-SV模型可以將其合二為一,大幅提高說話人確認模型的工作效率。
(2)采用手動設計的擁有100%正確率的平滑分布,相比隨機學習得到的分布,能提升Tf-SV模型的學習能力。
(3)在交叉熵函數中加入附加角裕度損失函數,即把式(2)中的第一項調整為H( )q,p=CE+AAM,則總的損失函數更新為:

該函數在增強類內緊湊性和類間差異性的效果上更為顯著[16],同時配合軟目標提供的類別間信息,可以大幅增強Tf-SV模型對類別的分辨能力。
由于語音片段的上下文有相互關聯的信息,雖然修正線性單元[20](rectified linear unit,ReLU)和leaky ReLU[21]可以提高聲紋模型的性能,但它們的靜態特性,使其對不同的輸入執行方式完全相同,導致遺漏部分語音信息。
根據文獻[19,22]在圖像分類中提到的動態激活函數(dynamic rectified linear units,DY-ReLU)機制,本文采用空間共享而通道分離(spatial-shared and channelwise)的動態激活函數,其效果如圖3所示。即首先對輸入語音的全局信息在超參數上進行編碼,再調整分段激活函數,這樣,每個通道內的激活方程不同,但通道內空間的各個部分共享同一個激活方程,相比靜態和其他動態激活函數更容易提取到不同的特征,在訓練過程加強類內相似性和類間差異性,提升Tf-SV模型的表達和泛化能力。尤其對于類似Mobilenet或者Resnet18等輕量級網絡模型。

圖3 Spatial-shared and channel-wise激活效果Fig.3 Spatial-shared and channel-wise activation effects
對于一個維度為C×H×W的語音輸入向量x,首先通過全局平均池來壓縮空間信息,然后是兩個完全連接的層(兩者間有ReLU函數),最后是一個規范化層,其流程如圖4所示。其輸出函數被記為初始值和殘差的和,即:



圖4 Spatial-shared and channel-wise動態激活函數Fig.4 Spatial-shared and channel-wise DY-ReLU
該函數除了提供更多的語音信息,增強模型的泛化能力,還具備計算高效的特性,與1×1的卷積層相比,其產生的計算量更少。從圖4和表1可知,平均池化層的計算復雜度是O(CHW),第一個全連接層是O(C2/R)以及分段方程是O(CHW),第二個全連接層是O( 2KC2/R),而1×1的卷積層是O(C2HW)。

表1 動態激活函數和卷積層的計算復雜度Table 1 Computational complexity of dynamic activation function and convolutional layer
在ImageNet圖像分類任務上,輕量級的網絡模型MobilenetV2、MobilenetV3以及Resnet18,已經證明了該動態激活函數對數據的擬合和表征能力,這是靜態激活函數做不到的。考慮到說話人確認任務的輸入同樣是二維的聲譜圖,與圖像識別的具有一定的相似性,故將該激活函數引入到Tf-SV模型中。
VoxCeleb1數據集[3]是一個免費的大規模數據集。它從上傳到YouTube?的視頻中提取了1 251個名人的超過100 000種語音。數據集中有55%來自男性說話者,以滿足性別平衡。與在高質量環境(如聲學實驗室)中錄制的語音不同[23],Voxceleb1數據集更接近嘈雜的外部生活環境。以“E”開頭的名稱被分為測試集,其余名稱仍保留在訓練集中,詳細劃分如表2所示。

表2 說話人確認數據集統計Table 2 Statistics of speaker verification dataset
為了驗證虛擬教師的有效性,提出兩個教師模型,分別是Resnet34和手動設計的一個準確率為100%的Tf_Resnet18虛擬教師模型,學生模型均為Resnet18,其中ReLU函數用DY-ReLU函數代替,具體參數如表3所示。

表3 網絡模型參數Table 3 Network model parameters
為輕量化模型,所有的卷積核改為3×3,同時把維度為M×N(頻率×時間)的FC1替換為兩層,即M×1的卷積層和一個1×N的平均池化層,這樣相對直接使用全連接層,可以大幅提高模型的訓練效率,根據3.3節所提輸入尺寸,降低了8倍的參數量。
語音作為一維信號,需將其處理成二維特征,才能發揮殘差網絡的性能。本文提出使用對數能量聲譜圖作為模型的輸入,其流程如圖5(a)。
采用寬度為25 ms,步長為10 ms的漢明窗對3 s的一維語音信號進行分幀、加窗,然后經N=512點的快速傅里葉變換處理生成大小為257×300(頻率×時間)的二維聲譜圖,對其取絕對值,會得到振幅譜,振幅譜平方除以N得到能量譜,能量譜取10倍的lg再減去最大值得到對數能量聲譜圖,如圖5(b)所示。

圖5 語音預處理Fig.5 Speech preprocessing
未采用MFCCs和Fbank作為輸入特征是因為二者均為針對傳統聲紋模型人工設計的特征[24],在設計過程中會主動丟棄一部分信息,而這些信息在深度卷積模型中卻可以起到一定的作用,因此該語音預處理方式,不僅簡單易操作,而且可以最大程度地保留語音本身所攜帶的信息,同時對數能量聲譜圖也表現出了更好的抗噪能力[3],在預處理過程中無需端到端檢測的操作。
初始學習率設為0.1,通過動量隨機梯度下降(SGD)法對模型進行優化,其中動量為0.9,權重衰減為1E-4,最小批量為128,將學習率初始化為0.1,在第10輪、第20輪和第30輪迭代后皆令學習率除以10。占比參數和溫度系數分別設置為0.1和30。模型采用PYTORCH深度學習框架,并在NVIDIA RTX 8000 GPU上實現。
為驗證所提方法在說話人確認任務上的有效性,分別使用傳統的教師-學生知識蒸餾模型和虛擬教師說話人確認模型在Voxceleb1數據集上進行實驗,并與其他代表性模型進行效果的比較和分析,最終結果如表4所示。采用余弦距離作為評分方法,使用等錯誤率(equal error rate,EER)作為說話人確認任務的性能評價指標。在表4中ResnetA-B中的參數分別代表教師模型是A,學生模型是B。

表4 說話人確認的模型效果對比Table 4 Comparison of model effect of speaker verification
作為對比項,模型(1)、(5)來自于傳統知識蒸餾說話人確認模型[16]中的實驗對比組,模型(2)來自基于Asoftmax損失函數模型[25]的實驗項,均在當時取得了較好的效果。未做標注的模型(3)、(4)、(6)、(7)、(8)皆為本文采用控制變量的原則所做的實驗組,用于證明所提算法的有效性。
分析結果可知,同樣的模型基礎,采用動態激活函數的模型(3),優于作為傳統知識蒸餾實驗項的模型(1)的靜態激活函數效果,證明空間共享而通道分離的動態激活函數提高了聲紋模型的對特征的表達能力。
在保持激活函數和損失函數相同的情況上,虛擬教師說話人確認模型(8)的EER達到了3.4%,比本文所做的傳統知識蒸餾模型(6)降低了0.8個百分點,效果提升了19%,同樣的,虛擬教師說話人確認模型(7)比基于傳統知識蒸餾的模型(5)的EER也提升了18%,比單獨使用Resnet34的模型(2)提升了24%,甚至比Resnet18的模型(4)提升了2倍的性能。這些對比實驗證明了手動設計百分百正確率的虛擬教師說話人確認模型(Tf-SV)可以提供在說話人確認任務中提供更多的類別信息,增強模型的學習和辨別能力。
再由表5的對比可知,VGG-M、Resnet34、Resnet50三個模型均是基于Voxceleb1數據集為提升性能而提出的,雖然性能得到了提升,但也帶來參數量和計算量(Madds)的攀升,尤其是Resnet50對于移動設備是很大的負擔,而通過減少殘差模塊通道數來壓縮參數的Resnet10,會導致提取特征不明顯,性能變差。本文所提模型卻能夠在模型壓縮的情況下,保證性能滿足應用的標準,證明了該壓縮方法在說話人確認上的有效性。

表5 各模型性能的比較Table 5 Comparison of performance of each model
本文采用虛擬教師模型(Tf-KD)的知識蒸餾方法來構建虛擬教師說話人確認模型(Tf-SV)并且在該模型中引入動態激活函數(DY-ReLU)和附加角裕度損失函數(AAM-Softmax)。在Voxceleb1數據集上進行的實驗對比表明,使模型參數量和計算量壓縮一半,可以降低在硬件設備上功耗和有限的計算負載,并提升模型在無文本說話人確認任務上的訓練效率和泛化表達能力,達到了移動式設備低功耗、高性能的基本標準,為把該技術應用在實際生活場景提供了可能性,也為說話人識別任務的研究提供了新的思路,接下來準備進一步地壓縮學生模型和提升性能評價指標EER來滿足不同的需求。