張池,王忠,姜添豪,謝康民
(1.四川大學電氣工程學院,四川 成都 610065;2.國網(wǎng)浙江省電力有限公司溫州供電公司,浙江 溫州 325029)
語音增強旨在利用信號處理算法提高語音的質量和可懂度[1],被廣泛應用于語音系統(tǒng)的前端[2]。傳統(tǒng)語音增強方法包含譜減法[3]、維納濾波[4]、基于最小均方估計[5]、子空間算法[6]等,這些方法的基本思路是將語音信號和聲學干擾相分離,在語音短時平穩(wěn)及噪聲信號與語音信號獨立且平穩(wěn)的前提下可以實現(xiàn)語音增強,但是面對非平穩(wěn)噪聲時處理性能會降低。
基于深度學習的語音增強方法對于非平穩(wěn)噪聲有很好的處理能力。深度神經(jīng)網(wǎng)絡(DNN)[7]、卷積神經(jīng)網(wǎng)絡(CNN)[8-9]、循環(huán)神經(jīng)網(wǎng)絡(RNN)[10]和生成式對抗網(wǎng)絡(GAN)[11-13]在語音增強領域具有較好的應用效果。根據(jù)語音增強方式的不同,神經(jīng)網(wǎng)絡的處理方式可劃分為映射和掩蔽2種?;谟成浞绞?神經(jīng)網(wǎng)絡模型學習從帶干擾語音特征到干凈語音特征的映射,實現(xiàn)語音增強。文獻[11]基于GAN的語音增強并使用生成器直接將時域帶干擾語音信號映射到干凈語音信號。文獻[9]基于卷積神經(jīng)網(wǎng)絡并使用頻域特征實現(xiàn)帶干擾語音信號到干凈語音信號的映射。掩蔽方式多應用于使用語音頻譜特征的神經(jīng)網(wǎng)絡模型。神經(jīng)網(wǎng)絡模型根據(jù)輸入的語音頻譜特征生成相對應的掩模,將生成的掩模和輸入的譜特征相乘或相加得到增強后的譜特征,將譜特征還原到時域得到增強語音[2]。掩蔽算法包括理想二元掩蔽(IBM)[14]、理想比率掩蔽(IRM)[15]和復比率掩蔽(CRM)[16],其中,前兩者只針對語音幅度譜進行運算,忽略相位信息,后者基于復數(shù)計算規(guī)則,實現(xiàn)對于幅度信息以及相位信息的掩模計算。文獻[8]使用復比率掩蔽結合卷積神經(jīng)網(wǎng)絡以及循環(huán)神經(jīng)網(wǎng)絡的變體長短時記憶(LSTM)網(wǎng)絡實現(xiàn)了深度復卷積遞歸神經(jīng)網(wǎng)絡(DCCRN)。另外,還有一些研究使用生成式對抗網(wǎng)絡的判別器實現(xiàn)對于語音評價指標的學習。文獻[12]利用判別器學習評價指標函數(shù),使其可以預測音頻質量,解決了評價指標不可微分的問題,并使增強后的語音具有更高的語音感知質量和可懂度。
Transformer[17]由于具有可并行及處理長時間依賴能力的特點,因此基于Transformer的語音增強[18-20]可對語音進行全局信息建模,增強語音處理性能。Transformer的自注意力機制在語音增強領域的成功應用也引起了學者們的廣泛關注,文獻[18,21-22]在語音增強網(wǎng)絡中引入通道注意力機制和局部注意力機制[23]進一步提升語音增強性能。
為了提取語音頻譜的局部信息和全局信息,更好地捕捉語音信號的頻譜結構,實現(xiàn)針對低信噪比以及陌生環(huán)境的語音增強,本文提出基于并行多注意力機制和編解碼結構的時頻域語音增強網(wǎng)絡(PMAN),自注意力機制采用改進的Conformer[24]結構,用于提取語音序列的全局信息以及局部信息,局部塊注意力(LPA)機制基于二維(2D)窗口注意力機制實現(xiàn),可聚焦語音頻譜信息的二維分布結構。PMAN結合通道注意力結構,實現(xiàn)不同通道之間的信息通信,采用并行Conformer模塊同時處理語音序列的全局信息和局部信息,并行輸入下一個層級的Conformer結構,更好地聚合序列部分的全局和局部信息,使用門控線性前饋網(wǎng)絡(GLUFFN)作為Conformer模塊的前饋網(wǎng)絡(FFN),提升對于輸入的特征提取效率。
為利用語音頻譜域的局部信息、全局信息和二維結構信息,提出結合Conformer自注意力機制和局部塊注意力機制的語音增強網(wǎng)絡。網(wǎng)絡模型整體結構如圖1所示,包含編碼器、并行Conformer模塊、掩模解碼器和復數(shù)解碼器。首先,信號經(jīng)過短時傅里葉變換(STFT)得到語音復數(shù)頻譜并計算得到語音幅度譜,將幅度譜和復數(shù)頻譜在通道維度進行拼接,輸入編碼器使用卷積模塊進行語音頻域信息提取,輸出語音頻域信息的高維表示;接著,將編碼器的輸出輸入并行Conformer模塊進行注意力機制的處理,提取語音頻域全局、局部及二維結構信息;然后,通過掩模解碼器輸出語音的幅度譜掩模,用于后續(xù)乘法增強運算;最后,通過復數(shù)解碼器直接映射得到語音增強后的復數(shù)頻譜,加和模塊使用掩模解碼器和復數(shù)解碼器的輸出計算復數(shù)頻譜,再經(jīng)過逆短時傅里葉變換(ISTFT)得到增強后的語音時域信號。
圖1 網(wǎng)絡模型整體結構Fig.1 Overall structure of network model
1.1.1 編碼器
給定含有干擾的語音信號x∈B×L,其中,B和L分別代表輸入語音的批量大小和數(shù)據(jù)長度。對x的復數(shù)頻譜X通過冪律壓縮[25]進行特征增強,如式(1)所示:
(1)
其中:Y、|X|、|Y|、θX、Yr、Yi分別代表冪律壓縮后的復數(shù)頻譜、原始的振幅、冪律壓縮后的振幅、相位、冪律壓縮后的實部、冪律壓縮后的虛部;c為壓縮系數(shù),取值為0~1;冪律壓縮后的振幅、實部和虛部在通道維度進行疊加Yin={|Y|,Yr,Yi}∈B×3×T×F輸入編碼器。
圖2展示了編碼器結構,包含1×1卷積核的二維卷積層、密集擴張卷積模塊和包含1×3卷積核的二維卷積層。密集擴張卷積模塊包含4個擴張卷積層,卷積的擴張系數(shù)為{1,2,4,8}。輸入Yin首先通過卷積層得到語音頻譜的高維度表示Y′∈B×C×T×F,其中,C代表卷積層的輸出通道數(shù);然后經(jīng)過密集擴張卷積模塊,使用不斷增大的感受野及密集連接進行不同分辨率信息的聚合;最后通過后續(xù)的包含1×3卷積核的二維卷積層將頻率維度減半以降低運算量,經(jīng)過實例歸一化和非線性層,編碼器的輸出為其中,T和分別代表編碼器輸出的矩陣時間維度和頻率維度。
圖2 編碼器結構Fig.2 Structure of encoder
與一般的密集擴張卷積模塊相比,本文使用的密集擴張卷積模塊在卷積層之后添加局部塊注意力層進行語音頻譜二維結構特征的捕捉。圖3展示了語音頻譜圖和卷積層輸出的特征圖(彩色效果見《計算機工程》官網(wǎng)HTML版,下同)。圖3(a)語音頻譜圖虛線框中有規(guī)則條紋反映的是語音的諧波結構。圖3(b)和圖3(c)是卷積層不同通道輸出的特征圖,虛線框中的部分特征圖具有和語音頻譜圖相似的條紋樣式。針對特征圖和語音頻譜圖具有類似圖形結構的特點,引入二維局部塊注意力機制,實現(xiàn)對于特征結構的捕捉。
圖3 語音特征Fig.3 Speech feature
圖4 局部塊注意力層結構Fig.4 Structure of local patch attention layer
1.1.2 并行Conformer模塊
并行Conformer模塊主體是并行的Conformer層結構,使用注意力特征融合(AFF)模塊[27]將并行輸出的注意力特征進行融合,AFF和后續(xù)的局部塊注意力模塊和通道注意力模塊構成注意力加和模塊,連接在并行Conformer層后實現(xiàn)特征融合并進行二維結構特征的提取。注意力加和模塊的輸出分兩路到下一個階段的并行Conformer層,再經(jīng)過同樣的注意力加和模塊得到并行Conformer模塊的輸出。
圖5 并行Conformer模塊結構Fig.5 Structure of parallel Conformer module
(2)
(3)
其中:δ代表ReLU激活函數(shù)。
Conformer層內(nèi)部結構如圖6(a)所示,2個GLUFFN中間夾入多頭自注意力(MHSA)構成名為馬卡龍網(wǎng)絡[28]的結構。每個模塊后面都有相應的層歸一化(LN)和跳躍連接,用以緩解梯度消失,加速模型訓練。整體的層輸入和輸出之間也具有跳躍連接,保證梯度傳遞。文獻[29]證實了使用門控線性單元(GLU)的FFN具有較好的效果。圖6(b)展示了GLUFFN結構,GLUFNN結構的系統(tǒng)函數(shù)如下:
圖6 Conformer層結構Fig.6 Structure of Conformer layer
Hgluffn(x)=(Swish(xW)?(xV))W2
(4)
GLUFNN結構包含Dropout層用來優(yōu)化梯度傳輸,使得訓練更加穩(wěn)定。Transformer結構擅長捕捉全局注意力,卷積模塊能更有效地利用局部信息,兩者結合能更好地進行局部和全局注意力的建模。圖6(c)展示了DepthConv卷積模塊結構,具有2個逐點卷積(PConv)、深度卷積(DConv)和Swish激活函數(shù),其中GLU和批標準化(BN)用于優(yōu)化梯度,輔助網(wǎng)絡訓練。
1.1.3 解碼器
解碼器包含掩模解碼器和復數(shù)解碼器2個模塊。
掩模解碼器具有類似于編碼器的密集卷積擴張模塊,不同之處在于:解碼器的頻率維度相比于編碼器減半,包含4層擴張卷積模塊,擴張系數(shù)為{1,2,4,8}。掩模解碼器經(jīng)過密集卷積擴張模塊之后,輸入子像素卷積層(SPConv)對頻率維度進行上采樣,恢復到原始大小。后續(xù)經(jīng)過2個卷積層:第1個卷積層輸出通道數(shù)與輸入保持一致,卷積層的輸出經(jīng)過PReLU非線性激活函數(shù)得到語音振幅譜的掩碼輸出Y′m∈B×1×T×F,最后與輸入的原始語音振幅譜|Y|進行點乘實現(xiàn)語音振幅譜的增強Ymag∈B×1×T×F,相比于掩模解碼器模塊,復數(shù)解碼器模塊去掉了最后的PReLU層;第2個卷積層的輸出通道數(shù)設置為2,得到語音增強后的復數(shù)頻譜Ycom∈B×2×T×F。
圖7 解碼器結構Fig.7 Structure of decoder
復數(shù)頻譜的實部與虛部可表示如下:
(5)
復數(shù)解碼器模塊生成的增強后的語音復數(shù)頻譜Ycom∈B×2×T×F,2個通道分別為語音復數(shù)頻譜的實部B×1×T×F和虛部B×1×T×F。最終的語音增強的復數(shù)頻譜可表示如下:
(6)
輸出Yout經(jīng)過逆短時傅里葉變換得到增強后的語音時域信號y∈B×L。
y=ISTFT(Yout)
(7)
模型使用頻域與時域聯(lián)合損失函數(shù)。時域損失函數(shù)基于[y,xclean]計算,其中,y代表經(jīng)過網(wǎng)絡處理增強后的語音,xclean代表對應的干凈語音時域信號。對信號使用STFT會存在一致性問題,計算公式為ISTFT(STFT(z))=z,其中z為時域信號。因此,基于文獻[30]的設計,干凈語音時域信號經(jīng)過STFT以及ISTFT得到xclean,保證了增強語音與干凈語音先經(jīng)過同樣的傅里葉變換處理過程,再進行損失函數(shù)的計算。頻域損失函數(shù)包含2個部分:一部分是使用[Yout,Xclean_com],其中,Xclean_com代表干凈語音信號的復數(shù)頻譜,Yout代表增強后的語音信號復數(shù)頻譜;另一部分是使用[|Yout|,|Xclean|],其中,|Yout|代表增強后的語音振幅譜,|Xclean|代表干凈語音的振幅譜。損失函數(shù)計算如下:
(8)
時間域損失函數(shù)使用L1范數(shù)計算,其余的語音振幅譜以及語音復數(shù)頻譜使用均方根誤差(MSE)計算。
為了均衡各個損失函數(shù)的貢獻,μ1、μ2和μ3作為權重系數(shù),使用權重控制的方式得到最終的損失函數(shù),如式(9)所示:
L=μ1Lmag+μ2Lcom+μ3Ltime
(9)
實驗使用語音數(shù)據(jù)集VoiceBank+DEMAND[31],該數(shù)據(jù)集使用28個說話人進行訓練,2個說話人進行測試。訓練集包含11 572條干凈語音數(shù)據(jù),添加了10種噪聲,其中,8種來自VoiceBank+DEMAND數(shù)據(jù)集,2種為人為噪聲,信噪比混合等級為0、5 dB、10 dB、15 dB。測試集包含824條干凈語音數(shù)據(jù),添加了5種來自VoiceBank+DEMAND數(shù)據(jù)集的噪聲,均未在訓練集噪聲中出現(xiàn),信噪比混合等級為2.5 dB、7.5 dB、12.5 dB、17.5 dB。
為測試模型的泛化能力,使用NOIZEUS[32]數(shù)據(jù)集。該數(shù)據(jù)集具有30條語音數(shù)據(jù),混合有不同信噪比下的8種不同真實世界噪聲,信噪比混合等級為0、5 dB、10 dB、15 dB。
實驗環(huán)境使用Linux Ubuntu 20.04操作系統(tǒng),GPU顯卡Tesla T4、顯存16 GB、CUDA 11.8、PyTorch 2.0.0和Python 3.8的軟件環(huán)境。
實驗使用的VoiceBank+DEMAND數(shù)據(jù)均采用16 kHz的采樣率。訓練集語音數(shù)據(jù)切片長度為2 s,測試集的語音保持原始長度不變。STFT變換采用長度為512的漢明窗口,長度為256的位移,重疊率為50%,生成257個頻率段。
網(wǎng)絡模型采用AdamW參數(shù)優(yōu)化器進行訓練。初始學習率設置為0.001,根據(jù)訓練批次進行學習率減半更新。一共訓練100個批次,批次大小設置為3。損失函數(shù)的權重設置為μ1=0.7、μ2=0.3、μ3=0.2。
采用主客觀多種語音評價指標:1)主觀評價指標,信號失真測度(CSIG)[33]、噪聲失真測度(CBAK)[33]和綜合質量測度(COVL)[33],三者的數(shù)值范圍為1~5;2)客觀評價指標,客觀語音質量評價(PESQ)[34]、短時客觀可懂度(STOI)[35]和分段信噪比(SSNR)[36],其中,PESQ的數(shù)值范圍為-0.5~4.5,使用寬帶PESQ,符合ITU-T P.862.2規(guī)范,STOI的數(shù)值范圍為0~1,SNR與主觀質量相關性較低,因此使用基于幀的SSNR作為語音質量的衡量標準[36]。以上6種語音評價指標的數(shù)值越大,語音質量越高。
2.4.1 模型對比實驗
為評估本文提出模型PMAN的增強性能,與經(jīng)典模型及近幾年的主流模型進行比較。選取的深度學習模型包括語音增強生成式對抗網(wǎng)絡(SEGAN)[11]、用于語音增強的基于生成式對抗網(wǎng)絡的黑箱度量分數(shù)優(yōu)化(MetricGAN)[12]、相位和諧波感知的語音增強網(wǎng)絡(PHASEN)[37]、基于頻率遞推的單耳語音增強特征表示(FRCRN)[21]、時域波形的語音增強(DEMUCS)[10]、基于兩階段變換器的時域語音增強神經(jīng)網(wǎng)絡(TSTNN)[19]、用于噪聲消除的多視角注意力網(wǎng)絡(MANNER)[18],其中,SEGAN[11]和MetricGAN[12]均采用GAN結構,后者使用指標鑒別器,引導網(wǎng)絡直接學習語音的評價指標,PHASEN[37]和FRCRN[21]兩者進行基于頻域特征的語音增強,前者使用卷積層實現(xiàn)注意力計算,后者使用LSTM網(wǎng)絡變體(FSMN)進行語音的長序列建模,相比于原始的LSTM,FSMN參數(shù)更少,并且性能有所提升[21],DEMUCS[10]使用LSTM網(wǎng)絡進行語音長序列建模,TSTNN[19]和MANNER[18]均采用Transformer[17]網(wǎng)絡結構對于語音進行全局特征和局部特征的提取,前者通過雙階段的Transformer網(wǎng)絡提取語音的局部和全局上下文信息,后者構建了多視圖注意力模塊,包含全局注意力、局部注意力和通道注意力。
PMAN與經(jīng)典以及主流模型的實驗結果如表1所示,其中最優(yōu)指標值用加粗字體標示,下同。由表1可以看出:1)PMAN在PESQ、CBAK、COVL、SSNR和STOI評價指標上取得了最好的結果,相比于MANNER網(wǎng)絡分別超出0.07、0.19、0.07、0.29 dB和0.01,CSIG評價指標也具有可比性,僅相差0.03,這主要是因為MANNER使用多種注意力機制,直接對時域波形進行處理,PMAN雖然在CSIG上稍差,但是得益于基于頻域特征增強的方式以及使用的并行Conformer結構,在其他評價指標上均有較大的提升,并且模型參數(shù)量降低了1個數(shù)量級;2)與使用FSMN作為自注意力機制并含有多注意力機制的FRCRN相比,PMAN得益于中間層網(wǎng)絡的并行設計以及Conformer網(wǎng)絡所提升的性能,在所有指標上均有提升;3)與使用Transformer自注意力機制的TSTNN相比,PMAN網(wǎng)絡使用頻域的特征處理以及并行Conformer模塊,最終評價指標有較大提升;4)本文的輕量模型PMAN1使用32通道的卷積層,參數(shù)量下降到0.36×106,具有較優(yōu)的性能;5)本文PMAN2的中間層使用單個并行Conformer模塊,達到的效果也優(yōu)于一些經(jīng)典和主流的語音增強網(wǎng)絡模型。
表1 模型實驗結果對比Table 1 Comparison of model experiment results
圖8展示了干凈和含噪語音以及經(jīng)過不同模型增強后的語音時域以及頻譜圖。由圖8的語音時域波形以及語音的頻譜圖可以看出:與PMAN和FRCRN相比,MANNER和TSTNN對于噪聲的處理力度更大;與FRCRN相比,PMAN對于噪聲處理力度更大,增強后的部分更接近于干凈語音,對于語音的低頻部分恢復得更加徹底,高頻部分更好地保留了語音的有用信號,且對于有用信號的增幅更大。
圖8 語音頻譜圖Fig.8 Speech spectrogram
2.4.2 消融實驗
為了驗證PMAN各個模塊結構的有效性,進行消融實驗,具體為采用串行的注意力機制結構(Serial Model)、去掉LPA模塊(No LPA)、使用常規(guī)的FFN層替換GLUFFN層(No GLUFFN)、去掉Conformer層(No Conf),從而分別驗證并行結構的優(yōu)勢、LPA模塊的作用、GLUFFN層的作用和Conformer層的作用。表2展示了消融實驗結果。
表2 消融實驗結果Table 2 Results of ablation experiment
由表2可得知:串行的網(wǎng)絡結構的PESQ以及SSNR指標相比于PMAN有一定的差距,說明了并行結構對于語音增強有提升作用;去掉包含編碼器、中間層和解碼器的LPA模塊得到的各個指標相比于PMAN有所下降;將GLU結構替換為兩層的全連接網(wǎng)絡指標也有所下降,說明了使用GLUFFN的PMAN具有更好的性能。綜上,PMAN所使用的結構均在模型中起到了相應的作用。
2.4.3 泛化能力實驗
為了探索模型對于語音增強的泛化能力,使用模型對NOIZEUS語音數(shù)據(jù)集進行增強,對于訓練完成的模型,NOIZEUS語音數(shù)據(jù)的說話人和噪聲均是未知的。
結合表3和圖9可以看出:PMAN在除了STOI指標以外的PESQ等語音指標上相比于對比模型具有一定的優(yōu)勢,僅在STOI指標上稍微弱于FRCRN,但在PESQ等指標上相比于FRCRN也有較大幅度的提升,說明了PMAN對于未知的含噪語音的處理能力優(yōu)于對比模型??梢?PMAN在不經(jīng)過再訓練的情況下,能有效針對陌生環(huán)境以及說話人干擾進行語音增強,具有較好的泛化能力。
表3 泛化能力對比數(shù)據(jù)Table 3 Comparison data of generalization ability
圖9 泛化能力對比曲線Fig.9 Comparison curve of generalization ability
本文構建結合并行Conformer與多注意力機制的PMAN模型,同時處理語音經(jīng)過傅里葉變換之后得到的振幅譜和復數(shù)譜,通過后續(xù)加權計算的方式利用語音的相位信息規(guī)避了相位的直接計算,使用并行的Conformer結構更好地進行局部信息和全局信息的整合,并利用LPA結構捕捉語音圖譜的二維結構特征。在VoiceBank+DEMAND數(shù)據(jù)集上的實驗結果表明,相比于經(jīng)典及主流模型,PMAN模型取得了較好的增強效果。下一步將對含有噪聲、混響等干擾下的語音進行增強研究。