







摘 要:聲紋身份驗證技術越來越多的應用于IoT智能設備中,針對多說話人語音環境,應用傳統VAD模塊的聲紋驗證系統錯誤拒絕率嚴重升高,甚至無法工作。本文從語音分離技術入手,設計實現了一種只對目標說話人觸發的輕量化SD-VAD模型。首先,通過在基線模型中引入CNN和BiLSTM結構,使神經網絡獲得更強大的特征提取能力和上下文依賴性。其次,重新定義類內加權損失,對不同的分類混淆錯誤施加不同的懲罰,使模型重點關注目標說話人相關的分類,最大程度保留目標語音的完整性。最后,本文將SD-VAD應用于聲紋驗證模型的前端。實驗結果表明,本文改進的結構相較于基線模型,mAP提升了1.5%,目標說話人類的AP提升了1.9%。相較于傳統VAD模塊,使基于ECAPA-TDNN的聲紋驗證系統錯誤拒絕率(FRR)降低了13.95%,較大提升了聲紋驗證系統的魯棒性和使用靈活性。
關鍵詞:物聯網;聲紋驗證;語音分離;多說話人環境;語音活動檢測(VAD);ECAPA-TDNN
中圖分類號:TP391.4;TN912-34 文獻標識碼:A 文章編號:2095-1302(2024)02-000-05
0 引 言
聲紋識別作為一種生物識別技術,相比于其他身份認證方法,具有無需直接接觸、安全性高、使用靈活等優勢[1],在國內正逐漸被應用于公安、金融、智能家居等領域。
在聲紋識別系統架構中,聲紋匹配方法經過數十年的發展,從經典的GMM-UBM[2],到i-vector+PLDA[3],再到深度學習下的d-vector[4]、x-vector[5]等體系結構及其變體,都使聲紋特征的表達能力得到顯著提高。目前,在信噪比較高的單說話人背景下,聲紋識別系統性能優越。但在多說話人語音環境下,聲紋識別系統很難找到不同說話人語音的切換點,無法分辨哪些語音幀是使用者希望它采集的。導致在一些聲紋身份驗證的應用場景中,其他說話人語音也會和目標說話人語音摻雜在一起進行深度特征提取和匹配,使系統錯誤地拒絕合法的目標說話人。此類情況對用戶體驗造成極大的影響,增加了聲紋識別技術應用的限制性。
針對此類問題,現有的解決方案是引入語音分離技術。語音分離又稱說話人日志(Speaker Diarization, SD),其主要任務是在多說話人混合語音中,分離出每個說話人的語音并進行聚類。傳統的語音分離可以是基于頻域的最優掩膜比[6]或時域的非負矩陣分解[7]來實現每個說話人的分離。隨著深度學習在語音領域的發展,一些學者將深度神經網絡(Deep Neural Network, DNN)和長短時記憶網絡(Long Short Term Memory, LSTM)應用于語音分離中[8-9],取得了不錯的效果。但是,這些語音分離方法實用性較差,在說話人數量未知的情況下存在一定的局限性。在我們的聲紋驗證場景中,并不需要區分不同的非目標說話人語音,僅僅希望將它們同噪聲、靜音歸于一類并過濾掉。
近年來,針對目標說話人語音的提取技術陸續被提出,例如SBF-MTSAL[10]、VoiceFilter[11]、DENet[12]。也有多位學者將它們作為語音分離前端,應用于說話人驗證框架中,例如文獻[13-14]。這類方法通常以提取目標說話人參考語音的深度特征為條件,在混合語音中通過匹配來選擇目標說話人語音。雖然性能表現不錯,但體量龐大,參數量高,并且大部分方法是基于片段或全序列計算,延遲較長。一些學者嘗試將語音分離與語音活動檢測(Voice Activity Detection, VAD)結合起來,例如文獻[15-16],通過訓練一種端到端的分類模型,將混合語音的逐幀深度嵌入與聲學特征直接拼接作為網絡輸入,使模型直接學習到在混合語音的融合特征中抽取目標說話人語音幀的能力。
為了能在多說話人語音環境下實現實時準確的聲紋驗證,本文基于文獻[15]對用于目標說話人提取的網絡結構進行進一步改進,提升其分類性能,之后根據系統的需要,做更具體的設置,最后將其應用于聲紋驗證模型前端。本文聲紋驗證模型使用ECAPA-TDNN[17]。
1 系統方案設計
本聲紋驗證系統在使用流程上分為注冊階段和驗證階段,在完成聲紋識別模型預訓練后,進行目標說話人聲紋注冊。系統對錄入的說話人語音進行預加重、分幀加窗等預處理操作后,進行聲學特征提取并輸入預訓練聲紋識別模型中,聲紋識別模型輸出說話人的聲紋嵌入碼(Embedding)。同時,在后端使用目標說話人語音段訓練引入語音分離功能的VAD模型,在本文中稱之為SD-VAD(Speaker Diarization-Voice Activity Detection, SD-VAD)。
在說話人驗證階段,系統激活后從連續的多人聲場景中對每幀音頻信號做預處理,之后輸入訓練完成的SD-VAD模塊,其可以過濾掉非語音段和明顯的非目標說話人語音段,僅將識別為目標說話人語音的幀進行拼接,然后輸入到聲紋識別模型中,得到其聲紋嵌入碼,并與注冊階段得到的目標說話人嵌入碼進行相似度打分判決,最后輸出接受或拒絕動作。系統總體架構如圖1所示。
2 SD-VAD設計
本文使用的SD-VAD模型的結構如圖2所示。模型的核心部分由兩層卷積核為3的卷積神經網絡(Convolutional Neural Networks, CNN)、兩層隱層單元數為64的雙向長短時記憶網絡(Bi-directional Long Short-Term Memory, BiLSTM)以及作為分類器的兩層全連接層(FC)組成。比基線結構[15]多使用兩層CNN,是為了使網絡擁有更強大的特征提取能力,從多說話人混合語音的Fbank-d-vector融合特征中實現更好的幀級分類。因為層數較少,且CNN具有權值共享機制,所以參數量并不會提升太多,依然保證其能夠兼顧VAD功能的輕量化和低延遲性。
本文將原始結構中的LSTM換為BiLSTM,相當于在每層原始LSTM后多加入了一層反向的LSTM,這樣的結構設計使模型不僅獲得了之前的上下文信息,也參考了未來的上下文信息,使得網絡在處理輸入幀序列時有了更強的表達能力。在BiLSTM中,我們設置正向和反向的LSTM使用相同的權重矩陣,嚴格控制模型的參數數量。
2.1 Fbank-d-vector融合特征
僅使用輕量化的網絡結構對抽象的Fbank特征做幀級的說話人分類是不現實的,需要一個幀級音頻的深度表征向量來幫助SD-VAD關注到語音中不同的聲紋信息,故使用Fbank-d-vector融合特征向量作為SD-VAD網絡的輸入。
在混合語音聲學特征的選擇上,基線結構[15]中使用的是40維的MFCC,本文使用80維的Fbank,原因是在基于神經網絡的系統中,Fbank會保留原始語音信號中的更多非線性成分,表現更佳。并且本文的后端聲紋驗證網絡也使用同樣參數的Fbank特征訓練,在SD-VAD處理后可以直接將分類為目標說話人的幀特征拼接輸入聲紋驗證模型中。
在完成語音信號預加重、分幀加窗等預處理操作后,對得到的成序列的語音幀進行快速傅里葉變換,然后逐幀通過梅爾濾波器組并計算對數能量,即得到Fbank特征。
因為SD-VAD模型需要對音頻流中每個幀做分類決策,所以x-vector體系的音頻段級嵌入并不適用,本文選擇使用DNN提取語音的幀級深度表征向量d-vector,其結構示意圖如圖3所示。
全連接DNN網絡使用最后一層隱藏層輸出的d-vector作為幀級音頻嵌入碼。訓練過程中其后兩層DNN中使用了Dropout,使隨機的50%神經元失活,以此來增強網絡模型對不同樣本特征的認知能力,從而避免過擬合的產生,提高了提取深度特征的泛化性。
此結構的應用類似于知識蒸餾中的學生網絡,它在更大規模的數據集上單獨預訓練,在SD-VAD中只負責提取512維
的幀級嵌入碼并與相同幀的Fbank特征直接拼接后輸入CNN中。如此,輸入SD-VAD的Fbank-d-vector融合特征為592維度的向量集合,使網絡在長時間上下文中不僅可以關注到聲學特征的時序變化,還可以關注到深度聲紋特征的異同,直接實現語音幀分類的目的。
2.2 類內加權損失
將每幀信號特征輸入網絡,以三分類問題進行網絡訓練,SD-VAD模型為每幀信號生成幀級類概率:
(1)
式中:Zt=[Ztts, Ztnts, Ztns],三類分別是目標語音(target speech, ts),非目標語音(non-target speech, nts),非語音(non-
speech, ns)。
設輸出的預測值為Zt,則第m類的非正則化概率表示為Zt(m),幀級標簽為y,那么使用的交叉熵損失函數表示
如下:
(2)
式中:y, m∈{ns, ts, nts}。在SD-VAD系統中,我們的目標是盡可能只保留目標說話人的語音活動,被識別為ns和nts的音頻幀都會被裁剪丟棄,所以[ns, nts]之間的混淆錯誤對系統的性能影響小于[ts, ns]和[ts, nts]這兩種混淆。此外,因為SD-VAD模塊下游還有魯棒性較強的說話人驗證模型,考慮到系統實現目標說話人語音識別的拓展可能,最大程度保留目標語音,所以對一些因信噪比較低等因素導致的難以分辨的音頻幀來說,錯誤接受ns或nts要比錯誤拒絕ts代價小。基于上述需求,我們對交叉熵損失做個性化改進,給定Zt(m)和y,則類間加權損失函數定義為:
(3)
式中:W[m, y]是m類和標簽y之間的權重,其值與損失值成正相關,可以理解為將y錯誤的識別為m類時,施加的額外懲罰。在基線系統中,W[m, y]與W[y, m]不做區分,定義的是兩類互相混淆的代價權重,本文根據系統實際需要做進一步區分。設置W[ns, ts]=W[nts, ts]=1;W[ts, ns]=W[ts, nts]=0.7;W[ns, nts]=
W[nts, ns]=0.5,如此網絡經過訓練更新,對[ns, nts]兩類之間的混淆容忍度最高,對將其他兩類識別為目標說話人語音幀的錯誤容忍度適中,對將目標說話人識別為其他兩類,導致注冊用戶語音信息被裁剪掉的錯誤容忍度最低。
3 聲紋驗證模型
本文使用的聲紋驗證模型為ECAPA-TDNN,其基于時延神經網絡引入了多項改進,來獲取更強大的深度特征向量提取能力。首先,池化層使用依賴于通道和上下文的注意力機制,使網絡關注每個特征圖在不同時間步長上的特征屬性,擴展池化層的時間上下文信息。其次,提出了SE-Res2Block模塊,構建分層殘差連接來處理多尺度特征,從而減少了模型參數的數量。最后,使用多層特征聚合將所有SE-Res2Block的輸出特征映射相連,在池化之前合并信息,獲取了更細粒度的語音特征以增強系統的魯棒性。
在聲紋識別領域中,ECAPA-TDNN網絡是當前基于x-vector段級識別模型中最先進的架構[18]。本文將SD-VAD應用于其前端,代替傳統的VAD模塊,來測試帶有語音分離的語音活動檢測能給聲紋驗證系統帶來怎樣的提升。
4 實驗
4.1 數據集與參數設置
SD-VAD模型訓練和測試需要使用的數據集中大多數音頻都應該包含目標說話人片段以及隨機的其他說話人片段和非語音片段,本文基于此需求,使用VoxCeleb1[19]和MUSAN[20]噪聲數據集進行數據集制作。
VoxCeleb1的訓練集有1 211位說話人,在其中確定一個目標說話人A,將A的語音切分成2~3 s不等的小段,將它們與隨機的0~3名其他說話人的語音小段拼接起來模擬單說話人或多說話人環境,此時訓練語音中就有了ts、nts兩類語音幀,在得到的混合語音中插入MUSAN隨機噪聲段或空白段作為非語音類。圖4所示為基于目標說話人語音制作訓練集語音的示意圖。
生成了共計18 617條混合語音用于訓練,300條混合語音用于測試,如圖5所示,其中大部分語音時長在8~14 s。
實驗使用Ubuntu18.04操作系統,基于pytorch1.9.0在NVIDIA GeForce RTX 3080 Ti上進行訓練。在幀長為25 ms,步長10 ms的語音幀上提取80維Fbank特征輸入網絡。訓練中使用Adam優化器,學習率設置為10-4。聲紋驗證模型ECAPA-TDNN按原文[17]方式搭建和訓練,訓練集使用VoxCeleb2[21],與SD-VAD訓練集不重合。
4.2 實驗一
在使用數據增強和不使用數據增強的策略下,分別訓練基線[15]的結構和本文SD-VAD結構,損失函數使用本文設置的類間加權損失,得到三個分類的AP和模型mAP,結果見表1所列。
由上表整體來看,本文SD-VAD模型在無噪環境下目標說話人類的準確率達到93.5%,三類平均精確度達到92%,基本滿足設計要求。此外,無論是否使用數據增強,SD-VAD的檢測結果都優于基線模型。而且加噪訓練較不加噪訓練,基線模型mAP下降了7.2%,SD-VAD的mAP下降了3.6%,低于基線結構。證明加入了CNN和雙向LSTM的結構對于長時間序列數據的檢測精度更高,且受噪聲影響較小,具有更好的魯棒性。
4.3 實驗二
注意到表1中在所有情境下ts類的AP值都稍高于ns類和nts類,推斷其可能是類間加權損失函數的作用,為排除樣本不均衡的可能,我們對使用交叉熵損失的模型和類間加權損失的模型做對比。為了更關注目標說話人語音的識別精度,在每輪測試時,我們將網絡視為二分類模型,ts為正類,ns、nts為負類,計算ts類的誤報率(False Positive Rate, FPR)和漏報率(False Negative Rate, FNR),其中,誤報率就是負類判定為正類的數量除以負類總數,漏報率就是正類判定為負類的數量除以正類總數,結果如圖6所示。
由圖中可以看出,按本文設置的參數使用了類間加權損失的模型相比使用普通的交叉熵損失,目標說話人類的誤報率有小幅度升高,漏報率有大幅下降,說明類間加權損失在訓練中起到了根據實際需要重點降低ts類漏報的作用,以增加其他語音摻雜進目標說話人語音特征為代價,減少丟失目標語音信息,對下游的聲紋識別或語音識別系統更為友好。
4.4 實驗三
本小節實驗將SD-VAD應用于ECAPA-TDNN聲紋驗證模型的前端,替換傳統的VAD模塊,以驗證在多說話人場景下,SD-VAD為系統帶來的性能改善。
使用上述說話人A的單人語音注冊ECAPA-TDNN,測試使用的實驗數據分為兩部分。一部分是多說話人場景數據,使用SD-VAD模型測試集作為正樣本,2~3位其他說話人語音使用同樣策略拼接作為負樣本。另一部分是單說話人場景數據,VoxCeleb1中A的單人語音作為正樣本,其他說話人單人語音作為負樣本。生成兩個部分數據集正負樣本各300個。
聲紋驗證是二分類問題,使用錯誤拒絕率(False Rejection Rate, FRR)和錯誤接受率(False Acceptance Rate, FAR)作為評價指標。
在不進行額外數據增強的情況下進行如下評估。
實驗一:測試音頻無VAD處理直接輸入聲紋驗證模型;
實驗二:測試音頻經基于GMM的傳統VAD[22]算法處理后輸入聲紋驗證模型;
實驗三:測試音頻經本文預訓練的SD-VAD模型處理后輸入聲紋驗證模型。
實驗結果見表2所列。
由上表可以看出,在單說話人語音測試中,VAD模塊的加入對聲紋驗證性能沒有太大提升,因為VoxCeleb1數據集中的語音基本沒有靜音段,傳統VAD和SD-VAD的工作是過濾掉少量的噪聲幀,性能差異不大。但在多說話人語音測試中,應用SD-VAD的聲紋驗證系統錯誤拒絕率(FRR)顯著低于應用傳統VAD和無VAD的系統,錯誤接受率(FAR)也較傳統VAD有所降低。無VAD的系統在復雜的多說話人場景下基本沒有匹配成功(接受)的語音,故其錯誤接受率沒有比較價值。
5 結 語
本文實現并改進了一個具有單一目標說話人語音分離能力的語音活動檢測模型。在基線網絡上通過引入CNN和BiLSTM結構,使網絡關注到了更深更廣的全局特征,提高了SD-VAD模型檢測精度。此外,將SD-VAD應用于聲紋驗證模型前端,通過實驗驗證,其顯著提升了整個聲紋驗證系統的性能。本系統假設每個語音幀中只存在一名說話人,對重疊語音檢測效果不好,在未來的工作中,將重點關注更多的時頻域語音分離方法,繼而做進一步研究。
參考文獻
[1] AGHAJAN H,AUGUSTO J C,DELGADO R L C. Human-centric interfaces for ambient intelligence [M]. Academic Press. 2009.
[2] REYNOLDS D A,QUATIERI T F,DUNN R B. Speaker verification using adapted Gaussian mixture models [J]. Digital signal processing,2000,10(1/2/3):19-41.
[3] MATEJKA P,GLEMBEK O,CASTALDO F,et al. Full-covariance UBM and heavy-tailed PLDA in i-vector speaker verification [C]// Proc of IEEE International Conference on Acoustics,Speech and Signal Processing. Piscataway,NJ:IEEE Press,2011:4828-4831.
[4] VARIANI E,XIN L,MCDERMOTT E,et al. Deep neural networks for small footprint text-dependent speaker verification [C]// IEEE International Conference on Acoustics,Speech and Signal Processing,ICASSP 2014,Florence,Italy,May 4-9,2014:4052-4056.
[5] SNYDER D,GARCIA-ROMERO D,POVEY D,et al. Deep neural network embeddings for text-independent speaker verification.[C]// Interspeech,2017:999-1003.
[6]趙鶴鳴,葛良,陳雪勤,等.基于聲音定位和聽覺掩蔽效應的語音分離研究[J].電子學報,2005,44(1):158-160.
[7] YOSHII K,TOMIOKA R,MOCHIHASHI D,et al. Beyond nmf:time-domain audio source separation without phase reconstruction [C]// Proceedings of the 14th International Society for Music Information Retrieval Conference (ISMIR). Curitiba,2013:369-374.
[8] XU Y,DU J,DAI L R,et al.An experimental study on speech enhancement based on deep neural networks [J]. IEEE signal processing letters,2014,21(1):65-68.
[9] WENINGER F,EYBEN F,SCHULLER B. Single-channe speech separation with memory-enhanced recurren neural networks [C]// IEEE International conference on acoustics,speech and signal processing(ICASSP). IEEE,2014:3709-3713.
[10] XU C,RAO W,CHNG E S,et al. Optimization of speaker extraction neural network with magnitude and temporal spectrum approximation loss [C]// IEEE International conference on acoustics,speech and signal processing (ICASSP). Brighton,2019:6990-6994.
[11] WANG Q,MUCKENHIRN H,WILSON K,et al. VoiceFilter:Targeted voice separation by speaker conditioned spectrogram masking [C]// 20th annual conference of the international speech communication association. Graz,2019:2728-2732.
[12] WANG J,CHEN J,SU D,et al. Deep extractor network for target speaker recovery from single channel speech mixtures [C]// 19th annual conference of the international speech" communication association(Interspeech). Hyderabad,2018:307-311.
[13] RAO W,XU C,CHNG E S,et al. Target speaker extraction for multi-talker speaker verification [C]// Proceedings of the annual conference of the international speech communication association(Interspeech). Graz,2019:1273-1277.
[14] HAN J,SHI Y,LONG Y,et al. Exploring single channel speech separation for short-time text dependent speaker verification [J]. International journal of speech technology,2022,25(1):261-268.
[15] DING S,WANG Q,CHANG S,et al. Personal VAD:Speaker-conditioned voice activity detection [Z]. arXiv preprint arXiv:1908.04284(2019).
[16] MEDENNIKOV I,KORENEVSKY M,PRISYACH T,et al. Target-speaker voice activity detection:a novel approach for multi-speaker diarization in a dinner party scenario [Z]. arXiv preprint arXiv:2005.07272 (2020).
[17] DESPLANQUES B,THIENPONDT J,DEMUYNCK K. Ecapa-tdnn:Emphasized channel attention,propagation and aggregation in tdnn based speaker verification [Z]. arXiv preprint arXiv:2005.07143(2020).
[18] TONG F,ZHAO M,ZHOU J,et al. ASV-Subtools:Open source toolkit for automatic speaker verification [C]// In ICASSP 2021-2021 IEEE international conference on acoustics,speech and signal processing(ICASSP),2021:6184-6188.
[19] NAGRANI A,CHUNG J S,ZISSERMAN A. Voxceleb:a large-scale speaker identificationdataset [Z]. arXiv preprint arXiv:1706.08612(2017).
[20] SNYDER D,CHEN G,POVEY D. Musan:A music,speech,and noise corpus [Z]. arXiv preprint arXiv:1510.08484(2015).
[21] CHUNG J S,NAGRANI A,ZISSERMAN A. Voxceleb2:Deep speaker recognition [Z]. ar Xivpreprint ar Xiv:1806.05622,(2018).
[22] Google WebRTC[EB/OL]. https://webrtc.org/. Accessed,2016-3-20.