許春冬 黃喬月 王 磊 徐錦武
(江西理工大學信息工程學院,江西贛州 341000)
2019 年,5G 在我國正式開始商用,遠程辦公、線上教學、文檔協(xié)同等模式日益普及,各類遠程會議系統(tǒng)的用戶量也隨之增加,如WeLink、Zoom、學而思網(wǎng)校、飛書等,用戶在使用這些系統(tǒng)時,對其通話質(zhì)量以及自身體驗感的要求也更加嚴苛。當在線會議中存在大量回聲時,有效信息將會被干擾,從而導致與會人員漏掉重要信息并影響會議質(zhì)量;此外,回聲還存在于人們的日常通話中,一定程度上影響人們的通話體驗感。因此,通話系統(tǒng)中的回聲消除問題是一直備受關(guān)注的熱點。
起初,研究人員利用自適應濾波器[1-2]去除回聲,其主要的方式為:先利用自適應濾波器對房間聲學回聲的傳遞函數(shù)進行建模,生成估計回聲,再從輸入信號中減去估計的回聲,從而達到去回聲的效果[3]。目前較為常用的自適應濾波算法有歸一化最小均方(Normalized least mean squares,NLMS)算法[4]、卡爾曼濾波算法[5]等,但對于AEC 系統(tǒng)的要求是在能快速跟蹤回聲路徑變化的同時,又能對大聲干擾保持魯棒性,面對這兩者,自適應濾波器往往只能做到其一而無法同時滿足。因此在之后的研究以及應用中,采用多個濾波器組合以及引入雙端通話檢測器(Double talk detection,DΤD)進行回聲消除,能夠有效解決上述問題。但是算法的運算量也隨之增加,實時性受到影響;并且上述算法對線性回聲的消除效果較好,對于非線性回聲的消除效果則不太明顯。
隨著深度學習應用于語音信號處理,其在語音增強[6]、語音降噪[7]以及語音分離[8]等領(lǐng)域中都取得良好的效果,這也促使人們考慮將深度學習引入回聲消除領(lǐng)域。神經(jīng)網(wǎng)絡的學習能力很強,在經(jīng)過參數(shù)設置后,神經(jīng)網(wǎng)絡會在各種工作模式下學習及訓練,且其具有非線性擬合能力,在去除線性回聲的同時也能將非線性回聲去除?;谏疃葘W習的AEC 與基于自適應濾波器的AEC 有差異,傳統(tǒng)方式要考慮場景的工作模式是否為雙講、濾波器的收斂性以及消除非線性回聲的效果。基于深度學習的AEC 算法則無須考慮以上問題,Zhang 等人[9]面對自適應濾波器無法對非線性回聲進行建模等的限制,提出了一種將頻域卡爾曼濾波器(Frequency domain Kalman filter,F(xiàn)DKF)和深度神經(jīng)網(wǎng)絡(Deep neural networks,DNNs)相結(jié)合的NeuralKalman 的混合方法,可以有效地進行非線性回聲消除并且顯著提升FDKF的性能。Schwartz等人[10]提出一種基于遞歸神經(jīng)網(wǎng)絡(Recurrent neural network,RNN)的AEC 算法,將參考信號和麥克風信號輸入RNN 網(wǎng)絡中進行學習,得到最優(yōu)步長,并反饋于遞歸最小二乘(Recursive least squares,RLS)算法,再對語音信號中的回聲進行去除。Zhang等人[11]提出一種門控時間卷積神經(jīng)網(wǎng)絡(Gated temporal convolutional neural network,GΤCNN)的AEC 算法,利用近端說話人或者遠端說話人作為一個輔助信息能夠明顯提升AEC的性能。然而單一的CNN或RNN網(wǎng)絡都存在缺點,CNN網(wǎng)絡只能進行固定的輸入輸出,RNN 網(wǎng)絡難以捕捉長期依賴關(guān)系,容易出現(xiàn)梯度爆炸和梯度消失的現(xiàn)象,這些缺陷不利于處理大量數(shù)據(jù)。為了更好地處理實時語音信號,引入長短時記憶網(wǎng)絡(Long short-term memory,LSΤM)、門控循環(huán)單元(Gated recurrent neural unit,GRU)對語音信號進行時間相關(guān)性建模。文獻[12]中設計了一種融合CNN 和RNN 網(wǎng)絡的卷積循環(huán)網(wǎng)絡(Convolutional recurrent network,CRN),應用于語音增強得到了不錯的效果,在文獻[13]中,將該網(wǎng)絡引入回聲消除,使用CRN 對近端語音進行頻譜映射,能夠同時增強幅度和相位的響應,并能有效去除回聲。Indenbom 等人[14]將麥克風信號和遠端語音信號進行同步處理,有效解決上述兩種信號之間存在的延遲問題,并且提出一種具有內(nèi)置交叉注意力對齊的去除回聲的架構(gòu),該架構(gòu)可以處理未對齊的輸入信號,從而達到對通信管道的簡化以及對回聲消除性能的提升。上述方法在降低噪聲和去除回聲方面取得良好的效果,但是實時語音信號的干擾因素較多,算法的優(yōu)越性較難體現(xiàn)。
注意力機制[15-16]在圖像處理、語音識別等各類領(lǐng)域中均取得不錯的效果。如在RNN 網(wǎng)絡中引入注意力機制,可以學習數(shù)據(jù)之間的時序依賴關(guān)系,克服其因時間增加而減弱的缺點;在CNN網(wǎng)絡中引入注意力機制,可以使網(wǎng)絡關(guān)注學習關(guān)鍵信息,而不因網(wǎng)絡的復雜結(jié)構(gòu)降低對關(guān)鍵信息的注意。因此,在網(wǎng)絡結(jié)構(gòu)中,添加合適的注意力機制,對于網(wǎng)絡性能的提升能起到較好的作用。
本文提出一種GAM-DSPM-CRN 網(wǎng)絡的AEC算法,該網(wǎng)絡以CRN 模型[12]為基線,通過在編碼器層中插入GAM 注意力機制,在該注意力機制的作用下,對整個網(wǎng)絡進行統(tǒng)籌全局維度交互,加強網(wǎng)絡間的聯(lián)結(jié)以及對關(guān)鍵信息的關(guān)注,從而提升網(wǎng)絡的精度;再在編碼器中的卷積層內(nèi)添加DSPM 模塊,以提高網(wǎng)絡結(jié)構(gòu)對實時語音的適應性;在編碼器和解碼器之間,利用兩個LSΤM 層對時間依賴關(guān)系進行建模;此外,還設計了一種MSELoss 和HuberLoss函數(shù)相結(jié)合的新?lián)p失函數(shù),以提升模型消除回聲的準確度;最后引入理想二值掩蔽(Ideal binary mask,IBM)作為訓練目標。
圖1 是AEC 系統(tǒng)近端信號模型,近端麥克風信號y(n)由回聲d(n)、近端語音信號s(n)以及噪聲v(n)組成:
圖1 AEC系統(tǒng)近端信號模型Fig.1 AEC system near-end signal model
其中n為時間采樣,回聲d(n)是由遠端麥克風信號x(n)經(jīng)過近端揚聲器播放與房間脈沖響應(Room impulse response,RIR)卷積而成。最后近端麥克風信號y(n)通過AEC 系統(tǒng),將回聲和噪聲去除,將估計的近端語音信號(n)從遠端揚聲器播放。
Τan 等人[12]將CRN 網(wǎng)絡模型應用于語音增強中,該網(wǎng)絡結(jié)構(gòu)是一種可以實時處理的因果系統(tǒng)。圖2為CRN網(wǎng)絡模型結(jié)構(gòu)圖,整個網(wǎng)絡結(jié)構(gòu)由CNN和RNN 組合而成,其整體就是利用CNN 對語音進行特征提取,利用RNN 對語音進行時間建模。CNN 部分由卷積編碼器-解碼器構(gòu)成,其中編碼器由五個卷積層構(gòu)成,相應地解碼器也有五個反卷積層。編碼器中的卷積層由核大小為2×3 的因果卷積、批量歸一化(Batch normalization,BN)處理以及指數(shù)線性單元(Exponential linear unit,ELU)構(gòu)成,解碼器同樣是由核大小為2×3的反因果卷積、BN和ELU 構(gòu)成,但是在最后的輸出層中,采用了softplus函數(shù),以防網(wǎng)絡輸出不為正。并且利用跳躍連接將每一個編碼器的輸出連接到解碼器的輸入中,以提升網(wǎng)絡整體的信息流和梯度。而RNN 的部分則由兩個LSΤM 構(gòu)成,實現(xiàn)所提取特征與自身過去信息及未來信息的關(guān)聯(lián)。
圖2 CRN網(wǎng)絡模型結(jié)構(gòu)圖Fig.2 CRN network model structure
CRN 網(wǎng)絡用于語音增強領(lǐng)域時性能優(yōu)異,而用于AEC領(lǐng)域時性能有所降低,因為回聲具有一定的時延,要求整個模型既要有實時處理能力又要有全局能力。本文所提出的GAM-DSPM-CRN 網(wǎng)絡整體結(jié)構(gòu)如圖3 所示,在其編碼器的最后兩層中分別添加GAM 注意力模塊[17],增強網(wǎng)絡全局維度交互,加強網(wǎng)絡對關(guān)鍵信息的注意,減少信息的縮減。用DSPM[18]替換卷積層中的卷積,利于網(wǎng)絡對實時語音信號進行動態(tài)選擇,及時調(diào)整策略,提升網(wǎng)絡模型的自適應性。
圖3 GAM-DSPM-CRN網(wǎng)絡結(jié)構(gòu)圖Fig.3 GAM-DSPM-CRN network structure
3.2.1 全局注意力機制
全局注意力機制(Global attention mechanism,GAM)由Liu 等人提出[17]。圖4 為GAM 的整體結(jié)構(gòu)圖,GAM 采用了前向卷積神經(jīng)網(wǎng)絡注意力模塊(Convolutional block attention module,CBAM)中的順序,但是將其子模塊進行一些改進,補足空間和通道注意力機制之間相互作用的缺失以及將通道、空間寬度和空間高度三個維度進行同時考慮,因此GAM 能夠減少信息的縮減并且還能夠統(tǒng)籌全局維度交互,這就使得網(wǎng)絡結(jié)構(gòu)有一個較好的性能提升。
圖4 GAM整體結(jié)構(gòu)Fig.4 Overall structure of GAM
圖5所示為通道注意力子模塊,使用了3D 置換以及使用兩層MLP(多層感知機)來放大跨緯通道空間之間的關(guān)系。其次在圖6所示的空間注意力子模塊中,刪除池化操作并且利用兩個卷積層增加空間信息的融合和使用。
圖5 通道注意力子模塊Fig.5 Channel attention sub-module
圖6 空間注意力子模塊Fig.6 Spatial attention sub-module
整個過程中,將輸入特征給定為F1?RC×H×W,經(jīng)過通道注意力后進行按元素乘法操作得到F2:
再經(jīng)過空間注意力后再按元素乘法操作得到輸出F3:
其中,MC和MS分別為通道注意力圖和空間注意力圖,?表示按元素進行乘法操作。
GAM 機制模塊對于跨緯通道空間之間的關(guān)系有放大的作用,能夠更加準確地對關(guān)鍵信息進行關(guān)注,從而提升網(wǎng)絡模型性能。并且該模塊的復雜度不高,添加于網(wǎng)絡結(jié)構(gòu)后,其整體的復雜度影響不大。
3.2.2 動態(tài)場景感知模塊
動態(tài)場景感知模塊(Dynamic scene perception module,DSPM)是由Lan 等人提出[18],DSPM 依據(jù)場景狀態(tài),動態(tài)選擇策略以提高當前系統(tǒng)的自適應性,該模塊由兩部分組成,分別是動態(tài)場景估計和區(qū)域感知器。首先利用基于頻譜能量的動態(tài)注意力機制,使得該動態(tài)場景估計器預測當前場景狀態(tài)下的噪聲與回聲的強度,來分配系數(shù)權(quán)重:
χ表示其輸入,W和b表示權(quán)重矩陣和偏差,σ表示sigmoid 函數(shù),F(xiàn)gap表示全局平均池化運算。通過式(4)對內(nèi)核進行組合,獲得兩個動態(tài)的“場景特定”卷積內(nèi)核。
其中,K、分別為近端語音、回聲和噪聲主導的動態(tài)內(nèi)核。
然后再通過區(qū)域感知器分配不同系數(shù)的卷積核,以達到DSPM 通過考慮場景狀態(tài)配置不同位置所需卷積內(nèi)核的目的,圖7 為區(qū)域感知器實現(xiàn)過程。
圖7 區(qū)域感知器實現(xiàn)過程Fig.7 Area perceptron implementation process
圖7中的兩個內(nèi)核的輸出分別為:
其中,?表示卷積操作,σ表示sigmoid激活函數(shù),最后區(qū)域感知器的輸出表示為:
其中S(χ)是一個選擇函數(shù),它的值取決于輸入和位置,也就是因為該選擇函數(shù),區(qū)域感知器可以在不同場景下,進行動態(tài)選擇分配合適的內(nèi)核。
因此,該模塊針對輸入的語音信號中的回聲強度來及時分配卷積內(nèi)核,能夠有效地提升回聲消除系統(tǒng)的自適應能力,提升網(wǎng)絡模型的消除回聲能力。
語音信號在時頻域上的分布稀疏,且純凈語音和近端麥克風語音的能量差異對于一個具體的時頻單元來說較大,因此選擇理想二值掩蔽(IBM)[19]作為訓練目標,可加快神經(jīng)網(wǎng)絡的收斂速度并提升網(wǎng)絡性能,其表達式為:
其中,θ為閾值,一般為0。將連續(xù)的時頻單元信噪比離散化為兩種狀態(tài)1 和0,同一時頻單元內(nèi):語音占主導(高信噪比),標記為1;反之,則標記為0。最后將IBM 和近端麥克風語音相乘,即將低信噪比的時頻單元置零,以此達到消除噪聲和回聲的目的,且可有效提高語音可懂度。
神經(jīng)網(wǎng)絡模型利用損失函數(shù)最小化預測值與真實值之間的距離可以引導模型訓練的方向,因為損失越小意味著預測值與真實值越接近,模型的性能越好。在訓練過程中,使用不同的損失函數(shù),往往會影響整個模型訓練的方向以及模型最終的性能,因此需要選用合適的損失函數(shù)進行訓練。
由于音頻信號是一種非線性、非平穩(wěn)、時變的隨機信號,但是它具有短時平穩(wěn)的特性,因此可采用分幀技術(shù)處理音頻信號,再將其通過快速傅里葉變換將其從時域轉(zhuǎn)化到頻域進行分析。本文提出一種聯(lián)合損失函數(shù),它由兩種回歸損失函數(shù)加權(quán)相加而成,不僅克服用單個損失函數(shù)的缺點,還能提升模型所生成頻譜的質(zhì)量,下面分別介紹兩種損失函數(shù)。
均方誤差(Mean square error,MSE)函數(shù)在回聲消除中是最為常用的一種損失函數(shù),其被用來衡量模型預測值與真實值之間的平均平方誤差,其公式如下:
其中,n是樣本數(shù)量,xi是第i個樣本的真實值,yi是模型對第i個樣本的預測值。使用MSE損失函數(shù)進行訓練時,由于其處處可導的優(yōu)勢,隨著誤差和梯度的不斷減小,有利于其快速收斂到最小值,從而提升模型的性能,但是該函數(shù)也存在著對異常點極為敏感的缺點,而使訓練結(jié)果不理想。
HuberLoss函數(shù)是一個分段函數(shù),其公式如下:
其中,δ為一個超參數(shù),可以通過交叉驗證選擇最佳值。
該函數(shù)是對MSE 和平均絕對誤差(Mean absolute error,MAE)兩種損失函數(shù)的綜合,由上述公式可見,該函數(shù)中包含超參數(shù),HuberLoss 對MSE 和MAE兩者的側(cè)重是由超參數(shù)大小決定,因此Huber-Loss函數(shù)同時具備了MSE和MAE兩種損失函數(shù)的優(yōu)點,即收斂速度快,對于離散點和異常值的出現(xiàn)不敏感,在一定程度上可以避免梯度爆炸的出現(xiàn),梯度變化相對而言較小,訓練模型時不容易向不正常的方向處理。
綜上所述,將MSE 和HuberLoss 函數(shù)通過線性組合成一種新的聯(lián)合損失函數(shù)MSE-HuberLoss,定義為:
其中,α和β是損失權(quán)重,其值分別設置為0.95和0.05。
本文實驗運行環(huán)境的硬件配置為:處理器為Intel(R)Core(ΤM)i7-8700K CPU@3.70 GHz,顯卡為NVIDIA GeForce GΤX 1080Τi;軟件環(huán)境為:操作系統(tǒng)為Window10,深度學習框架為pytorch1.12.0,編程語言為Python3.9。
采 用Microsoft AEC Challenges[20]的合成數(shù)據(jù)集進行訓練。本次訓練用到該合成數(shù)據(jù)集中的近端語音信號、近端麥克風信號以及遠端語音信號,分別各有語音數(shù)據(jù)10000 條。每類信號按照18∶1∶1的比例制作成訓練集、驗證集以及測試集。
設置輸入信號為近端麥克信號和遠端語音信號,并且以16 kHz為采樣頻率,以20 ms幀長、10 ms幀移對上述信號分幀,并且應用320 點離散傅里葉變換(Discrete Fourier Τransform,DFΤ)提取上述輸入信號的數(shù)據(jù)特征,得到161個頻率窗口。其中,實驗訓練的epoch 設置為75,最初的學習率為10-3,衰減為10-6,batchsize設置為8。
一般地,會從主、客觀兩方面對消除回聲后的語音質(zhì)量進行評估。主觀評價實驗一般使用平均意見得分(Mean Opinion Score,MOS),測試要求如下:
(1)測試人員聽不同的音頻,并根據(jù)語音的清晰度、可懂度和音質(zhì)等方面對語音質(zhì)量進行主觀評分;
(2)參考的純凈語音與參與測試的語音間隔測試,并連續(xù)重復4次;
(3)測試人員和被測試音頻樣本足夠多;
(4)測試人員所處的測試環(huán)境與所用設備均保持一致;
(5)一次完整的測試最佳時長為15~20 min;
(6)評分區(qū)間為[0,5],評分對應的聽感如表1所示。
表1 MOS評分對應的聽感Tab.1 MOS score corresponding to the sound sensation
為了更加客觀地衡量AEC模型的性能優(yōu)劣,本文采用以下三種評價指標來評估消除回聲后的語音的質(zhì)量,分別是回聲損耗增強(Echo return loss enhancement,ERLE)、語音質(zhì)量感知評估(Perceptual evaluation of speech quality,PESQ)以及短時客觀可懂度(Short-time objective intelligibility,SΤOI)。
ERLE[21]用來評價回聲消除效果,其值越大,證明效果越好。表達式為:
其中,y(n)是輸入信號(麥克風信號),(n)是輸出信號(預測的近端語音)。
PESQ[22]是評價語音質(zhì)量最常用的指標之一,其將預測的近端語音信號與原始近端語音信號相比較,取值范圍為-0.5~4.5,PESQ 值越高則表明被測試的語音具有越好的聽覺語音質(zhì)量。
SΤOI[23]反映人類的聽覺感知系統(tǒng)對語音可懂度的客觀評價,SΤOI 值介于0~1 之間,值越大代表語音可懂度越高,數(shù)值取值1 時表示語音能夠被充分理解。
為了進一步證明本文所提的模型和聯(lián)合損失函數(shù)的優(yōu)越性,在Microsoft AEC Challenges 的合成數(shù)據(jù)集上分別進行兩組對比實驗:第一組實驗控制GAM-DSPM-CRN 網(wǎng)絡模型不變,分別使用MSE、HuberLoss 和本文所提出的損失函數(shù)進行訓練,對預測的近端語音信號進行客觀評價對比;第二組實驗中,使用本文所提損失函數(shù)分別對FLGCNN[24]網(wǎng)絡模型、CLSΤM[19]網(wǎng)絡模型、BLSΤM[25]網(wǎng)絡模型、LSΤM-ResNet[26]網(wǎng)絡模型以及文中所提GAMDSPM-CRN 網(wǎng)絡模型進行訓練,得到以上模型的預測近端語音信號進行客觀質(zhì)量得分比較。同時,從預測近端語音信號中隨機選取20條語音信號,隨機邀請20 名聽力正常、年齡在20~30 歲的人員參與音頻質(zhì)量主觀評價,再將所得分數(shù)進行比較。在以下實驗結(jié)果表格中,將最好的數(shù)據(jù)加粗表示。
第一組實驗的結(jié)果如表2所示。根據(jù)實驗數(shù)據(jù)顯示,從主觀評價得分上來看,本文所提的損失函數(shù)的MOS 得分最高,為4.09,相較于MSE 和Huber-Loss 分別提升0.35 和0.21;在SΤOI 指標中,文中所提損失函數(shù)評分與HuberLoss 的相持平,為0.78,相較于MSE 提升0.01;而在ERLE 指標中,本文所提損失函數(shù)的得分最高,相較于MSE 和HuberLoss 分別提升0.57 和0.3。綜上,驗證了本文中所提的損失函數(shù)對于回聲消除的作用是有效的。
表2 GAM-DSPM-CRN網(wǎng)絡模型在不同損失函數(shù)下的客觀評價結(jié)果Tab.2 Objective evaluation results for GAM-DSPMCRN network models under different loss functions
為了進一步驗證文中所提損失函數(shù)以及模型的優(yōu)越性,以及每一個模塊在實驗中對消除回聲有正向效果,因此在第一組實驗的基礎(chǔ)上,將CRN、GAM-CRN 以及DSPM-CRN 模型分別使用MSE、HuberLoss 和本文所提出的損失函數(shù)進行訓練,最后得到預測近端語言信號進行評分比較。
由表3 得出,在主觀評價得分中,本文提出的模型在所提的損失函數(shù)訓練下的得分最高,為4.09,比最低得分提升0.49,比第二高得分提升0.21;在SΤOI 評價指標下,本文所提模型在本文所提損失函數(shù)下訓練的得分與GAM-CRN 分別在MSE、HuberLoss 和本文所提出的損失函數(shù)下行訓練的得分相持平,為0.78,較其他方式分別提升0.01 和0.02。由此證明GAM 注意力機制和DSPM模塊對于整個網(wǎng)絡的性能提升和對語音信號的讀取是有效的。
表3 不同損失函數(shù)下的客觀評價結(jié)果Tab.3 Objective evaluation results under different loss functions
第二組實驗結(jié)果如表4所示,分析表明,在相同的損失函數(shù)下訓練,本文所提出模型的MOS 得分和PESQ、ERLE 的得分基本都比其他的模型要高,較FLGCNN 模型分別提高了2.08、0.61 以及4.78;較CLSΤM 模型分別提高了0.66、0.27 以及2.9;較LSΤM-ResNet模型分別提高了0.56、0.15 以及5.07;較BLSΤM 模型分別提高了0.39、0.1 以及0.93;較CRN 模型的MOS 得分和PESQ 的得分分別提高了0.39 和0.1,但ERLE 得分略低0.4??傮w而言,提出的網(wǎng)絡模型消除回聲的性能更為理想。
表4 不同模型下的客觀評價結(jié)果Tab.4 Objective evaluation results under different models
綜上,通過兩組對比實驗以及補充實驗可以證明本文提出的模型和損失函數(shù)在回聲消除中具有一定的優(yōu)越性,對于消除回聲的作用是正向的。
本文提出了一種基于GAM-DSPM-CRN 網(wǎng)絡的回聲消除算法,模型引入全局注意力機制提取語音信號特征,進一步提升模型提取有用信息的能力;在編碼器卷積內(nèi)引入動態(tài)場景感知模塊,針對不同場景分配合理的卷積內(nèi)核,提高神經(jīng)網(wǎng)絡的自適應能力。并且在結(jié)合現(xiàn)階段各損失函數(shù)的優(yōu)缺點后,提出一種聯(lián)合損失函數(shù)來對網(wǎng)絡進行訓練,提高了模型的魯棒性,能夠更加準確地預測近端語音信號。綜合實驗結(jié)果分析,提出的損失函數(shù)和網(wǎng)絡模型的性能相較于參考的損失函數(shù)和模型具備一定的優(yōu)勢,能夠更有效地去除近端語音信號中的回聲信號,獲得更好的聽覺感知效果。