王小軍,馬建芬+,張朝霞
(1.太原理工大學(xué) 信息與計算機學(xué)院,山西 晉中 030600;2.太原理工大學(xué) 物理與光電工程學(xué)院,山西 晉中 030600)
目前已經(jīng)提出了許多去混響技術(shù)[1-5]。一種直接的方法是估計房間脈沖響應(yīng)(RIR)的反濾波器[6]。然而,這種方法通常需要一個最小相位假設(shè),而在實踐中幾乎很難滿足這一假設(shè)[6]。另外一些研究試圖通過同態(tài)變換來分離語音和混響[7,8]。然而當以人的聽覺系統(tǒng)為目標時,它們的去混響效果并不好。
近年來,深度神經(jīng)網(wǎng)絡(luò)(DNN)[9,10]得益于其強大的回歸能力,也被利用在語音增強[11]、語音分離[12]中。根據(jù)訓(xùn)練目標的不同,監(jiān)督式語音分離方法可以分為基于掩蔽的方法和基于幅度譜估計的方法。其中基于幅度譜估計[13]的方法直接從混響語音中估計出純凈語音的幅度譜結(jié)合原始的相位信息來恢復(fù)語音,而基于掩蔽的方法[14]通過計算每個T-F單元內(nèi)目標語音與混響語音的功率之比來估計純凈語音的幅度譜。而單一使用某種方法可能會使最終結(jié)果中存在一些“灰色區(qū)域”[15],影響最終去混響的效果。
本文將基于掩蔽和基于幅度譜估計的方法整合為一個多目標DNN。并且進一步研究在特征提取階段不同RT60下設(shè)置不同的幀移系數(shù)(S)和語音上下文窗系數(shù)(W)對去混響語音質(zhì)量的影響。研究表明一方面在強混響條件下,當S取值較小時,即使以增加計算復(fù)雜度為代價,也無法獲得良好的去混響效果。另一方面,在特征提取時加大W的值往往會降低RT60下去混響語音的質(zhì)量?;谶@些研究結(jié)果本文采用S和W作為關(guān)鍵的特征提取參數(shù),并結(jié)合多目標DNN設(shè)計了一種混響時間感知DNN,同時考慮兩個系數(shù)對語音去混響的作用。通過實驗對比,進一步探討本文方法是否可以提高語音去混響的效果。
在本節(jié)1.1和1.2中將從理論方面論述幀移系數(shù)和語音上下文窗系數(shù)在語音去混響系統(tǒng)中的作用。在1.3中將S和W兩系數(shù)作為關(guān)鍵參數(shù)設(shè)計了一個混響時間感知DNN。
目前大多數(shù)去混響算法使用短時傅里葉變換(STFT),用Xn(ejω)[16]表示,它同時在時間和頻率兩個維度上對信號進行采樣,以獲得語音的離散時間頻率表示。式(1)對Xn(ejω) 進行采樣,時間速率為(即幀移)R
(1)
其中,r表示幀的索引下標,w(rR-m) 表示分析窗口,幀移系數(shù)R在文獻[17]中稱為Xn(ejω) 的時間采樣率,與信號x(n) 的時間采樣率Ts不同。
在傳統(tǒng)的STFT時間采樣中,為了方便解決實際問題,幀移系數(shù)通常固定為幀長的一半[18],然而,在混響環(huán)境中,傳統(tǒng)的方法是低效的[1,2],因為它使用的是固定的時間分辨率,沒有考慮到不同混響環(huán)境下相鄰幀之間的相互影響。對于較弱的混響,反射的聲音到達聲音接收器所需的時間較短,導(dǎo)致時域內(nèi)的密集疊加。對于強混響來說密集的幀率是不需要的,反而需要提供較高的時間分辨率,因此合理的方法應(yīng)該是根據(jù)不同的混響程度采取不同的去混響策略。
在特征提取階段,考慮到語音信號的時間連續(xù)性,總是把當前幀和相鄰幀的聲學(xué)特征合并為一個特征向量作為DNN的輸入,特征向量可以表示為
Y=[y(l-d,1),…,y(l-d,k),…,y(l,1),…,
y(l,k),…,y(l+d,1),…,y(l+d,k)]
(2)
其中,y(l,k) 表示混響語音信號的第l幀位于頻帶k的幅度譜分量。d表示相鄰幀的數(shù)量,傳統(tǒng)方法中d的值總是被人為設(shè)置為固定值。在最近提出的基于DNN的增強框架[11]中,證明了使用更大的d值可以提高增強語音的連續(xù)性。但是在混響條件下,幀間相關(guān)性取決于RT60的值,如式(3)所示。在混響環(huán)境中,源語音x(n) 和相應(yīng)的麥克風(fēng)接收信號y(n) 可以通過以下方式進行關(guān)聯(lián)
y(n)=x(n)*h(n)
(3)
其中,h(n) 表示RIR,*表示卷積運算。y(n) 的自相關(guān)可以有如下表示
φyy(k)=φxx(k)*Rh(k)
(4)
傳統(tǒng)的基于DNN的語音去混響方法中,在訓(xùn)練階段,回歸DNN[14]通過一組多條件數(shù)據(jù)進行訓(xùn)練,這些數(shù)據(jù)由對數(shù)功率譜(LPS)表示的混響語音和純凈語音組成。在去混響階段,將訓(xùn)練好的DNN與輸入語音的LPS特征進行非線性映射,生成相應(yīng)的增強LPS特征。所需的相位可以直接從原始語音中提取,因為人耳對此類信息不敏感。最后用估計的幅度譜和混響語音相位來重建語音波形[18]。
為了提高系統(tǒng)的性能和增強系統(tǒng)的魯棒性,本文提出了一種環(huán)境感知方法,利用不同混響環(huán)境下不同的幀間疊加和幀間相關(guān)性的特點,設(shè)計了一個混響時間感知DNN,在將對數(shù)功率譜特征(LPS)輸入給訓(xùn)練好的DNN之前,根據(jù)混響程度的不同,采用兩個RT60相關(guān)參數(shù),即語音幀的幀移系數(shù)(S)和DNN輸入處的語音上下文窗系數(shù)(W)進行特征提取。
如圖1所示,將S和W這兩個關(guān)鍵的設(shè)計參數(shù)集成到訓(xùn)練和去混響階段。在訓(xùn)練和去混響階段,S和W取決于語句級別的RT60,而RT60估計器之后是一個查找表,它根據(jù)估計的RT60值得到最佳的S和W,用于去混響階段的特征提取。后續(xù)3.2.1和3.2.2將詳細介紹這兩個關(guān)鍵參數(shù)如何影響實驗結(jié)果,在3.2.3中提供查找表用于實驗。
圖1 系統(tǒng)總體流程
目前基于DNN的語音去混響的訓(xùn)練目標包括時頻掩蔽和語音幅度譜估計,單一的目標都只能描述語音的一部分特征,并不能完美估計出干凈語音,因此提出了一種基于DNN的掩蔽與幅度譜聯(lián)合估計的方法,通過多目標DNN,輸入特征同時計算兩個不同的目標:語音幅度譜和理想比例掩蔽(IRM),網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 多目標DNN
在語音增強階段首先使用混響信號的短時傅里葉變換(STFT)來計算輸入特征。在采樣頻率為16 kHz的情況下,根據(jù)RT60估計器的值來確定幀移系數(shù)(S)和語音上下文窗系數(shù)(W),從而得到LPS特征,網(wǎng)絡(luò)的訓(xùn)練目標為IRM和純凈語音幅度譜,其中IRM的定義如下
(5)
假設(shè)S(t,f) 和N(t,f) 不相關(guān)的情況下,S(t,f)2和N(t,f)2分別表示T-F單元內(nèi)的語音能量密度和混響能量密度,在計算幅度譜估計和IRM掩蔽過程中使用最小均方誤差作為代價函數(shù)[13,14],并對每個目標賦予相同的權(quán)值。
本實驗使用的神經(jīng)網(wǎng)絡(luò)有兩個隱藏層,每個隱藏層具有相同數(shù)量的節(jié)點2048個,隱藏層的激活函數(shù)為整流線性單元(ReLU),在輸出層中,由于幅度譜的值均大于0,所以對于純凈語音的幅度譜估計,輸出變換函數(shù)為ReLU,對于IRM目標,由于IRM(t,f) 的值都在[0,1]之間,所以選擇sigmoid作為激活函數(shù)。預(yù)訓(xùn)練的學(xué)習(xí)率為0.38,而后進行微調(diào),mini-batch設(shè)置為128。為了防止過擬合將Dropout的值設(shè)置為0.18。
(6)
其中,h(·) 是MLP[10]所代表的變換函數(shù)。MLP只有一個由1600個ReLU節(jié)點組成的隱藏層,以估計值與目標值之間的MSE作為損失函數(shù),公式如下
(7)
本節(jié)主要介紹實驗配置及語音評價標準,在3.1中將本文提出的多目標DNN與傳統(tǒng)的單目標DNN在同等條件下進行實驗對比,在3.2中使用控制變量法在多目標DNN的基礎(chǔ)上得到不同RT60下最優(yōu)的S和W的值,進而建立混響時間感知DNN并將新的網(wǎng)絡(luò)模型與前兩種模型進行實驗對比。
實驗在尺寸為6 m×4 m×3 m(長寬高)的仿真房間中進行。揚聲器和麥克風(fēng)的位置分別在(2,3,1.5) m和(4,1,2) m處。用像源法(ISM)[2]模擬了10種RIR,RT60范圍為0.1 s~1.0 s,增量為0.1 s。為了產(chǎn)生一個高質(zhì)量的DNN模型,選擇來自TIMI語料庫隨機的480條訓(xùn)練話語與生成的RIR卷積以構(gòu)建一個大的訓(xùn)練集合,從而產(chǎn)生大約6 h的混響語音。在測試階段,為了測試DNN在未知環(huán)境下的魯棒性,將RT60的范圍設(shè)置為0.1 s~1.0 s,增量設(shè)置為0.05 s(而不是0.1 s),產(chǎn)生19種不同的RIR與從TIMIT測試集中隨機選取的50個話語卷積構(gòu)建測試集。形成了19×50條含混響的語音測試集。
為了對比網(wǎng)絡(luò)結(jié)構(gòu)對于去混響系統(tǒng)的影響,此部分并沒有涉及到1.1及1.2中的混響時間感知方法。在特征提取階段使用固定的S和W的值,通過實驗比較多目標DNN相對于單目標DNN的語音質(zhì)量感知評價(PESQ)[19]和短時客觀可懂度(STOI)[20]得分。
語音以16 kHz采樣。幀長度為32 ms,并且根據(jù)常規(guī)幀移速率策略將幀移設(shè)置為16 ms(即幀移系數(shù)=幀長度的一半),輸入的語音上下文窗口大小設(shè)置為7幀。計算每個重疊加窗幀的512點DFT。然后用257維對數(shù)功率譜特征向量訓(xùn)練DNN。最后使用PESQ和STOI兩種指標來評價去混響結(jié)果。
使用Rev表示混響語音,使用S_MAP和S_IRM分別表示基于幅度譜估計和IRM算法通過DNN訓(xùn)練得到的增強語音,將本文提出的DNN模型表示為Muti_DNN,搭建過程及參數(shù)設(shè)置參見論文第2節(jié)。S_MAP和S_IRM的搭建的過程參考Kaldi[16],有2個隱藏層,每層2048個節(jié)點。預(yù)訓(xùn)練的學(xué)習(xí)率為0.4。后續(xù)進行微調(diào),學(xué)習(xí)率為0.000 08。mini-batch設(shè)置為128,輸出層的激活函數(shù)為線性(linear)函數(shù),其它層的激活函數(shù)都設(shè)置為整流線性單元(ReLU)。在3個隱藏層之后添加了0.18的dropout可以有效的防止過擬合。
表1,表2為3種方法的PESQ和STOI得分對比,方法A表示S_MAP,方法B表示S_IRM,方法C表示Muti_DNN,在6小時的訓(xùn)練數(shù)據(jù)下,傳統(tǒng)的單目標DNN和所提出的多目標DNN在不同RT60的測試集上的平均PESQ和STOI結(jié)果見表1和表2。與未經(jīng)處理的混響語音相比,在所有RT60情況下,基于多目標DNN的去混響系統(tǒng)的PESQ平均得分提高了0.34,高于其它兩種方法。這一結(jié)果表明,所提出的多目標DNN系統(tǒng)同時具有強大的回歸和泛化能力。此外,與單目標DNN相比,本文提出的DNN模型在所有RT60下STOI得分提高了4%~25%,多目標DNN的另一個優(yōu)點是在所有RT60下都能提高語音質(zhì)量的2種客觀指標。而傳統(tǒng)的單目標DNN在低RT60下與原始混響語音相比,出現(xiàn)了一些PESQ和STOI得分下降的情況。
表1 PESQ得分對比
表2 STOI得分對比
以下實驗設(shè)置與3.1相同。使用6小時的混響語音作為訓(xùn)練數(shù)據(jù)集來訓(xùn)練DNN模型。在3.2.1和3.2.2中,首先將訓(xùn)練集中的語音根據(jù)的RT60的值進行分類,對每種混響語音使用控制變量法,在特征提取階段設(shè)置固定的S或W其中一個的值,改變另一個值來訓(xùn)練多目標DNN,分別建立了幀移系數(shù)感知DNN(語音上下文窗系數(shù)為固定值)和語音上下文感知DNN(幀移系數(shù)為固定值),然后使用訓(xùn)練好的DNN對各種RT60值下的混響語音進行去混響,去混響后的語音使用PESQ進行評價。在3.2.3中建立
了一個S和W值的查找表。在3.2.4中同時考慮S和W設(shè)計了混響時間感知DNN,并進行了一系列對比實驗。
3.2.1 幀移系數(shù)感知DNN(SA_DNN)
為了研究幀移系數(shù)在去混響算法中所起的作用,本實驗將語音上下文窗系數(shù)設(shè)置為7幀,將幀移系數(shù)分別設(shè)置為2 ms、4 ms、8 ms、16 ms、32 ms。粗體字的數(shù)字表示每種RT60下的平均PESQ分數(shù)的最大值。Rev表示未經(jīng)處理的混響語音。
赫施在《解釋的有效性》中說:“沒有人能夠確定地重建別人的意思,解釋者的目標不過是證明某一特定的讀解比另一種讀解更為可能罷了。在闡釋學(xué)中,證明即是去建立種種相對可能性的過程?!?/p>
從表3中的數(shù)據(jù)可以看出,去混響的效果受幀移系數(shù)的影響很大,因為這些粗體數(shù)字顯示最佳幀移隨RT60變化而變化。在RT60≤0.8 s的條件下,大部分RT60下的最佳幀移為8 ms,在RT60≥0.8 s的情況下,S=16 ms(傳統(tǒng)幀移系數(shù))分別優(yōu)于2 ms、4 ms和8 ms。在這種情況下,即使以增加計算復(fù)雜度為代價,較低的幀移也無法獲得更好的去混響效果。這結(jié)果與1.1中的分析一致。在幀移系數(shù)大于16 ms的條件下,即幀移系數(shù)被設(shè)置為32 ms時與混響語音相比,也并沒有提高RT60≤0.7 s的PESQ分數(shù)。這說明去混響算法在幀率不足的情況下無法準確重建波形,影響了去混響效果。
表3 不同RT60下不同幀移系數(shù)的PESQ得分
3.2.2 語音上下文感知DNN(WA_DNN)
為了研究語音上下文窗系數(shù)在去混響算法中所起的作用,本實驗將幀移系數(shù)設(shè)置為8 ms,將語音上下文窗系數(shù)分別設(shè)置為3 frame、5 frame、7 frame、9 frame、11 frame。粗體的數(shù)字表示在DNN中,每種RT60下的平均PESQ分數(shù)的最大值。Rev表示未經(jīng)處理的混響語音。
從表4中可以看出,粗體數(shù)字代表的最佳上下文系數(shù)隨RT60變化而變化,一個明顯的趨勢是RT60的值越大,就需要更多的上下文信息。在RT60=0.1 s時,上下文窗設(shè)置為5 frame、7 frame、9 frame、11 frame得到的PESQ呈嚴格的下降趨勢,盡管它們之間的差異很小。說明在混響程度較低時更多的上下文信息不能獲得更高質(zhì)量的增強語音。這可以用1.2中的理論分析來解釋。而在嚴重混響的條件下(如RT60=1 s),由于幀間相關(guān)性強,使用更多的語音上下文信息會提高PESQ的得分。此外,當混響程度較高時,W為3frame會導(dǎo)致嚴重的語音上下文信息丟失從而使PESQ的得分幾乎落后與其它所有相同RT60下的DNN。
表4 不同RT60下不同語音上下文窗系數(shù)的PESQ得分
3.2.3 RT60查找表的建立
根據(jù)3.2.1和3.2.2中的實驗結(jié)果,同時考慮S和W的值對語音去混響的影響,設(shè)計了RT60查找表,見表5。其中不同RT60對應(yīng)的最佳S和W的值由表3和表4得出。
表5 RT60查找
3.2.4 混響時間感知DNN(RA_DNN)
最后,同時將S和W同時作為關(guān)鍵參數(shù)設(shè)計成RA_DNN 并給出了實驗結(jié)果來評估RA_DNN在實際情況下的去混響表現(xiàn),首先在去混響階段使用了RT60估計器[12]得到語句級別的RT60估計值,然后將得到RT60估計值四舍五入到0.1的倍數(shù),通過查找RT60表找到最佳的S和W的值來進行特征提取。另外隨機抽取了100條不在訓(xùn)練集中的測試語音來測試RA_DNN在未知混響下的魯棒性,使用RA_DNN(方法3)與單獨考慮S或W的SA_DNN (方法1)和WA_DNN(方法2)進行對比實驗。結(jié)果如下:
從表6和表7中可以看出。RA_DNN系統(tǒng)在所有RT60,包括極弱(RT60=0.1 s)和嚴重(RT60=1 s)混響情況下,比SA_DNN和WA_DNN實現(xiàn)了更高的PESQ和STOI的得分。結(jié)果表明,所提出的RA-DNN具有足夠的魯棒性,能夠同時處理輕度混響和重度混響,而這在以前的算法[2,5]中是困難的。具體來說,在RT60=0.1 s時,與未處理的混響語音相比,本文提出的RA_DNN的PESQ和STOI分別提高了0.39 dB和0.07 dB,而WA_DNN的PESQ和STOI僅提高了0.14 dB和0.06 dB。并且隨著RT60值的不斷升高RA_DNN的PESQ和STOI得分的下降趨勢也小于SA_DNN和WA_DNN,說明RA_DNN具有更強的環(huán)境適應(yīng)性。
表6 3種方法的STOI得分對比
表7 3種方法的PESQ得分對比
圖3展示了一條測試語句在RT60=0.6 s時的語譜圖,圖3(a)表示純凈語音PESQ=4.50,圖3(b)表示混響語音PESQ的值為2.24,圖3(c)為使用SA_DNN進行去混響后的語音的語譜圖,PESQ的值為2.74,圖3(d)為使用WA_DNN進行去混響后的語音的語譜圖,PESQ的值2.70。圖3(e)為使用RA_DNN進行去混響后的語音的語譜圖,PESQ的值3.07。
圖3 語音信號語譜圖對比
從圖3中可以看出,使用SA_DNN得到的結(jié)果圖3(c)在低頻部分的諧波結(jié)構(gòu)是非常模糊的,PESQ得分提高了0.5,而使用WA_DNN方法得到的結(jié)果圖3(d)無法恢復(fù)大部分的中頻信號,PESQ得分提高了0.46,而RA_DNN對混響語音的低頻和中頻信號都恢復(fù)的比較明顯,條紋清晰,基線明顯,PESQ的得分提高了0.83。因此可以得出結(jié)論通過改變不同混響程度下特征提取時的S和W的值,可以達到優(yōu)化語音去混響的效果。
本文利用基于DNN的回歸模型,將傳統(tǒng)的基于幅度譜估計的方法和基于IRM的方法進行結(jié)合,提出了多目標DNN,同時估計純凈語音幅度譜和IRM掩蔽采用最小均方誤差作為MLP的代價函數(shù),將兩種目標結(jié)合得到最終的幅度譜估計,對混響語音進行去混響。多目標DNN相比單目標DNN在每種RT60下的混響語音測試中都能提高語音質(zhì)量和可懂度,驗證了所提出的方法具有強大的回歸能力和魯棒性。接下來展示了幀移系數(shù)和語音上下文窗系數(shù)如何影響語音的去混響結(jié)果,通過引入與RT60相關(guān)的幀移系數(shù)和語音上下文窗系數(shù),提出了RA_DNN。對比結(jié)果表明,通過考慮不同RT60下的時間分辨率和幀間相關(guān)性,所設(shè)計的DNN模型在包括極弱(RT60=0.1 s)混響和強混響(RT60=1 s)在內(nèi)的大范圍RT60下均優(yōu)于傳統(tǒng)方法。今后可以引入注意力機制,對RT60相關(guān)參數(shù)進行更加高效且準確的估計。