孫成立,王海武
(南昌航空大學(xué) 信息工程學(xué)院,江西 南昌 330063)
人工智能[1](artificial intelligence,AI)和基因工程以及納米技術(shù)被稱為21世紀(jì)三大頂尖科技。AI隸屬于計(jì)算機(jī)學(xué)科,它的實(shí)質(zhì)是讓人類理解智能科技,核心就是機(jī)器學(xué)習(xí)。機(jī)器學(xué)習(xí)[2](machine learning)是以計(jì)算機(jī)為基礎(chǔ)來(lái)模擬人的意識(shí)、學(xué)習(xí)行為,以得到新的知識(shí)或技術(shù),將這些已經(jīng)存在的知識(shí)進(jìn)行重組使自己的能力得到不斷提升的學(xué)科。近年來(lái),隨著計(jì)算機(jī)計(jì)算能力的不斷提升,使得機(jī)器學(xué)習(xí)從之前的淺層學(xué)習(xí)[3]過(guò)渡到了現(xiàn)在的深度學(xué)習(xí)[4]。伴隨著人工智能熱度的上升,科技領(lǐng)域的研究者們對(duì)深度學(xué)習(xí)的關(guān)注度也越來(lái)越高,基于深度學(xué)習(xí)的模型如GAN、DBN(深信度網(wǎng)絡(luò))、RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))、CNN(卷積神經(jīng)網(wǎng)絡(luò))[5]、自動(dòng)編碼器[6]等也不斷被提出。在大數(shù)據(jù)的背景下,大量的數(shù)據(jù)樣本被保存起來(lái),使得GAN得到了迅速發(fā)展。當(dāng)前,GAN已開(kāi)始應(yīng)用在語(yǔ)音生成[7]、圖像處理[8]和生成語(yǔ)言文本等領(lǐng)域。
語(yǔ)音信號(hào)處理作為人工智能的一個(gè)研究方向,不斷推動(dòng)著人工智能的發(fā)展,特別是語(yǔ)音增強(qiáng)的研究。語(yǔ)音增強(qiáng)就是從含噪的語(yǔ)音環(huán)境中,提取出純凈語(yǔ)音信號(hào)的過(guò)程。文中研究了GAN在語(yǔ)音增強(qiáng)中的應(yīng)用,實(shí)現(xiàn)建模,再根據(jù)語(yǔ)音質(zhì)量評(píng)估方法(segSNR、PESQ)計(jì)算相應(yīng)的值,將GAN增強(qiáng)后的語(yǔ)音與其他傳統(tǒng)方法進(jìn)行比較。
GAN作為深度學(xué)習(xí)模型之一于2014年由Ian J.Goodfellow等[9]根據(jù)博弈論中的二人零和博弈的思想而提出,將進(jìn)行博弈的兩人分為生成器(generator,G)和判別器[10](discriminator,D)來(lái)進(jìn)行建模。生成器是獲得真實(shí)的數(shù)據(jù)樣本中所含的隱含信息而產(chǎn)生新的數(shù)據(jù)樣本;判別器是根據(jù)輸入的數(shù)據(jù)判斷是真實(shí)的數(shù)據(jù)樣本還是生成器生成的數(shù)據(jù)樣本,實(shí)質(zhì)是二分類器。根據(jù)博弈論[11]中的觀點(diǎn),二人為了達(dá)到各自所需要的結(jié)果,會(huì)不斷優(yōu)化自己,提升自己的博弈能力,同樣在GAN中生成器會(huì)不斷地提升自己生成數(shù)據(jù)的能力,判別器會(huì)不斷地提升自己判斷數(shù)據(jù)的能力。
根據(jù)GAN中的概念可以得出GAN的流程,如圖1所示。
圖1 GAN的流程
圖中,z表示隨機(jī)變量,服從pz(z)分布,G表示生成器,G(z)表示生成器生成的數(shù)據(jù),x表示真實(shí)的數(shù)據(jù)樣本,服從pdata(x)分布,D表示判別器,D()表示概率。判別器D判斷輸入是來(lái)自真實(shí)的數(shù)據(jù)樣本還是來(lái)自生成器,若來(lái)自真實(shí)的數(shù)據(jù)樣本則將其置為1,來(lái)自生成器的將其置為0。
隨機(jī)變量z通過(guò)生成器G,生成G(z)的數(shù)據(jù)樣本,G(z)和真實(shí)的數(shù)據(jù)樣本x通過(guò)判別器,在開(kāi)始的時(shí)候判別器判別輸入的數(shù)據(jù)是來(lái)自真實(shí)的樣本還是生成器生成的,使D(x)向1趨近,D(G(z))向0趨近;然后將判別的結(jié)果返回到判別器和生成器,判別器和生成器不斷進(jìn)行優(yōu)化,生成器的目的是使判別器對(duì)生成的數(shù)據(jù)產(chǎn)生誤判,所以最后的結(jié)果是D(x)=1,D(G(z))=1,這就是GAN模型圖的含義。在實(shí)際的建模中,單單有模型圖還不夠,還需要GAN的數(shù)學(xué)模型,根據(jù)傳統(tǒng)GAN的概念,GAN的數(shù)學(xué)模型可以表示為:
Ez~pz(z)[log(1-D(G(z)))]
(1)
但在實(shí)際的建模中,由于判別器D會(huì)同時(shí)使用對(duì)數(shù)損失(log loss)和sigmoid函數(shù)[12],sigmoid函數(shù)會(huì)發(fā)生快速飽和的情況,導(dǎo)致D的梯度迅速降為0。對(duì)于學(xué)習(xí)真實(shí)數(shù)據(jù)的分布,對(duì)數(shù)損失(log loss)不產(chǎn)生作用,而在訓(xùn)練生成器G時(shí)是需要使用到D的,會(huì)導(dǎo)致G的訓(xùn)練受到很大的影響。為了解決這個(gè)問(wèn)題,可以將模型1改變?yōu)椋?/p>
(2)
(3)
語(yǔ)音增強(qiáng)的實(shí)質(zhì)是從混有噪聲的語(yǔ)音信號(hào)當(dāng)中過(guò)濾噪聲,獲得純凈的原始語(yǔ)音信號(hào)。語(yǔ)音增強(qiáng)的GAN也就是將GAN中的隨機(jī)信號(hào)z和真實(shí)的數(shù)據(jù)x映射到需要增強(qiáng)的語(yǔ)音信號(hào)和純凈的語(yǔ)音信號(hào),由GAN的概念,GAN是將隨機(jī)信號(hào)z服從pz(z)分布轉(zhuǎn)換成另一種x服從pdata(x)分布(也就是真實(shí)的數(shù)據(jù)分布)的模型,所以這里可以把隨機(jī)信號(hào)z當(dāng)成是含噪語(yǔ)音noisy,真實(shí)的數(shù)據(jù)x可以看成是純凈的語(yǔ)音pure voice。
依據(jù)GAN應(yīng)用在語(yǔ)音增強(qiáng)中的概念和GAN的數(shù)學(xué)模型,可以得到語(yǔ)音增強(qiáng)的數(shù)學(xué)模型,見(jiàn)式4和式5。這里將含噪語(yǔ)音noisy記為n,設(shè)其服從fn(n),純凈的語(yǔ)音pure voice記為p,設(shè)其服從fp(p)。
(4)
(5)
語(yǔ)音增強(qiáng)的GAN算法流程為訓(xùn)練判別器D的權(quán)重和固定判別器D的權(quán)重訓(xùn)練生成器G的權(quán)重,流程如圖2和圖3所示。
圖2 訓(xùn)練判別器D的權(quán)重
圖3 訓(xùn)練生成器G的權(quán)重
實(shí)驗(yàn)是把tensorflow作為后端,基于keras實(shí)現(xiàn),通過(guò)卷積神經(jīng)網(wǎng)絡(luò)來(lái)建立D和G模型。G是通過(guò)二維的卷積層和反卷積層實(shí)現(xiàn),寬度是31,選用“same”的補(bǔ)零策略,以及PReLU激活函數(shù),D是通過(guò)一維的卷積層實(shí)現(xiàn),寬度是31,選用“same”的補(bǔ)零策略,以及LeakyReLU激活函數(shù)(alpha=0.3),最后連接了一個(gè)全連接層。實(shí)驗(yàn)用的訓(xùn)練數(shù)據(jù)是NOISEX-92噪聲庫(kù)[13]中的babble噪聲,純凈的語(yǔ)音來(lái)自NOIZEUS語(yǔ)音庫(kù)[14],將babble噪聲和純凈的語(yǔ)音進(jìn)行疊加,形成語(yǔ)音信噪比分別為-5 dB、0 dB、5 dB、10 dB、15 dB各100個(gè)含噪語(yǔ)音句子,總共500個(gè)含噪語(yǔ)音句子。用Matlab先將含噪語(yǔ)音和純凈語(yǔ)音轉(zhuǎn)換成.mat格式的數(shù)據(jù),重疊率為50%畫(huà)窗截取波形,采樣頻率是16 kHz,測(cè)試用的是20個(gè)信噪比為0 dB的語(yǔ)音句子。
圖4和圖5是根據(jù)傳統(tǒng)的GAN數(shù)學(xué)模型直接引入到語(yǔ)音增強(qiáng)中進(jìn)行建模得出的結(jié)果,迭代次數(shù)b取50。其中noisy是含噪語(yǔ)音,voice是增強(qiáng)后語(yǔ)音,pure是純凈語(yǔ)音。從圖中可以看出,通過(guò)生成器增強(qiáng)后語(yǔ)音波形發(fā)生了改變,但增強(qiáng)后的語(yǔ)音波形與純凈的語(yǔ)音波形相差很大。
圖4 含噪語(yǔ)音和增強(qiáng)后語(yǔ)音波形圖對(duì)比
圖5 純凈語(yǔ)音和增強(qiáng)后語(yǔ)音波形圖對(duì)比
從上面的實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),根據(jù)傳統(tǒng)的GAN模型來(lái)實(shí)現(xiàn)語(yǔ)音去噪是很不理想的,生成器并沒(méi)有很好地實(shí)現(xiàn)語(yǔ)音增強(qiáng)。原因是由于模型需要訓(xùn)練的參數(shù)太多,增加了模型的復(fù)雜度會(huì)產(chǎn)生過(guò)擬合[15]現(xiàn)象,同時(shí)學(xué)習(xí)了訓(xùn)練樣本中噪聲數(shù)據(jù)和語(yǔ)音數(shù)據(jù)的無(wú)關(guān)特征,使得訓(xùn)練誤差小(從程序運(yùn)行的過(guò)程看,訓(xùn)練誤差確實(shí)很小),但在測(cè)試數(shù)據(jù)的時(shí)候誤差往往比較大。為了解決這個(gè)問(wèn)題,提出了稀疏因式,即含噪語(yǔ)音與純凈語(yǔ)音差的絕對(duì)值均值,將其加入到生成器的損失函數(shù)中。在這里將式5改為:
ρEn~fn(n),p~fp(p)[|G(n)-p|]
(6)
其中,ρ為稀疏因式的系數(shù)。
根據(jù)式6中生成器的損失函數(shù)再次進(jìn)行實(shí)驗(yàn),迭代次數(shù)b同樣取50,ρ取100,實(shí)驗(yàn)結(jié)果如圖6所示。
圖6 純凈語(yǔ)音和增強(qiáng)后語(yǔ)音波形圖對(duì)比
從圖6可以看到去噪效果比較好,增強(qiáng)后的語(yǔ)音波形比較接近純凈的語(yǔ)音波形。
選用CLSMD[16]、mss_map[17]、subspace[18]、MMSE[19]、SS[20]、Wiener[21]等傳統(tǒng)的語(yǔ)音增強(qiáng)方法作為參考,選用語(yǔ)音質(zhì)量評(píng)估標(biāo)準(zhǔn)中最為經(jīng)典的segSNR[22](分割信噪比)和PESQ(perceptual evaluation of speech quality)[23]來(lái)計(jì)算得分,其中segSNR是指對(duì)噪聲的抑制能力,值越大越好,PESQ是指評(píng)估主觀的語(yǔ)音質(zhì)量,值也是越大越好。噪聲同樣選擇了NOISEX-92噪聲庫(kù)中的噪聲,分別為babble餐廳噪聲、pink噪聲和white噪聲,純凈的語(yǔ)音同樣來(lái)自NOIZEUS語(yǔ)音庫(kù);將三種噪聲和純凈的語(yǔ)音分別進(jìn)行疊加,各自形成了自己的語(yǔ)音信噪比,分別為-5 dB、0 dB、5 dB、10 dB、15 dB各100個(gè)含噪語(yǔ)音句子,總共500個(gè)含噪語(yǔ)音句子。實(shí)驗(yàn)結(jié)果如表1和表2所示。
從表1和表2中可以看到,語(yǔ)音增強(qiáng)GAN算法的PESQ和segSNR得分明顯要高于其他傳統(tǒng)語(yǔ)音增強(qiáng)算法的PESQ和segSNR得分,在低信噪比的環(huán)境中表現(xiàn)更為突出,所以語(yǔ)音增強(qiáng)GAN算法在抑制噪聲的能力和提升主觀語(yǔ)音的質(zhì)量方面要優(yōu)于其他傳統(tǒng)語(yǔ)音增強(qiáng)算法。
表1 在不同的噪聲條件下各語(yǔ)音增強(qiáng)方法的segSNR
表2 在不同的噪聲條件下各種語(yǔ)音增強(qiáng)方法的PESQ
引進(jìn)了當(dāng)今熱門(mén)的GAN模型,寫(xiě)出了GAN的概念和模型,將GAN的對(duì)抗式訓(xùn)練思想與語(yǔ)音增強(qiáng)相結(jié)合,得出語(yǔ)音增強(qiáng)的GAN模型,成功實(shí)現(xiàn)了GAN在語(yǔ)音增強(qiáng)中的應(yīng)用,并通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)直接將傳統(tǒng)的GAN模型用于語(yǔ)音增強(qiáng)是不理想的,于是提出將稀疏因式加入到生成器G的損失函數(shù)中,并通過(guò)實(shí)驗(yàn)得出在G中加入稀疏因式后的圖形更加接近純凈的語(yǔ)音波形,能更好地去除噪聲。最后計(jì)算GAN增強(qiáng)后的語(yǔ)音與其他傳統(tǒng)方法增強(qiáng)后的語(yǔ)音的segSNR和PESQ值,通過(guò)對(duì)比可知,語(yǔ)音增強(qiáng)的GAN算法能更好地實(shí)現(xiàn)語(yǔ)音去噪。