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