陳修凱,陸志華,周 宇
(寧波大學信息科學與工程學院,浙江寧波 315211)
(*通信作者電子郵箱zhouyu@nbu.edu.cn)
語音是人們日常生活中最常用的一種交流方式,在聊天過程中人們感興趣的目標語音往往會被一些額外的噪聲和表面反射的混響所破壞,所以將目標語音和背景干擾區分開來是一個至關重要的問題。盡管人類能夠非常容易地進行語音分離,即能夠非常容易地獲取自己感興趣的目標語音。但是經過大量的事實證明,構建一個自動系統來匹配人類聽覺系統來執行語音分離問題是非常困難的。Cherry 曾寫到:“還沒有提出一種能夠徹底解決‘雞尾酒會問題’[1]的算法”[2]。在語音信號領域,他的結論到目前為止仍是成立的。
語音分離問題是盲源分離(Blind Source Separation,BSS)問題中的一個重要組成部分。一直以來語音分離問題是被當作信號處理問題來研究,幾十年來,隨著機器學習和深度學習技術的飛速發展,語音分離問題被當作成監督性的學習問題來研究。將深度學習引入有監督的語音分離中已經成為了當前的主流模式,而且大幅度提升了語音分離的性能[3-5]。
文獻[6]通過深度神經網絡(Deep Neural Network,DNN)重構被屏蔽的掩碼成分提高了語音分離的質量;文獻[7]提出一種頻譜變化感知損失函數,通過對頻譜變化隨時間變化較大的T-F 單元分配更高的權重,提高了語音分離的質量;文獻[8]提出了一種基于復數信號逼近的長短時記憶(Long Short-Term Memory,LSTM)網絡方法,來解決傳統DNN 方法不能充分利用語音信號時間信息的問題,從而提高了語音的分離質量。
上述文獻中的算法均提高了語音分離的質量,但是它們均存在一定的缺點:這些方法大多數都使用時頻(Time-Frequency,T-F)單元的頻譜圖功能而不是時域波形。但是,頻譜圖功能具有某些局限性:首先,諸如離散傅里葉變換及其逆運算之類的預處理和后處理運算量很大,并且會在輸出信號中造成失真;其次,這些方法通常僅估計幅度,并使用噪聲相位來產生增強的語音。研究表明,相位可以提高語音質量[9]。Pascual 等[10]提出了一種基于生成對抗網絡(Generative Adversarial Network,GAN)的語音增強算法,在該算法中,他們對混合信號的原始波形進行操作,考慮到了混合信號中的相位信息。Tan 等[11]提出了一種基于LSTM 網絡和卷積編解碼器(Convolutional Encoder Decoder,CED)相結合的語音增強算法,來解決實時的單聲道語音增強。受Pascual 等[10]和Tan等[11]的啟發,本文提出了一種基于卷積神經網絡的端到端語音分離改進算法,以CED 網絡和門控循環單元(Gated Recurrent Unit,GRU)[12]網絡相結合,再利用混合語音信號的原始波形作為輸入特征。
LSTM 網絡是在遞歸神經網絡(Recurrent Neural Networks,RNN)基礎之上所做改進的一種網絡,在RNN 網絡的基礎上引入了記憶單元(memory cell)和門機制(gate mechanism)。LSTM 在網絡結構上與RNN 相比較,增加了輸入門、遺忘門、輸出門等結構單元。其結構如圖1所示。

圖1 LSTM結構Fig.1 LSTM structure
各個門中的計算公式如下所示:


其中:Wf,Wi,Wa,Wo是各個門的輸入權重;Uf,Ui,Ua,Uo是各個門的循環權重;bf,bi,ba,bo是各個門的偏差;Xt是t時刻的輸入向量;h是tanh激活函數;δ是sigmoid激活函數。
GRU 網絡是在LSTM 基礎上改進的一種網絡,它既具有LSTM能夠保留長期序列信息的能力,同時又能夠減少梯度消失。GRU中只有兩個門:更新門和重置門。GRU 網絡和LSTM 網絡相比較,其最大的優勢就是結構更簡單,計算量更小,訓練速度更快。GRU網絡結構如圖2所示。

圖2 GRU結構Fig.2 GRU structure
在本文中通過如下公式定義t時刻GRU 輸出值ht的計算過程:

其中,rt表示重置門,zt表示更新門,δ表示sigmoid 激活函數。sigmoid 激活函數可以將數據映射到[0,1]上來確定門控信號。更新門具有兩重功能:遺忘功能、記憶功能。它既能夠對原來隱藏狀態不相關的歷史信息選擇性遺忘,又可以對候選隱藏狀態選擇性記憶,保留下與當前時刻依賴性強的長短時信息。
CED 網絡是一種非常靈活的網絡結構,主要由編碼器(encoder)和解碼器(decoder)組成,通常使用在網絡的預訓練、數據降維和特征提取等中。編碼器由多個卷積層組成,與之對應的解碼器由多個反卷積層組成。在編碼階段,輸入信號通過卷積層進行投影和壓縮,參數校正線性單元(Parametric Rectified Linear Units,PReLUs)應用在所有的卷積層和反卷積層。編碼器和解碼器之間通過跳連接,因為輸入和輸出共享相同的基礎結構,即自然語音的結構。通過跳連接來連接編碼器和解碼器,可以減少傳輸過程中語音信號信息的丟失,而且使用跳連接可以直接將波形信息傳遞到解碼器中。CED 和傳統的卷積神經網絡(Convolutional Neural Network,CNN)相比,具有更少的參數。CED 結構如圖3所示。

圖3 CED結構Fig.3 CED structure
其中z是服從正態分布的噪聲向量[13]。
在單通道語音分離問題中,混合的語音信號時域表達式可以表示為:

其中:xi(t)表示第i個說話人的時域信號,x(t)表示混合后的時域信號,n(t)表示噪聲信號。在不考慮噪聲的情況下,混合信號的時域表達式可以簡化為:

本文僅研究兩個說話人的情況,即i=1,2。此時混合信號的時域表達式可以表示為:

本文提出的卷積神經網絡是以CED 和GRU 相結合的網絡結構,是根據文獻[11]改編而來的一種網絡結構,其結構如圖4所示。

圖4 基于CED-GRU的語音分離結構Fig.4 Speech separation structure based on CED-GRU
本文使用混合信號的波形點作為輸入特征。輸入信號通過編碼器被編碼到一個較高維的潛在空間中,然后由兩個對稱的GRU 層對潛在的特征向量的序列進行建模。隨后,解碼器將GRU層的輸出序列轉換回原始的輸入形狀。
卷積層的目的和作用是捕獲和學習輸入的特征,而CNN層數越多,特征的學習效果越好,但是參數學習將會變得更加困難。因此,本文模型在編碼階段使用了11 層卷積層,在解碼階段使用了11 層反卷積層,其性能比單層CNN 模型好得多。其中卷積層和反卷積層的具體結構如下:16 384×1、8 192×16、4 096×32、2 048×32、1 024×64、512×64、256×128、128×128、64×256、32×256、16×512;GRU 的結構為:8×1 024、8×1 024。
在本文提出的網絡中,將指數線性單元激活函數(Exponential Linear Unit,ELU)應用于除輸出層以外的所有卷積層和反卷積層。與整流線性單元(Rectified Linear Unit,ReLU)相比,已經證明ELU 收斂更快、泛化更好。在輸出層使用softplus 激活函數。此外,在每次卷積或反卷積之后和激活之前都采用批歸一化處理。編碼器和解碼器中,內核數需保持一致:在編碼器中內核數逐漸增加,而解碼器中內核數逐漸減少。
在本文中提出的算法模型其訓練次數為100,優化算法使用的是Adam 優化算法,批大小設置為200,學習率設置為0.0002。
由于是通過解碼器端輸出估計的純凈語音信號的波形,因此本文直接使用尺度不變信噪比(Scale-Invariant Signal-to-Noise Ratio,SI-SNR)[14-15]來設計損失函數。SI-SNR 也是用于語音分離質量評價的一項重要指標。SI?SNR的表達式:

其中:是估計出的目標信號,s是純凈的目標信號。為了保證尺度的不變性,通常情況下都要對和s做均值為0 的歸一化處理。通常情況下,SI?SNR的值越大,表示語音分離的質量越好。但是由于訓練過程中使用梯度下降算法來訓練模型,所以實際的損失函數定義為。
通過使用TIMIT 數據集[16]來對本文提出的系統進行評估,以解決兩個說話人的語音分離問題,本文比較男性和男性、男性和女性、女性和女性說話人之間的語音分離效果。
TIMIT 數據集中共有630 位說話人,其中男性共有438人,女性共有192人,每位說話人共說10句話。訓練數據集中男性有326 人,女性有136 人;測試數據中男性有112 人,女性有56人。本文所使用的訓練數據集是從TIMIT的訓練數據集中隨機挑選出男性40 人,女性20 人,然后對兩個不同說話人的句子進行混合;本文所使用的測試數據集是從TIMIT 的測試數據集中隨機挑選出男性20 人,女性10 人,然后對兩個不同說話人的句子進行混合。訓練集數據和測試集數據是在信噪比在-5 dB和5 dB之間均勻選擇進行混合而生成的。
多說話人的語音分離目標是提高語音信號的語音質量或者提高語音信號的清晰度,這需要通過相應的語音質量評價來說明語音分離質量的優劣。
常用的用于客觀質量評價和清晰度評價的指標有如下幾種。
1)語音質量的感知評價(Perceptual Evaluation of Speech Quality,PESQ)[17]:PESQ 是最廣泛用于評估語音質量的客觀度量之一。PESQ 版本P.862.1/2 產生的數字范圍為1~4.5,隨著得分的升高,表示語音分離的質量越好。
2)短時目標可懂度(Short-Time Objective Intelligibility,STOI)[18]:STOI 是用于評估語音清晰度的最廣泛使用的目標度量。STOI 表示語音可理解性的聽力測試結果,通常用0~1的數字來評價語音分離的質量,其中1 表示語音完全可理解,0表示語音完全不理解。
3)BSS_Eval 工具箱[19]:BSS_Eval 工具箱中包括“源失真比”(Source to Distortion Ratio,SDR),SDR 表示語音分離系統的失真程度;“源干擾比”(Signal to Interference Ratio,SIR),是比較非目標聲源噪聲與目標聲音的分離程度;“源偽像比”(Signal to Artifact Ratio,SAR),是指在語音分離過程中引入的人工誤差程度。通常情況下,這三者的值越高,就表示語音分離的質量越好:

為了驗證本文算法的優劣性,使用當前最具有代表性的幾種語音分離算法與本文算法做對比,包括基于排列不變訓練(Permutation Invariant Training,PIT)的多說話人語音分離算法[20]、基于深度聚類(Deep Clustering,DC)的單通道多說話人語音分離算法[21]、基于深度吸引網絡(Deep Attractor Network,DAN)的多說話人語音分離算法[22]和文獻[14]中提出的語音分離算法。
其中PIT 算法、DC 算法和DAN 算法都是以短時傅里葉變換(Short-Time Fourier Transform,STFT)后的頻譜作為輸入特征,文獻[14]中的算法是以原始波形作為輸入特征。
使用不同算法的PESQ 值對比如表1 所示。使用不同算法的STOI值對比如表2所示。

表1 不同算法的PESQ平均值Tab.1 Average PESQ of different algorithms

表2 不同算法的STOI平均值Tab.2 Average STOI of different algorithms
使用不同算法的SDR、SAR、SIR 平均值對比如圖5~7所示。
通過表1、表2、圖5、圖6、圖7中的數據可以發現,本文算法的PESQ值、STOI值SDR平均值、SAR平均值和SIR平均值,均優于PIT 算法、DC 算法、DAN 算法和文獻[14]算法的各項評價指標。
其中本文算法與PIT 算法相比,男性和男性的PESQ 值提高了1.16 個百分點,STOI 值提高了0.29 個百分點;男性和女性的PESQ 值提高了1.37 個百分點,STOI 值提高了0.27 個百分點;女性和女性的PESQ值提高了1.08個百分點,STOI值提高了0.3 個百分點。本文算法與DC 算法相比,男性和男性的PESQ 值提高了0.87 個百分點,STOI值提高了0.21 個百分點;男性和女性的PESQ值提高了1.11個百分點,STOI值提高了0.22 個百分點;女性和女性的PESQ 值提高了0.81 個百分點,STOI 值提高了0.24 個百分點。本文算法與DAN 算法相比,男性和男性的PESQ值提高了0.64個百分點,STOI值提高了0.24 個百分點;男性和女性的PESQ 值提高了1.01 個百分點,STOI值提高了0.34個百分點;女性和女性的PESQ值提高了0.73 個百分點,STOI 值提高了0.29 個百分點。本文算法與文獻[14]算法相比,男性和男性的PESQ 值提高了0.13 個百分點,STOI值提高了0.09個百分點;男性和女性的PESQ值提高了0.29 個百分點,STOI 值提高了0.07 個百分點;女性和女性的PESQ 值提高了0.17 個百分點,STOI 值提高了0.06 個百分點。

圖5 不同算法的SDR平均值Fig.5 Average SDR of different algorithms

圖6 不同算法的SAR平均值Fig.6 Average SAR of different algorithms

圖7 不同算法的SIR平均值Fig.7 Average SIR of different algorithms
本文主要介紹了一種卷積神經網絡端到端的語音分離改進方法。為了能夠充分利用混合語音信號中相位和幅值的信息,以混合信號的原始波形作為輸入特征。除此之外,本文提出的模型是基于卷積編解碼器網絡結構和門控循環單元網絡結構相結合的一種網絡結構。實驗結果表明,本文提出的語音分離算法的各項評價指標均明顯優于PIT 算法、DC 算法、DAN算法和文獻[14]中算法,這證明了本文算法的有效性。
目前本文中只是考慮了兩個說話人的語音分離情況,在未來的工作中,將會考慮到多個說話人的語音分離情況,并且進一步提升語音分離的質量。