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

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

其中,K是類別總數(shù),k是某個(gè)語(yǔ)音段,c是正確標(biāo)簽,a是正確類別的正確概率。令a≥0.9,則一個(gè)正確類別的概率要遠(yuǎn)高于一個(gè)錯(cuò)誤的類別。這可以使虛擬教師說話人確認(rèn)模型對(duì)于之后用到的聲紋數(shù)據(jù)集有100%的分類正確率。
Tf-SV模型的總損失函數(shù)為:

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

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

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

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



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

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

表2 說話人確認(rèn)數(shù)據(jù)集統(tǒng)計(jì)Table 2 Statistics of speaker verification dataset
為了驗(yàn)證虛擬教師的有效性,提出兩個(gè)教師模型,分別是Resnet34和手動(dòng)設(shè)計(jì)的一個(gè)準(zhǔn)確率為100%的Tf_Resnet18虛擬教師模型,學(xué)生模型均為Resnet18,其中ReLU函數(shù)用DY-ReLU函數(shù)代替,具體參數(shù)如表3所示。

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

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

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

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