常新旭,張 楊,楊 林,寇金橋,王 昕,徐冬冬
(中國航天科工集團第二研究院 北京計算機技術及應用研究所,北京 100854)
語音增強是研究如何抑制噪聲影響提升被污染語音的質量與可懂度的技術,在語音識別、移動通信和人工聽覺等諸多領域有著廣泛的應用前景[1]。近年來,研究人員將深度學習技術應用在語音領域,相較于譜減法,維納濾波法等方法明顯改善了惡劣噪聲環(huán)境下的語音增強性能[2,3]。
從監(jiān)督學習的角度看,基于深度學習的語音增強方法主要關注3個部分:特征、優(yōu)化目標和網絡模型。幅度調制譜、傅里葉對數幅度譜和梅爾倒譜系數是常用的語音增強特征。通常用于語音增強任務的優(yōu)化目標可分為基于映射[2-4]的目標和基于時頻掩蔽[5]的目標。語音增強領域也引入各種網絡模型用以改善增強語音的質量,如深度前饋神經網絡(deep feedforward neural network,DFNN)[3,5]、循環(huán)神經網絡(recurrent neural network,RNN)[4,6,7]和卷積神經網絡(conventional neural network,CNN)[8,9]。
為提升語音增強性能,該文從網絡模型角度出發(fā),結合人類在噪聲環(huán)境中聽覺感知的原理,在語音增強任務中引入編解碼器架構,利用循環(huán)神經網絡對帶噪語音信號進行建模,以充分利用當前待增強語音幀和相鄰幀之間的上下文關系,并且通過實驗在包含700位不同說話人的語音數據集上驗證了該方法的有效性。
RNN是一類專門用于處理序列數據的神經網絡。目前,循環(huán)神經網絡已經被成功應用在語音識別的聲學模型當中,大幅提高了語音識別的準確率,大量相關工作表明RNN在處理語音信號方面具有很大的優(yōu)勢[10,11]。雖然RNN在處理序列化數據方面具有強大的優(yōu)勢,但是傳統(tǒng)RNN在實際應用時候會出現長期依賴問題。在傳統(tǒng)循環(huán)神經網絡中,當時間步過大或者過小時,使用通過時間的反向傳播算法會使得循環(huán)網絡的梯度出現衰減或者爆炸的現象。為了解決這一問題,門控循環(huán)網絡(gated RNN)應運而生,通過加入門控單元來有選擇地保留或者遺忘歷史信息,有效解決了梯度衰減或爆炸問題。
常見的門控循環(huán)網絡包括兩種,分別是長短期記憶網絡(long short-term memory,LSTM)和門控循環(huán)單元(gated recurrent unit,GRU)[12]網絡。
LSTM是一種RNN的變體網絡,通過3個門的控制巧妙地解決了傳統(tǒng)RNN中存在的梯度消失問題。受到RNN在語音識別領域成功應用的啟發(fā),LSTM開始被應用在語音增強領域。Liu等使用基于LSTM-RNN的語音增強系統(tǒng)用作語音識別的前端,小幅提高了語音識別的準確率[6]。Sun等[4]注意到基于映射的語音增強方法在低信噪比的情況下具有較好的可懂度,基于預測IRM(ideal ratio mask)的語音增強方法在較高信噪比的情況下具有更好的表現,提出一種多目標學習的語音增強方法,相較于深度前饋神經網絡方法提升了語音增強性能,但是其對算力有一定要求并且所需訓練時間較長。而Wang等[13]則應用LSTM-RNN來解決說話人泛化問題,實驗結果表明LSTM-RNN具有更加強大的對說話人的建模能力。然而,他們實驗使用的訓練集僅包含78位說話人,遠少于常用語音增強實驗timit數據集中的630位,并未充分挖掘RNN對不同說話人的建模能力。
GRU網絡是另外一種變體的RNN,不同于LSTM有3個門來控制信息傳輸,在GRU中將遺忘門和輸入門合成為一個單一的更新門。相較于LSTM,GRU的網絡結構更為簡單,需要的參數更少,所需的訓練時間更短,同時也可以解決長期依賴問題。與LSTM類似,目前GRU也開始被應用在語音增強領域。Wichern等[14]以時頻掩蔽為訓練目標,通過使用GRU實現lookahead模型,解決了雙向RNN語音增強方法無法滿足實時應用低時延要求的問題。但是基于時頻掩蔽的方法對語音與噪聲有獨立性假設,而這種假設并不滿足實際需求。
為進一步提升深度學習語音增強方法在說話人未知場景下的語音增強性能,該文提出基于門控循環(huán)編解碼網絡的語音增強方法,并通過實驗度量增強語音的質量與可懂度,從而客觀評價該方法的語音增強性能。
假設含噪聲的語音信號為y,其是由不含噪聲的干凈語音信號s和加性噪聲d組成,即
y=s+d
該文按照文獻[3,4,15]的方式,選取含噪語音和干凈語音的對數功率譜作為訓練特征和訓練目標,信號的對數功率譜可以由時域信號經過短時傅里葉變換和對數運算計算得到。網絡使用小批量梯度下降法訓練,本文中使用的損失函數定義如下
圖1 基于深度神經網絡的語音增強系統(tǒng)
通常為更好地利用上下文信息,基于深度學習的語音增強方法會采用由相鄰多幀語音信號特征所組成的特征矩陣作為網絡輸入[15]。然而,DFNN在處理矩陣輸入的時候,會將其拉平為一維向量。對于具有時序特性的語音信號而言,這樣做無法對相鄰幀之間的時頻關系進行清楚的建模[4]。RNN具有短期記憶的特點,隱藏狀態(tài)能夠捕捉到輸入序列的歷史信息,相較于DFNN語音增強方法,進一步提升了語音增強性能。當前使用RNN的語音增強方法,是將網絡對輸入特征序列的建模直接作為當前待增強幀的干凈語音信號估計,沒有充分利用當前幀信號和上下文信息之間的聯系,其模型如圖2所示(圖2以兩層網絡為例)。但是,對于語音增強任務,噪聲類型會影響增強語音的效果,特別是噪聲信號與干凈語音信號十分相似或者背景噪聲中包含語音成分的條件下,如咖啡館、電視機和廣場等噪聲環(huán)境,基于深度學習的語音增強方法容易把噪聲信號誤認為是干凈語音信號[8]。事實上,人類聽覺中樞在噪聲環(huán)境下可以依據背景信息修復被噪聲污染的音素或音節(jié),這一現象被稱為音素恢復(phonemic restoration)[16]。依據這一現象,在對當前幀進行語音增強時,考慮到上下文背景信息的影響,能夠提升語音增強性能。因此,筆者提出在語音增強任務中引入編解碼器架構,使用編碼器對相鄰多幀語音信號建模以提取上下文信息,利用解碼器挖掘當前待增強語音幀和上下文信息之間的聯系。
圖2 普通循環(huán)神經網絡語音增強模型
該文所提出的語音增強網絡整體上采用編碼器解碼器架構。編解碼器最早運用于神經機器翻譯領域以實現源語言句子到目標語言句子的轉換。其中,編碼器用于提取源語言句子的編碼表示,解碼器根據編碼器輸出逐步生成目標端字符。通過應用編解碼器架構可以更有效地處理不定長的輸入和輸出。
C=Eencoder(X)
rt=σ(Wrxt+Urht-1+br)
zt=σ(Wzxt+Uzht-1+bz)
圖3 GRU單元結構
此處刪除了參數的說明。GRU的網絡層數與網絡節(jié)點數的設置取決于問題的規(guī)模,針對本文所使用的數據集規(guī)模,本文通過實驗比較不同架構的語音增強性能,提出編碼器GRU層數為2層,解碼器部分層數為2層,每層的節(jié)點數目為1024,整體結構如圖4所示。
編碼端GRU-RNN每個時間步的輸入依次為相應幀的對數功率譜特征,GRU-RNN層通過更新門和重置門的控制捕捉帶噪語音特征的序列信息,并且逐層抑制背景噪聲的影響,最終輸出一個包含整個輸入序列語音信息的高層特征表示向量。解碼端不同于神經機器翻譯中的“多對多”的輸出,語音增強系統(tǒng)是逐幀進行語音增強,因此文中解碼器最終只輸出當前待增強語音的干凈語音特征估計,即只輸出一幀。解碼器將當前待增強語音信號特征和解碼器的輸出作為輸入,經過GRU運算以充分挖掘上下文信息與當前幀之間的聯系,輸出對當前幀的干凈語音特征估計。這一過程類似于人類在復雜聽覺環(huán)境中結合上下文信息處理所收到的語音信息。
圖4 深度門控循環(huán)編解碼網絡
為合成實驗需要的訓練集數據,該文按照每人10條語音的標準,從中文語音數據集FREE ST Chinese Mandar in Corpus隨機抽取700名說話人的語音,共計7000條語音作為干凈訓練語音。噪聲數據使用文獻[19]中的100種噪聲。針對每條干凈語音,隨機選取兩種不同噪聲,并隨機從-10 db,-5 db,0 db,5 db,10 db當中隨機選取一種作為全局信噪比,將語音與噪聲數據合成,得到14 000條數據。測試集語音數據按照每人5條語音的標準,隨機選取不同于訓練集數據的30位說話人的語音,得到150條干凈語音數據。測試集噪聲數據使用noisex-92數據庫[20]中的babble、m109、leopard,volvo和machinegun噪聲。將選取的語音數據和噪聲數據按照-6 db、0 db和6 db 這3種信噪比進行合成,構成2250條測試集帶噪語音數據。
實驗所提取的特征是256維的對數功率譜,對數功率譜特征是語音增強實驗提取的常用特征。為驗證所提出方法的性能,實驗選取DNN語音增強方法[3](簡記為DNN)和無編解碼架構的GRU(簡記為GRU)方法,對比所提出的門控循環(huán)編解碼網絡語音增強方法(簡記為EN-DE-GRU-X,X代表解碼器層數)。DNN網絡層數為4,激活函數為ReLU,每個隱藏層包含2048個節(jié)點,并且每個隱藏層之后接一個dropout層,dropout層的比例為0.2,網絡輸入為相鄰連續(xù)7幀對數功率譜特征。GRU網絡層數為2,每層包含1024個節(jié)點,網絡輸入為相鄰連續(xù)15幀對數功率譜特征。該文基線方法、數據的具體設置與文獻[21]的實驗設置相同。感知語音質量感知語音質量(perceptual evaluation of speech quality,PESQ)[22]和短時客觀可懂度(short time objective intelligibility,STOI)[23]是該文使用的評價指標。
表1列出了使用DNN、GRU和GRU編解碼網絡在3種不同信噪比和6種不同噪聲情況下進行語音增強的平均PESQ和平均STOI值??梢姡谛旁氡?、噪聲和說話人失配的情況下,經GRU和GRU編解碼網絡增強的語音平均PESQ值和STOI值均要明顯優(yōu)于經DNN增強的語音平均PESQ值和平均STOI值。這表明DNN對語音序列信號建模能力有限,無法對相鄰多幀語音特征中所包含的上下文信息進行有效建模,GRU和GRU編解碼網絡均可以更好利用上下文信息。
對比GRU和GRU編解碼網絡,解碼器網絡為兩層的GRU編解碼網絡,在絕大多數情況下均取得了最佳的語音增強效果。這表明在語音增強的過程中,在充分利用上下文信息的同時,通過引入編碼器解碼器架構深入挖掘當前待增強幀和上下文信息的聯系,可以有效提升語音增強性能。
對比GRU編解碼網絡解碼器的層數。實驗最初設置解碼器層數為1,發(fā)現其語音增強效果相較于GRU方法在多數情況下有所下降。表明,1層解碼器的語音增強性能有限。這是因為解碼器的輸入為當前待增強語音幀,其中包含有噪聲信息,而通過堆疊網絡層可以逐層消除其中噪聲信息的干擾。因此,對解碼器網絡進行堆疊,并發(fā)現當解碼器層數大于兩層時,網絡會出現過擬合現象,所以最終設置解碼器層數為兩層。
直觀比較不同方法的語音增強性能。圖5和圖6分別給出了,第3號說話人的原始語音,和被0 db m109污染后的含噪語音,以及經不同方法處理后的時域波形圖和語譜圖。將圖5(c)~圖5(f)分別與圖5(a)和圖5(b)對比,可見使用GRU和GRU編解碼網絡處理后的語音失真,優(yōu)于經過DNN增強得到的語音的波形失真。對比圖5(a),圖5(f)、圖5(e)、圖5(d)表明經解碼器層數為2層的GRU編解碼網絡增強得到的語音波形圖與干凈語音的波形圖最為接近。對比圖6各圖,GRU和GRU編解碼網絡相較于DNN更能有效處理含噪語音中的噪聲部分,解碼器層數為2層的GRU編解碼網絡具有最佳的抑制噪聲和保存含噪語音中語音成分的能力。實驗結果充分表明,經過GRU編解碼網絡增強的語音相較于經過DNN增強和直接應用GRU增強的語音更接近原始的干凈語音。
表1 不同方法的語音增強結果
圖5 時域波形圖比較
圖6 對數功率譜比較
該文借鑒人類聽覺感知的原理,采用編解碼器架構,通過深入挖掘當前幀與上下文信息之間關聯,以類比人類在聽覺環(huán)境中處理語音信號的過程,提出利用門控循環(huán)編解碼網絡的語音增強方法。實驗結果表明,文中所提出的方法相較于基于DNN的語音增強方法和直接應用GRU-RNN的語音增強方法,增強語音的質量與可懂度更高,語音增強的性能更好。在接下來的工作中,筆者將更多地關注人類聽覺處理的相關機制,并結合深度學習方法的優(yōu)勢,設計更優(yōu)秀的語音增強網絡模型。