董宏越,馬建芬+,張朝霞
(1.太原理工大學(xué) 信息與計(jì)算機(jī)學(xué)院,山西 晉中 030600; 2.太原理工大學(xué) 物理與光電工程學(xué)院,山西 晉中 030600)
語音增強(qiáng)是從含噪語音中估計(jì)純凈語音,從而得到高質(zhì)量和可懂度的增強(qiáng)語音[1]。多名研究者提出了基于監(jiān)督學(xué)習(xí)的算法[2-7]進(jìn)行語音增強(qiáng)。其中,基于時(shí)域波形映射的深度學(xué)習(xí)語音增強(qiáng)算法[8],通過全卷積神經(jīng)網(wǎng)絡(luò)可以直接將原始含噪語音作為輸入,并直接輸出時(shí)域增強(qiáng)語音,成為了語音增強(qiáng)領(lǐng)域研究的熱門。但由于在時(shí)域中,背景噪聲和語音之間沒有明顯的可辨別性,如何設(shè)計(jì)合適的損失函數(shù)來提高全卷積神經(jīng)網(wǎng)絡(luò)的去噪能力成為其中一個(gè)難點(diǎn)。近些年研究發(fā)現(xiàn),許多語音增強(qiáng)算法忽略了語音的諧波結(jié)構(gòu),無法有效去除諧波之間的噪聲,因此具有較差的增強(qiáng)性能[9,10]。而現(xiàn)有改進(jìn)的基于時(shí)域波形映射的語音增強(qiáng)方法[11,12],是通過使用頻譜幅度損失函數(shù)或直接采用評(píng)價(jià)指標(biāo)相關(guān)的損失函數(shù),來提高語音增強(qiáng)的性能。這些方法還沒有考慮到直接恢復(fù)語音的諧波結(jié)構(gòu),導(dǎo)致這些算法在低信噪比條件下仍然不能獲得讓人滿意的增強(qiáng)效果。
因此,為解決現(xiàn)有基于時(shí)域波形映射的語音增強(qiáng)算法沒有考慮到語音的諧波結(jié)構(gòu),導(dǎo)致具有較差語音增強(qiáng)性能的問題。我們提出了一種基于時(shí)域波形映射-頻域諧波損失的語音增強(qiáng)算法,通過使用本文提出的頻域諧波損失函數(shù),將語音諧波結(jié)構(gòu)的恢復(fù)納入神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程之中,來進(jìn)一步提高語音增強(qiáng)的性能。具體的,將諧波噪聲模型(HNM)對(duì)純凈語音進(jìn)行建模得到的頻域中的HNM分量作為訓(xùn)練目標(biāo),通過最小化頻域諧波損失,訓(xùn)練波形映射全卷積神經(jīng)網(wǎng)絡(luò),用訓(xùn)練得到的網(wǎng)絡(luò)進(jìn)行語音增強(qiáng)。通過實(shí)驗(yàn)對(duì)比,進(jìn)一步探討本文方法的語音增強(qiáng)性能。
假設(shè)含噪語音y由純凈語音s和加性噪聲d組成,表示為
y=s+d
(1)
傳統(tǒng)的基于時(shí)域的語音增強(qiáng)方法,如圖1所示,可以描述為:是通過訓(xùn)練全卷神經(jīng)網(wǎng)絡(luò)(FCN)的參數(shù)集合θ構(gòu)造一個(gè)高度復(fù)雜的非線性函數(shù)fθ,使得損失函數(shù)Er
圖1 基于時(shí)域波形映射的語音增強(qiáng)算法
(2)
(3)
但傳統(tǒng)的方法只是通過最小化式(2)所示的時(shí)域純凈語音和估計(jì)純凈語音信號(hào)之間的均方誤差(MSE)損失來訓(xùn)練網(wǎng)絡(luò)。傳統(tǒng)FCN-MSE算法語音增強(qiáng)對(duì)比語譜圖如圖2所示,由于在時(shí)域中,背景噪聲和語音之間沒有明顯的可辨別性,使用時(shí)域損失會(huì)存在如圖2(c)圓圈部分語音失真的問題。并且由于這種損失函數(shù)中訓(xùn)練目標(biāo)的設(shè)置只是簡單使用純凈語音的波形,沒有考慮到語音的諧波結(jié)構(gòu)(在語譜圖上,諧波結(jié)構(gòu)顯示為橫紋),如圖2中方塊位置,增強(qiáng)語音相比純凈語音,沒有明顯的諧波結(jié)構(gòu),橫紋不明顯,很難去除諧波之間的噪聲,進(jìn)一步影響了其語音增強(qiáng)的性能。
圖2 FCN-MSE算法語音增強(qiáng)對(duì)比語譜圖
為解決上述傳統(tǒng)方法使用損失函數(shù)不能很好地恢復(fù)語音的諧波結(jié)構(gòu),導(dǎo)致具有較差語音增強(qiáng)性能的問題。本文利用諧波噪聲模型(HNM)對(duì)語音進(jìn)行建模,提出了頻域諧波損失函數(shù),將諧波結(jié)構(gòu)的恢復(fù)納入到訓(xùn)練階段的網(wǎng)絡(luò)學(xué)習(xí)過程中,以提高增強(qiáng)語音的質(zhì)量和可懂度。
本文提出的基于時(shí)域波形映射-頻域諧波損失的語音增強(qiáng)算法的實(shí)驗(yàn)框架如圖3所示,它包括兩個(gè)階段:訓(xùn)練階段和增強(qiáng)階段。在訓(xùn)練階段,將含噪語音進(jìn)行分幀,然后將含噪語音幀作為全卷積神經(jīng)網(wǎng)絡(luò)(FCN)的輸入,使用HNM對(duì)純凈語音建模得到的純凈語音頻域諧波分量和語音殘余分量作為損失函數(shù)中的訓(xùn)練目標(biāo)來訓(xùn)練FCN。然后通過最小化頻域諧波損失來得到訓(xùn)練好的FCN。在增強(qiáng)階段,通過使用訓(xùn)練好的FCN將輸入的時(shí)域含噪語音幀映射為時(shí)域增強(qiáng)語音幀。最后將所有的增強(qiáng)語音幀拼接合成,得到完整的增強(qiáng)語音語句。
圖3 基于時(shí)域波形映射-頻域諧波損失的語音增強(qiáng)算法
在本章中主要對(duì)語音的諧波噪聲模型建模、頻域諧波損失函數(shù)的構(gòu)建和FCN訓(xùn)練這3個(gè)部分進(jìn)行介紹。
在語音分析和合成領(lǐng)域,諧波噪聲模型(HNM)模型[13]是一種常用的語音波形分析和合成模型,使用HNM對(duì)諧波結(jié)構(gòu)進(jìn)行建??梢燥@著提高合成語音的可懂度和質(zhì)量。因此在本文中,我們打算使用HNM模型對(duì)純凈語音進(jìn)行建模,將HNM模型建模后得到的頻域諧波分量和語音殘余分量作為損失函數(shù)中的訓(xùn)練目標(biāo)。
HNM可以將語音建模為諧波部分和噪聲部分。為了區(qū)分HNM中的噪聲部分和傳統(tǒng)意義上的噪聲,將HNM中的噪聲部分稱為語音殘余。因此,語音信號(hào)s(n)可以寫成
s(n)=h(n)+r(n)
(4)
式中:h(n)和r(n)分別代表諧波分量和語音殘余。
諧波分量代表語音中大部分的濁音語音信息,并且可以建模為基頻f0及具有其諧波頻率的一系列正弦波的加權(quán)疊加,即
(5)
φh,i(n)由下式得到
(6)
語音殘余通過在時(shí)域語音中減去諧波分量來獲得。對(duì)于純凈的語音s(n),語音殘余通常為非周期性語音,代表語音中大部分的清音,例如唇齒摩擦聲、抽吸噪聲和聲門湍流,而對(duì)于含噪語音y(n),語音殘余包含非周期性語音和背景噪聲。
但是,因?yàn)樵跁r(shí)域中語音的諧波分量和語音殘分量的波形與背景噪聲波形相比,并沒有明顯的可辨性,直接將時(shí)域諧波分量和語音殘余分量用作訓(xùn)練目標(biāo),很難使網(wǎng)絡(luò)學(xué)習(xí)恢復(fù)語音的諧波結(jié)構(gòu)。為此,我們需要將諧波噪聲模型建模得到的時(shí)域HNM分量通過短時(shí)傅里葉變換轉(zhuǎn)換到頻域。式(4)的相應(yīng)STFT表示為
S(l,k)=H(l,k)+R(l,k)
(7)
式中:l和k分別為幀索引和頻率索引。大寫字母S(l,k)、H(l,k)和R(l,k)表示s(n)、h(n)和r(n)對(duì)應(yīng)傅里葉變換后的時(shí)頻分量,可以由幅度和相位表示成如下具體形式
S(l,k)=As(l,k)ejΦs(l,k)
(8)
H(l,k)=Ah(l,k)ejΦh(l,k)
(9)
R(l,k)=Ar(l,k)ejΦr(l,k)
(10)
其中,Ah(l,k)為諧波幅度,Ar(l,k)為語音殘余幅度,Φh(l,k)和Φr(l,k)為對(duì)應(yīng)的相角。
可以看出頻域上的諧波分量H(l,k)和語音殘余分量R(l,k)具有明顯的時(shí)頻特性,將其作為損失函數(shù)的訓(xùn)練目標(biāo),訓(xùn)練網(wǎng)絡(luò)來最小化頻域諧波損失,可以使網(wǎng)絡(luò)更好地學(xué)習(xí)語音的諧波結(jié)構(gòu),消除諧波之間的噪聲,以提高增強(qiáng)語音的質(zhì)量和可懂度。
(11)
(12)
(13)
式中:S(l,k)是純凈語音通過短時(shí)傅里葉變換后得到的時(shí)頻分量。N是離散傅里葉變換(DFT)的長度,i∈{1,2,…,I}是諧波的索引。使用具有幅度壓縮的基音估計(jì)濾波器(PEFAC)[14]來計(jì)算基頻f0。然后,通過從S(l,k)中減去H(l,k)來獲得頻域語音殘余分量R(l,k)。
全卷積神經(jīng)網(wǎng)絡(luò)(FCN)的搭建參考了文獻(xiàn)[15],其由編碼器和解碼器組成,結(jié)構(gòu)如圖4下部所示。編碼器包括9層卷積,其中第一層的步幅為1,而其余8層的步幅為2。解碼器由反卷積層組成,由于來自編碼器的跳躍連接將每個(gè)編碼層連接到其同源解碼層,因此解碼器中通道數(shù)等于編碼器中相應(yīng)對(duì)稱層中的通道的兩倍。在網(wǎng)絡(luò)中除了輸出層,每個(gè)卷積層之后使用ReLU激活函數(shù),輸出層之后使用Tanh激活函數(shù),因此所有的輸出波形都被歸一化到[-1,1]的范圍。訓(xùn)練語音被分幀為幀長2048的語音幀作為網(wǎng)絡(luò)的輸入,幀移為256。網(wǎng)絡(luò)的輸出同樣是幀長為2048的語音幀。具體網(wǎng)絡(luò)的尺寸為:2048×1(輸入),2048×64,1024×64,512×64,256×128,128×128,64×128,32×256,16×256,8×256,16×512,32×512,64×256,128×256,256×256,512×128,1024×128,2048×128,2048×1(輸出)。使用Adam優(yōu)化器訓(xùn)練網(wǎng)絡(luò),初始學(xué)習(xí)率設(shè)置為0.001,在每個(gè)時(shí)期之后,學(xué)習(xí)率將呈指數(shù)下降。
圖4 時(shí)域波形映射-頻域諧波損失的FCN訓(xùn)練流程
在本章中將會(huì)介紹所使用的實(shí)驗(yàn)配置以及評(píng)價(jià)方法。我們會(huì)將本文提出的算法和幾種當(dāng)今流行的語音增強(qiáng)算法在同條件下進(jìn)行比較,通過兩種客觀評(píng)價(jià)方法對(duì)增強(qiáng)語音進(jìn)行評(píng)價(jià),并對(duì)其結(jié)果進(jìn)行分析。
實(shí)驗(yàn)使用從TIMIT語料庫男性和女性說話者的6300句語音中隨機(jī)挑選(每位說話人的10句語音中隨機(jī)挑選一句)的630條語音作為訓(xùn)練集和測試集的純凈語音,其中70%(441條)作為訓(xùn)練集的純凈語音,另外30%(189條)作為測試集的純凈語音。從NOISEX-92數(shù)據(jù)庫中挑選出8種噪聲。其中4種類型(white、babble、factory1、f16)為可見噪聲,其它(pink、factory2、tank、volvo)為不可見噪聲。通過以下方式得到含噪語音:從可見噪聲中隨機(jī)切分出噪聲段與訓(xùn)練集中的純凈語音疊加,得到信噪比分別為-10 dB、-5 dB、0 dB、5 dB的含噪語音,最終訓(xùn)練集包含7056(411×4×4)條含噪語音,約6 h。為模擬更真實(shí)的情況,測試集中使用一些和訓(xùn)練集不匹配的噪聲類型,將2種可見噪聲和4種不可見噪聲隨機(jī)切分出的噪聲段與測試集中的純凈語音疊加,得到信噪比分別為-10 dB、-5 dB、0 dB、5 dB的含噪語音,最終測試集包含4536(189×2×4+189×4×4)條含噪語音,約4 h。實(shí)驗(yàn)中所有語音和噪聲的采樣率均為16 KHz。
語音增強(qiáng)性能的評(píng)價(jià)方法包括質(zhì)量評(píng)價(jià)和可懂度評(píng)價(jià)。質(zhì)量性能可以表示聽者聽語音時(shí)的舒適度,而可懂度性能則表示語音中聽者可以聽懂的程度。為了比較不同方法的語音增強(qiáng)性能,本文采用現(xiàn)階段廣泛使用的兩種客觀評(píng)價(jià)算法評(píng)價(jià)增強(qiáng)語音的質(zhì)量和語音的可懂度,包括:采用語音質(zhì)量感知評(píng)估(PESQ)來評(píng)價(jià)增強(qiáng)語音的質(zhì)量;采用短時(shí)客觀可懂度(STOI)來評(píng)價(jià)增強(qiáng)語音的可懂度。其中PESQ即語音質(zhì)量感知評(píng)估是ITU-T(國際電信聯(lián)盟電信標(biāo)準(zhǔn)化部)推薦的語音質(zhì)量評(píng)價(jià)指標(biāo),其得分范圍為-0.5到4.5,得分越高表示增強(qiáng)語音的質(zhì)量越好;STOI即短時(shí)客觀可懂度,經(jīng)證明與人類語音的可懂度主觀評(píng)分高度相關(guān),其得分范圍為0到1,STOI得分越高,表示增強(qiáng)語音的可懂度越好。
為檢驗(yàn)本文提出的基于時(shí)域波形映射-頻域諧波損失語音增強(qiáng)算法的語音增強(qiáng)性能,將本文提出的方法(FCN-HR、FCN-H)與采用對(duì)數(shù)功率譜(LPS)作為輸入輸出特征的基線DNN方法(DNN-baseline)以及兩種基于時(shí)域波形映射的語音增強(qiáng)方法進(jìn)行語音增強(qiáng)實(shí)驗(yàn)對(duì)比。兩種基于時(shí)域波形映射的方法分別為:基于時(shí)域波形映射-時(shí)域最小均方誤差損失的方法(FCN-MSE)和基于時(shí)域波形映射-頻域幅度損失的方法(FCN-SM)。其中FCN-MSE即為傳統(tǒng)的時(shí)域波形映射方法,直接使用原始波形和增強(qiáng)波形的均方誤差(MSE)來計(jì)算損失。FCN-SM是一種改進(jìn)的方法,使用STFT頻譜幅度損失來訓(xùn)練時(shí)域的增強(qiáng)網(wǎng)絡(luò)。為消除網(wǎng)絡(luò)結(jié)構(gòu)對(duì)增強(qiáng)效果的影響,兩種基于波形映射的增強(qiáng)算法使用與本文提出算法相同的網(wǎng)絡(luò)結(jié)構(gòu),并使用Adam進(jìn)行批量歸一化訓(xùn)練。
通過使用本文提出的方法和上述對(duì)比方法對(duì)測試集中的含噪語音進(jìn)行增強(qiáng),并計(jì)算增強(qiáng)后語音的PESQ和STOI得分。表1和表2分別給出了在4種不同信噪比條件下的語音增強(qiáng)算法PESQ得分和STOI得分,并加入未處理的含噪語音的客觀評(píng)價(jià)得分作為對(duì)比。不同信噪比條件下的最佳結(jié)果均用粗體進(jìn)行了標(biāo)記。
表1 不同信噪比下的平均PESQ結(jié)果
表2 不同信噪比下的平均STOI結(jié)果
結(jié)合表1和表2可以看出,在大多數(shù)情況下,本文提出的FCN-HR和FCN-H方法,相比其余3種對(duì)比方法具有更好的客觀質(zhì)量和可懂度得分,驗(yàn)證提出的方法可以有效提高語音增強(qiáng)的性能。
具體的,在-10 dB條件下DNN-baseline獲得了最高的PESQ分?jǐn)?shù),但其STOI得分很低,結(jié)合主觀聽覺測試,發(fā)現(xiàn)該方法在去除噪聲的同時(shí)消除了太多的語音成分導(dǎo)致增強(qiáng)語音難以理解,因此可懂度得分很低。同時(shí),傳統(tǒng)的時(shí)域波形映射方法FCN-MSE模型相比DNN-baseline的基線方法,在多數(shù)信噪比條件下STOI值有一定提升,這表明在進(jìn)行語音增強(qiáng)時(shí),時(shí)域波形映射對(duì)STOI得分有利。FCN-SM方法在傳統(tǒng)時(shí)域波形映射方法的基礎(chǔ)上改進(jìn)損失函數(shù),使用頻域的損失來訓(xùn)練時(shí)域波形映射網(wǎng)絡(luò),相比傳統(tǒng)時(shí)域波形映射方法進(jìn)一步提升了PESQ和STOI得分,但其在-5 dB和-10 dB的低信噪比條件下,語音可懂度得分仍然較低,存在增強(qiáng)語音主觀聽感上很難聽懂的問題。
而本文提出的FCN-HR和FCN-H方法在-5 dB和-10 dB信噪比條件下,相比兩種基于時(shí)域波形映射的方法,均取得了更好的客觀評(píng)價(jià)得分,在5 dB和10 dB條件下也取得了接近或者更好的得分,驗(yàn)證了本文使用的頻域諧波損失可以進(jìn)一步提高時(shí)域波形映射語音增強(qiáng)算法的性能。值得注意的是,在低信噪比(-10 dB)噪聲條件下,所有對(duì)比方法在STOI得分上均出現(xiàn)了不同程度的失效,而FCN-H取得了最高的STOI得分和令人滿意的PESQ得分,可以看出在低信噪比條件下,語音被背景噪聲嚴(yán)重破壞時(shí),提出的FCN-H方法將語音殘余的比例系數(shù)設(shè)置為0,使網(wǎng)絡(luò)集中注意力恢復(fù)語音的諧波分量,從而可以更好地去除諧波間的干擾噪聲,恢復(fù)對(duì)語音可懂度貢獻(xiàn)更大的濁音段語音。
為了更直觀比較提出的方法與其它方法的語音增強(qiáng)性能,使用上述的5種語音增強(qiáng)算法對(duì)測試集中一段含有factory2噪聲,信噪比為-5 dB的含噪語音進(jìn)行語音增強(qiáng)。然后對(duì)增強(qiáng)語音的語譜圖進(jìn)行比較。
圖5包含純凈語音語譜圖(a)、含噪語音語譜圖(b)、DNN-baseline方法增強(qiáng)語音語譜圖(c)、FCN-MSE方法增強(qiáng)語音語譜圖(d)、FCN-SM方法增強(qiáng)語音語譜圖(e)、FCN-HR方法增強(qiáng)語音語譜圖(f)、FCN-H方法增強(qiáng)語音語譜圖(g)。
圖5 語音信號(hào)的語譜圖比較
具體的,相比圖5(a)的純凈語音,圖5(c)DNN-baseline的基線方法雖然殘留噪聲較少,但是存在語音失真的問題,如圖5(c)中圓圈部分。這也是造成其客觀可懂度得分較差的原因。圖5(d)可以看出傳統(tǒng)的基于時(shí)域波形映射的方法,存在如圖5(d)中方塊部分存在殘留噪聲的問題和如圖5(d)中圓圈部分局部語音信息失真難以恢復(fù),且不存在明顯諧波結(jié)構(gòu)的問題。這也很好地解釋了傳統(tǒng)基于時(shí)域波形映射方法僅簡單使用時(shí)域最小均方誤差損失不能獲得令人滿意的質(zhì)量和可懂度得分的原因。圖5(e)FCN-SM算法,使用頻域的損失訓(xùn)練時(shí)域映射網(wǎng)絡(luò)的方法,相比FCN-MSE有了更好的去噪能力,殘留噪聲較少,但仍存在一定的語音失真尤其是諧波結(jié)構(gòu)不能完全恢復(fù)的問題,如圖5(e)中圓圈部分,其中代表諧波的橫紋結(jié)構(gòu)不明顯。將圖5(f)和圖5(g),與對(duì)比方法增強(qiáng)語音的語譜圖相比,可以看出,本文提出的兩種方法可以消除更多噪聲,并且可以很好地恢復(fù)語音信息,驗(yàn)證了本文提出的頻域諧波損失可以很好地提升語音增強(qiáng)效果。特別是圖5(g)中圓圈部分可以看出,諧波可以清晰顯示,有明顯的橫紋結(jié)構(gòu),說明著重恢復(fù)語音諧波分量的FCN-H方法可以更好地消除諧波之間的噪聲,因此在低信噪比條件下可以進(jìn)一步提高增強(qiáng)語音的可懂度。
本文提出了一種基于時(shí)域波形映射-頻域諧波損失的語音增強(qiáng)算法。與FCN-MSE和FCN-SM的現(xiàn)有基于時(shí)域波形映射的語音增強(qiáng)算法相比,本文提出的算法旨在恢復(fù)語音的諧波結(jié)構(gòu),實(shí)驗(yàn)結(jié)果表明,我們提出的語音增強(qiáng)算法可以獲得更優(yōu)異的語音質(zhì)量和可懂度得分。并且本文提出的著重恢復(fù)語音諧波分量的FCN-H方法可以進(jìn)一步提高低信噪比條件下增強(qiáng)語音的可懂度。
下一步可以將本文使用的頻域諧波損失函數(shù)中諧波和語音殘余的比例系數(shù)進(jìn)行調(diào)整,探究不同比例系數(shù)對(duì)語音增強(qiáng)性能的影響。此外,今后可以嘗試使用其它語音分析模型對(duì)語音進(jìn)行分析建模并將其應(yīng)用在損失函數(shù)中。