国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于GRU神經(jīng)網(wǎng)絡(luò)的語音增強(qiáng)方法

2021-02-14 00:39:18彭月蒙祖強(qiáng)楊麗娜
關(guān)鍵詞:音頻語音標(biāo)準(zhǔn)化

彭月,蒙祖強(qiáng),楊麗娜

(廣西大學(xué) 計(jì)算機(jī)與電子信息學(xué)院, 廣西 南寧 530004)

0 引言

語音增強(qiáng)是信號(hào)處理研究的一個(gè)重要內(nèi)容,其目的是處理帶有噪聲的語音信號(hào),得到盡量干凈的語音信號(hào),以獲得更好的語音分辨效果。

在語音通訊的過程中不可避免地受到各種干擾和影響,干擾來自環(huán)境噪聲、電氣噪聲、傳輸介質(zhì)等,干擾后將影響人的收聽辨識(shí)效果或者影響其他語音信號(hào)的處理(如語音識(shí)別)。因此有必要在音頻數(shù)字化后實(shí)行適當(dāng)?shù)脑鰪?qiáng)措施來提高辨識(shí)度。帶噪語音信號(hào)包含語音信號(hào)與噪聲兩部分,通常需要語音增強(qiáng)的場合中,原始音頻的噪聲部分的強(qiáng)度較大,而語音信號(hào)強(qiáng)度較低,增強(qiáng)的重點(diǎn)在于提高可辨識(shí)度而不偏重于保真度。人對(duì)音頻的辨識(shí)與感受主要體現(xiàn)為功率譜的變化,而由于相位譜的改變造成的最終時(shí)域信號(hào)波形的變化對(duì)辨識(shí)度的影響微弱。

對(duì)語音增強(qiáng)的方法研究開始于20世紀(jì)70年代,隨著研究的成熟,形成了4大類傳統(tǒng)的語音增強(qiáng)方法,包括諧波增強(qiáng)法、譜減法、基于語音生成模型的算法、基于短時(shí)譜估計(jì)的算法。但語音信號(hào)本身為非平穩(wěn)信號(hào),無論時(shí)域分析或者頻域分析,其本身的信號(hào)特征均不明顯;同時(shí)噪聲信號(hào)常常多個(gè)疊加,特征復(fù)雜、頻帶寬。因此傳統(tǒng)的語音增強(qiáng)方法的增強(qiáng)效果都不顯著,甚至容易引入音樂噪聲[1-2]。

近年業(yè)界已越來越重視神經(jīng)網(wǎng)絡(luò)尤其是循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)在語音增強(qiáng)方向的研究。文獻(xiàn)[3-4]提出結(jié)合時(shí)間維度與頻率維度兩個(gè)處理路徑的思路,其中時(shí)間維度使用門控循環(huán)單元(gated recurrent unit, GRU)來表達(dá)含噪語音的時(shí)間相關(guān)性。文獻(xiàn)[5]提出語音信號(hào)的因果性,即長時(shí)依賴性,提出使用LSTM神經(jīng)網(wǎng)絡(luò)以提高性能。文獻(xiàn)[6-7]重點(diǎn)考慮結(jié)合人耳聽覺特性調(diào)整神經(jīng)網(wǎng)絡(luò)的估計(jì)器,以及加入MEE代價(jià)函數(shù)的優(yōu)化問題。文獻(xiàn)[8-9]提出使用深度神經(jīng)網(wǎng)絡(luò)(deep neural networks, DNN)做噪聲估計(jì)并結(jié)合心理遮蔽效應(yīng)有一定效果。在語音增強(qiáng)上的應(yīng)用中普通DNN 已有使用[10]。

帶有遞歸結(jié)構(gòu)的長短時(shí)記憶(long short-term memory, LSTM)網(wǎng)絡(luò)進(jìn)行語音增強(qiáng)的譜估計(jì)比一般DNN有更好效果[11-13],以及在LSTM網(wǎng)絡(luò)中使用噪聲譜估計(jì)原理提高泛化能力[14-15]。結(jié)合對(duì)上述文獻(xiàn)的參考,本文提出一種綜合了多種方法的新語音增強(qiáng)處理結(jié)構(gòu),該結(jié)構(gòu)結(jié)合短時(shí)傅里葉變換、譜減法、噪聲譜估計(jì),以求發(fā)現(xiàn)一種更具研究價(jià)值的語音增強(qiáng)處理結(jié)構(gòu)和達(dá)到增強(qiáng)效果的提升。

本文的研究方向主要為語音增強(qiáng)處理器模型方案的設(shè)計(jì)、GRU神經(jīng)網(wǎng)絡(luò)算法設(shè)計(jì)以及利用GPU加速的算法優(yōu)化方案。

1 基于GRU神經(jīng)網(wǎng)絡(luò)語音增強(qiáng)的理論

本章主要內(nèi)容為語音增強(qiáng)的理論依據(jù)和神經(jīng)網(wǎng)絡(luò)算法的基本方法。

帶噪語音中,語音信號(hào)的特征為短時(shí)穩(wěn)定、長時(shí)變化[16]。即在語音的一個(gè)較短的時(shí)間片內(nèi)波形時(shí)域表現(xiàn)為較穩(wěn)定的周期波形,頻域表現(xiàn)為穩(wěn)定的一組頻譜。為解決傳統(tǒng)的音頻處理器的不足之處,在多窗譜譜減法的基礎(chǔ)之上,通過將幀間平滑以及先驗(yàn)信噪比估計(jì)結(jié)合起來,提出了一種改進(jìn)的語音增強(qiáng)算法[23]。本文提出了一種結(jié)合GRU神經(jīng)網(wǎng)絡(luò)、譜減法的利用混合噪聲估計(jì)原理工作的音頻處理器結(jié)構(gòu)。在GRU神經(jīng)網(wǎng)絡(luò)運(yùn)算前進(jìn)行標(biāo)準(zhǔn)化和運(yùn)算后進(jìn)行逆標(biāo)準(zhǔn)化,能提高神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)效率,加快收斂速度,譜減法的目的是在帶噪語音功率譜中去除噪聲,訓(xùn)練部分本文使用帶動(dòng)量的批量梯度下降算法對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行收斂。

標(biāo)準(zhǔn)化是一種數(shù)據(jù)預(yù)處理方法,用于提升梯度下降的求解速度,提升模型的收斂速度。本文中將數(shù)據(jù)集按時(shí)間維度線性變換為均值為0,方差為1,以抑制頻響不均衡對(duì)處理效果的影響。使用Z-score法如下:

式(3)和式(4)分別為標(biāo)準(zhǔn)化運(yùn)算和標(biāo)準(zhǔn)化逆運(yùn)算方法,如下:

本文使用譜減法,設(shè)Ps為帶噪語音功率譜;Pn為估計(jì)噪聲功率譜;Ps′為結(jié)果;w為頻點(diǎn)。標(biāo)準(zhǔn)譜減法中當(dāng)差值為負(fù)數(shù)時(shí)輸出為0的做法會(huì)引入音樂噪聲,本文為改善此情況,使用Berouti改進(jìn)方法如下:

Dw=Psw-α·Pnw,

(5)

式中,α為相減因子,控制噪聲抑制比例;β為頻譜下限閾值,設(shè)定輸出的底噪。

在神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型中,通過對(duì)均方誤差(MSE)的計(jì)算,使用帶動(dòng)量的批量梯度下降算法對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行收斂。已知第n幀含噪語音的功率譜Xn,噪聲功率譜Yn,設(shè)待訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型函數(shù)為f,即

X={X1,X2,X3,…,XN},

(7)

Y={Y1,Y2,Y3,…,YN},

(8)

2 對(duì)于語音增強(qiáng)的音頻處理器設(shè)計(jì)

2.1 音頻處理器運(yùn)行時(shí)結(jié)構(gòu)

針對(duì)帶噪語音的各種特征,設(shè)計(jì)相應(yīng)的處理方案。從人對(duì)語音信號(hào)的辨識(shí)角度考慮,主要影響因素是幅頻特性,而且多種噪聲也是在頻域上有明確表現(xiàn),因此宜采用頻域處理。采用功率譜的處理方法可以避免處理相位譜。短時(shí)快速傅里葉變換(STFFT)是指使用快速蝶形算法的按幀處理的時(shí)域到頻域變換。

上兩式中,xi,n為時(shí)域信號(hào);Xi,k為頻域信號(hào);N為傅里葉變換點(diǎn)數(shù);M為幀數(shù)。

在處理方法上可以采取神經(jīng)網(wǎng)絡(luò)估計(jì)噪聲的功率譜,再使用譜減法,對(duì)源信號(hào)功率譜減去估計(jì)出來的噪聲譜得出最終結(jié)果。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)需要考慮噪聲的特征。其中白噪聲、粉噪聲、定頻噪聲等與長期信號(hào)有關(guān),需要時(shí)間相關(guān)的網(wǎng)絡(luò)結(jié)構(gòu)。而環(huán)境噪聲需要多層和時(shí)間相關(guān)的網(wǎng)絡(luò)結(jié)構(gòu),靠較多的庫來訓(xùn)練。選取的多層GRU循環(huán)神經(jīng)網(wǎng)絡(luò)重點(diǎn)解決時(shí)變多噪聲模型問題。

音頻處理器結(jié)構(gòu)(運(yùn)行)如圖1所示,輸入信號(hào)為連續(xù)時(shí)域帶噪音的語音信號(hào)。在輸入緩沖區(qū)中分為帶一定重合區(qū)域的等長幀,對(duì)每幀信號(hào)分別加窗和FFT變換,結(jié)果轉(zhuǎn)為幅頻、相頻信號(hào)。接著對(duì)幅值信號(hào)進(jìn)行標(biāo)準(zhǔn)化處理生成標(biāo)準(zhǔn)化的頻域信號(hào)流和標(biāo)準(zhǔn)化參數(shù)。標(biāo)準(zhǔn)化的作用是避免輸入增益和均衡區(qū)別對(duì)給GRU算法帶來額外壓力以提高系統(tǒng)效果。然后使用GRU神經(jīng)網(wǎng)絡(luò)算法估計(jì)輸入信號(hào)中的噪聲成分。再使用GRU神經(jīng)網(wǎng)絡(luò)結(jié)果以及標(biāo)準(zhǔn)化參數(shù)進(jìn)行標(biāo)準(zhǔn)化逆處理得到處理器計(jì)算出的噪聲幅頻信號(hào)。使用譜減法對(duì)原幅頻信號(hào)與處理器計(jì)算出的噪聲幅頻信號(hào)相減,得到處理后的幅頻信號(hào)。最后通過IFFT以及去窗、合并計(jì)算得到時(shí)域音頻信號(hào)。

圖1 音頻處理器結(jié)構(gòu)(運(yùn)行)Fig.1 Audio processor architecture (runtime)

由于人的聽感對(duì)于聲音相位不敏感,因此上述結(jié)構(gòu)中只對(duì)幅頻信號(hào)進(jìn)行處理,而不改變相頻信號(hào)。

此方法相比于傳統(tǒng)的譜減法最大的區(qū)別就是噪聲譜的估計(jì)方式不同。傳統(tǒng)的譜減法通常假設(shè)音頻段的開始部分無語音只包含噪聲,且假設(shè)噪聲譜是不隨時(shí)間變化的。顯然這一假設(shè)有局限,若非短音頻段,環(huán)境噪聲的變化不可避免。此方法中噪聲譜的估計(jì)采用GRU深度神經(jīng)網(wǎng)絡(luò)從實(shí)時(shí)輸入中估計(jì),可以應(yīng)對(duì)變化的噪聲,同時(shí)GRU相比普通BP神經(jīng)網(wǎng)絡(luò)具有幀間相關(guān)性,也能較好兼顧緩變噪聲。GRU神經(jīng)網(wǎng)絡(luò)的參數(shù)是通過預(yù)先的豐富的噪聲模型訓(xùn)練得出,使神經(jīng)網(wǎng)絡(luò)能識(shí)別和預(yù)測噪聲的成分。

而此方法相比于只使用神經(jīng)網(wǎng)絡(luò)而不使用譜減法的區(qū)別在于,環(huán)境噪聲信號(hào)的時(shí)間穩(wěn)定性及在音頻流中的時(shí)間占比通常比語音信號(hào)更大,估計(jì)噪聲頻譜比估計(jì)語音頻譜的復(fù)雜度更低。且對(duì)于估計(jì)誤差,估計(jì)噪聲頻譜并譜減法后誤差不明顯,而直接估計(jì)語音譜產(chǎn)生的誤差對(duì)原語音的音色影響較大。

2.2 音頻處理器訓(xùn)練時(shí)結(jié)構(gòu)

對(duì)于GRU神經(jīng)網(wǎng)絡(luò)的訓(xùn)練使用標(biāo)記信號(hào)訓(xùn)練的方法。為了使用任意語音庫與噪聲庫進(jìn)行訓(xùn)練,需要自動(dòng)生成標(biāo)記信號(hào)。同時(shí),為了防止訓(xùn)練與實(shí)際運(yùn)行的算法差異帶來的誤差,應(yīng)使輸入信號(hào)經(jīng)過與運(yùn)行時(shí)的神經(jīng)網(wǎng)絡(luò)處理前一致的處理步驟,而使參考信號(hào)經(jīng)過與運(yùn)行時(shí)的神經(jīng)網(wǎng)絡(luò)處理后一致的處理步驟。音頻處理器訓(xùn)練時(shí)的結(jié)構(gòu)圖可由運(yùn)行時(shí)的基本結(jié)構(gòu)圖通過函數(shù)計(jì)算和化簡重新設(shè)計(jì)為如圖2所示結(jié)構(gòu)。

圖2 音頻處理器結(jié)構(gòu)(訓(xùn)練)Fig.2 Audio processor architecture (training)

訓(xùn)練時(shí)使用標(biāo)準(zhǔn)語音庫和噪聲庫信號(hào),兩者增益在訓(xùn)練時(shí)隨機(jī)選取。其中噪聲信號(hào)與語音信號(hào)時(shí)域相加,作為訓(xùn)練用輸入信號(hào);語音信號(hào)作為訓(xùn)練用參考信號(hào)。首先對(duì)輸入信號(hào)與參考信號(hào)分別進(jìn)行分幀、加窗和FFT運(yùn)算,得到幅頻信號(hào)。輸入信號(hào)的幅頻與參考信號(hào)的幅頻進(jìn)行譜減法計(jì)算,得出噪聲估計(jì)器應(yīng)估計(jì)出的噪聲幅頻信號(hào)。對(duì)輸入信號(hào)的幅頻信號(hào)進(jìn)行標(biāo)準(zhǔn)化處理,得到神經(jīng)網(wǎng)絡(luò)訓(xùn)練用的輸入量以及標(biāo)準(zhǔn)化參數(shù)。對(duì)噪聲估計(jì)器應(yīng)估計(jì)出的噪聲幅頻信號(hào)使用同一標(biāo)準(zhǔn)化參數(shù)進(jìn)行標(biāo)準(zhǔn)化,得到神經(jīng)網(wǎng)絡(luò)訓(xùn)練用的標(biāo)記量。對(duì)于連續(xù)音頻流,取連續(xù)的T幀作為1次BPTT計(jì)算周期,每個(gè)計(jì)算周期修正一次神經(jīng)網(wǎng)絡(luò)參數(shù)。

3 GRU神經(jīng)網(wǎng)絡(luò)算法的描述

3.1 GRU神經(jīng)網(wǎng)絡(luò)表達(dá)式

設(shè)輸入為X,輸出為Y,網(wǎng)絡(luò)模型參考圖3,GRU神經(jīng)網(wǎng)絡(luò)單層結(jié)構(gòu)參考圖4,表達(dá)式如下:

Xt={X1,X2,X3,…,X64}t,

(13)

arl,t=Url·hl,t-1+Wrl·xl,t+Brl,

(15)

rl,t=σ(arl,t),

(16)

azl,t=Uzl·hl,t-1+Wzl·xl,t+Bzl,

(17)

zl,t=σ(azl,t),

(18)

asl,t=Usl·hl,t-1°rl,t+Wsl·xl,t+Bsl,

(19)

sl,t=tanh(asl,t),

(20)

hl,t=(1-zl,t)°hl,t-1)+zl,t°sl,t,

(21)

3.2 GRU神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)與LSTM的對(duì)比

神經(jīng)網(wǎng)絡(luò)部分經(jīng)過分析,可以選擇RNN類型的神經(jīng)網(wǎng)絡(luò),能有效應(yīng)對(duì)長時(shí)間相關(guān)噪聲,但是RNN神經(jīng)網(wǎng)絡(luò)的梯度存在長期依賴問題,容易導(dǎo)致梯度爆炸或者梯度消失,使用效果不佳。LSTM與GRU是兩種可以解決RNN的長期依賴問題的改進(jìn)型結(jié)構(gòu)。

圖3 多層GRU神經(jīng)網(wǎng)絡(luò)模型圖Fig.3 Multi layer GRU neural network model diagram

LSTM的結(jié)構(gòu)如圖5所示,x為當(dāng)前時(shí)刻的輸入,v[n-1]為上一時(shí)刻的輸出,s[n-1]為上一時(shí)刻的記憶,v為當(dāng)前時(shí)刻的輸出,s為當(dāng)前時(shí)刻的記憶。LSTM神經(jīng)網(wǎng)絡(luò)雖然有較優(yōu)的效果,但是也存在不少缺點(diǎn)。每層LSTM中需要11個(gè)參數(shù)矩陣和4個(gè)參數(shù)向量。每層需要3個(gè)輸入向量和2個(gè)輸出向量,每層中2個(gè)向量沿時(shí)間傳播。因此訓(xùn)練速度很慢,參數(shù)容量也過大。因此需要考慮對(duì)LSTM簡化處理。

業(yè)界在LSTM的基礎(chǔ)上發(fā)展了多種衍生結(jié)構(gòu)[6,9],其中的GRU單層結(jié)構(gòu)如圖4所示,其中x[t]為當(dāng)前時(shí)刻的輸入(從上一層傳入),h[t-1]為上一時(shí)刻的輸出(從當(dāng)前層傳入),h[t]為當(dāng)前時(shí)刻的輸出(傳到下一層以及傳到當(dāng)前層的下一時(shí)刻)。其每層需要6個(gè)參數(shù)矩陣和3個(gè)參數(shù)向量。每層需要2個(gè)輸入向量和1個(gè)輸出向量,每層中只有1個(gè)向量沿時(shí)間傳播。因此處理量比LSTM小得多。

通過分析與對(duì)比,本文選擇以GRU神經(jīng)網(wǎng)絡(luò)方案作為語音增強(qiáng)系統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型,以下詳細(xì)對(duì)GRU神經(jīng)網(wǎng)絡(luò)的計(jì)算方法設(shè)計(jì)和性能分析。

圖4 GRU神經(jīng)網(wǎng)絡(luò)單層結(jié)構(gòu)Fig.4 Single layer structure of GRU neural network

3.3 GRU神經(jīng)網(wǎng)絡(luò)正向分析

GRU神經(jīng)網(wǎng)絡(luò)正向計(jì)算中,每層按結(jié)構(gòu)圖及公式(15)至公式(21)計(jì)算,定義計(jì)算“°”為矩陣點(diǎn)乘,即矩陣元素對(duì)位相乘。定義雙極性與單極性激活函數(shù)分別為

由L層GRU和1個(gè)線性輸出層組成的神經(jīng)網(wǎng)絡(luò)模型如圖5所示。在正向過程中,已知輸入數(shù)據(jù)流xt,通過帶入GRU正向方程組即可得到輸出數(shù)據(jù)流hL+1,t。

圖5 LSTM神經(jīng)網(wǎng)絡(luò)單層結(jié)構(gòu)Fig.5 Single layer structure of LSTM neural network

3.4 GRU神經(jīng)網(wǎng)絡(luò)反向分析

GRU神經(jīng)網(wǎng)絡(luò)采用BPTT算法訓(xùn)練,由于圖中GRU模塊存在循環(huán),為了便于分析,將圖按時(shí)間序列展開,得到如圖6所示的多層GRU神經(jīng)網(wǎng)絡(luò)BPTT展開圖。通過xt經(jīng)正向運(yùn)算求得hL+1,t,和已知的標(biāo)記結(jié)果yt對(duì)比,得到誤差,再通過計(jì)算誤差估計(jì)對(duì)各參數(shù)的偏導(dǎo)數(shù),求各參數(shù)的修正量。在訓(xùn)練過程中,采用標(biāo)記學(xué)習(xí)的方法,即已知每組給定帶噪音頻的噪音分量,通過前置計(jì)算可求出一一對(duì)應(yīng)的每幀的帶噪音頻的功率譜xt和噪音功率譜yt。

圖6 多層GRU神經(jīng)網(wǎng)絡(luò)BPTT展開圖Fig.6 BPTT expansion of multi layer GRU neural network

為了控制計(jì)算量,可將遞歸時(shí)間限制在一個(gè)固定值T,把訓(xùn)練的音頻每T幀分為1組,完成每組計(jì)算后更新所有參數(shù)。若假設(shè)參數(shù)為M,學(xué)習(xí)率為μ,則更新參數(shù)M?M-μ·M。

3.5 GRU神經(jīng)網(wǎng)絡(luò)計(jì)算量分析

分析每個(gè)GRU層的計(jì)算量見表1,設(shè)該層有m個(gè)維度,從上一層傳入n個(gè)輸入維度,下一層有p個(gè)維度,總結(jié)果y的維度是q,計(jì)算時(shí)刻從t=0到t=T累計(jì)。矩陣運(yùn)算換算為等量的實(shí)數(shù)運(yùn)算表示。參數(shù)M包含Us、Ws、Bz、Uz、Wz、Br、Ur、Wr。

表1 GRU計(jì)算量分析Tab.1 GRU calculation analysis

根據(jù)以上統(tǒng)計(jì)可得出此神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的總運(yùn)算量需求,運(yùn)算量大于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò),小于LSTM神經(jīng)網(wǎng)絡(luò)。若訓(xùn)練后參數(shù)以雙精度浮點(diǎn)數(shù)表示,則GRU儲(chǔ)存空間分析見表2。

表2 GRU儲(chǔ)存空間分析Tab.2 GRU storage space analysis

若采用的GRU神經(jīng)網(wǎng)絡(luò)中,共8個(gè)隱含層,每層都有1 024個(gè)單元,輸入與輸出維度均為256,每組訓(xùn)練T=10,則可計(jì)算出每次訓(xùn)練的總運(yùn)算量為:加減法運(yùn)算42,261,774,336次,乘法運(yùn)算42,401,031,168次,除法運(yùn)算245,760次,指數(shù)運(yùn)算491,520次;參數(shù)消耗儲(chǔ)存空間402,849,792字節(jié)。

按照理論計(jì)算速度分析:若以CPU為Intel Xeon E5-2640 v2的雙路工作站以CPU標(biāo)準(zhǔn)頻率計(jì)算,其雙精度浮點(diǎn)計(jì)算能力為256 Gflops,則每秒可進(jìn)行3.024次訓(xùn)練;若采用單精度浮點(diǎn)計(jì)算,速度為512 Gflops,每秒可進(jìn)行6.048次訓(xùn)練;若以最高頻率單精度計(jì)算,速度為640 Gflops,每秒可進(jìn)行7.56次訓(xùn)練。

使用MATLAB的GPU加速工具箱,可以使用NVIDIA的CUDA并行計(jì)算架構(gòu)加速計(jì)算。若GPU為NVIDIA GeForce GTX 1060,包含1 280個(gè)CUDA運(yùn)算核心,其單精度計(jì)算能力為4 400 Gflops,則每秒可進(jìn)行51.975次訓(xùn)練。

并且為了加快計(jì)算速度,在正向計(jì)算時(shí)可保留中間變量以供反向運(yùn)算使用,避免對(duì)激活函數(shù)重復(fù)求導(dǎo)。另外可發(fā)現(xiàn)結(jié)果中部分算子重復(fù),因此設(shè)若干中間量以減少運(yùn)算量。

4 實(shí)驗(yàn)分析

4.1 實(shí)驗(yàn)環(huán)境

表3 實(shí)驗(yàn)環(huán)境Tab.3 Experimental Environment

4.2 數(shù)據(jù)源

實(shí)驗(yàn)數(shù)據(jù)源包括純凈語音信號(hào)、噪音信號(hào)2種。其中純凈語音信號(hào)來源于TIMIT語音數(shù)據(jù)庫的TRAINING集[24],噪聲數(shù)據(jù)為Perception and Neurodynamics實(shí)驗(yàn)室的100類噪聲。

混合語音信號(hào)使用純凈語音信號(hào)與2~3種隨機(jī)噪音信號(hào)按平均功率-10~10 dB動(dòng)態(tài)隨機(jī)強(qiáng)度混合得到,訓(xùn)練時(shí)隨機(jī)選取其中的70%作為訓(xùn)練集、25%作為驗(yàn)證集、5%作為測試集。

4.3 數(shù)據(jù)預(yù)處理方法

輸入處理部分,包括重采樣、分幀、加窗、STFFT、標(biāo)準(zhǔn)化5個(gè)步驟。

由于語音信號(hào)主要考慮人耳識(shí)別效果,因此數(shù)據(jù)處理時(shí)應(yīng)考慮心理聲學(xué)與語言聲學(xué)原理設(shè)定參數(shù),兼顧效果與運(yùn)算量。根據(jù)人耳的聽覺特性可知,人對(duì)語音信號(hào)的功率譜敏感而對(duì)相位信息不敏感,因此采用功率譜為其特征;另外,對(duì)于語音信號(hào),其具有短時(shí)穩(wěn)定性和長時(shí)非平穩(wěn)性的特性,即人說話時(shí)在不大于20 ms的時(shí)間片以內(nèi)頻譜相對(duì)穩(wěn)定。因此為得到較平穩(wěn)的頻譜特征可以對(duì)輸入音頻流信號(hào)進(jìn)行分幀處理。為了方便計(jì)算機(jī)計(jì)算以及采用快速傅里葉算法,選取參數(shù)時(shí)以2的整數(shù)次冪優(yōu)先。

第一步需要對(duì)于不同輸入設(shè)備的音頻流統(tǒng)一進(jìn)行重采樣,以減小數(shù)據(jù)冗余和加快計(jì)算速度。研究表明語音信號(hào)僅保留頻帶為300~3 400 Hz范圍部分不會(huì)影響信息表達(dá),因此可定系統(tǒng)帶寬為4 000 Hz,即采樣率8 000 Hz。重采樣包括兩個(gè)過程,分別為無限脈沖響應(yīng)濾波器(IIR) 抗混疊低通濾波和線性抽樣。IIR使用Matlab的數(shù)字信號(hào)處理工具箱設(shè)計(jì),截止頻率3 600 Hz、4階切比雪夫II型低通濾波器。

第二步為分幀,即把音頻流分成以幀為單位的獨(dú)立部分,選取16 ms的時(shí)間片長度分幀,根據(jù)8 000 Hz采樣率計(jì)算得到每個(gè)幀的采樣點(diǎn)數(shù)為128點(diǎn)。為了保證信號(hào)恢復(fù)合并效果,采用幀重疊方法。重疊率可選取[0,1),一般選取0.25~0.5,此處選擇0.5即每幀的前8 ms和上一幀重疊、后8 ms和下一幀重疊。輸入處理過程分幀、加窗示例如圖7所示。

第三步為加窗,語音信號(hào)不完全周期性,不利于短時(shí)傅里葉分析,采用加窗方法提高信號(hào)周期性,減小頻譜泄露。加窗即對(duì)信號(hào)和窗函數(shù)做乘積,經(jīng)實(shí)驗(yàn)選擇漢明窗的效果較優(yōu)。窗函數(shù)如下:

圖7 輸入處理過程分幀、加窗示例Fig.7 Example of input processing waveform

第四步為STFFT,對(duì)加窗后的每幀信號(hào)進(jìn)行快速傅里葉變換即可得到對(duì)應(yīng)幀的頻域信號(hào)(公式11)。根據(jù)傅里葉變換特性,當(dāng)輸入時(shí)域信號(hào)為實(shí)數(shù)時(shí),輸出的實(shí)部鏡像、虛部共軛,因此可只保留前一半的結(jié)果即64個(gè)點(diǎn)。計(jì)算其對(duì)數(shù)功率譜和相角,其中相角保留用于信號(hào)恢復(fù),對(duì)數(shù)功率譜進(jìn)行下一步處理。根據(jù)奈奎斯特定律,此時(shí)頻點(diǎn)寬度為62.5 Hz。

第五步為標(biāo)準(zhǔn)化,運(yùn)行時(shí)使用標(biāo)準(zhǔn)化并保留參數(shù),而訓(xùn)練時(shí)使用標(biāo)準(zhǔn)化和帶參數(shù)標(biāo)準(zhǔn)化令兩者一致(公式3)。標(biāo)準(zhǔn)化語譜圖如圖8所示,標(biāo)準(zhǔn)化系數(shù)曲線如圖9所示。

圖8 標(biāo)準(zhǔn)化語譜圖Fig.8 Standardized spectrogram

圖9 標(biāo)準(zhǔn)化系數(shù)曲線Fig.9 Standardization coefficient curve

4.4 神經(jīng)網(wǎng)絡(luò)訓(xùn)練

為驗(yàn)證此處理算法的可行性和效果,本文采取相同上下文的處理結(jié)構(gòu),僅就神經(jīng)網(wǎng)絡(luò)部分使用深度前饋BP神經(jīng)網(wǎng)絡(luò)以及GRU神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,兩種神經(jīng)網(wǎng)絡(luò)的隱含層都為5層,每層1 024個(gè)單元(公式9、10)。

訓(xùn)練時(shí)使用帶動(dòng)量的隨機(jī)梯度下降法能達(dá)到較好的訓(xùn)練效果[20,25]。如圖10和圖11所示為訓(xùn)練過程的MSE曲線。前饋BP網(wǎng)絡(luò)的訓(xùn)練與測試曲線差別較大,反映出其泛化能力不佳。

圖10 前饋BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練誤差曲線Fig.10 Training error curve of feedforward BP neural network

圖11 GRU神經(jīng)網(wǎng)絡(luò)訓(xùn)練誤差曲線Fig.11 GRU neural network training error curve

4.5 輸出處理方法

輸出處理部分包含標(biāo)準(zhǔn)化逆處理、譜減、ISTFFT、去窗、幀合并5個(gè)步驟。

第一步為標(biāo)準(zhǔn)化逆處理是標(biāo)準(zhǔn)化處理的逆過程,標(biāo)準(zhǔn)化函數(shù)是一個(gè)線性可逆的函數(shù),使用與標(biāo)準(zhǔn)化處理時(shí)相同的函數(shù)模型和保留的標(biāo)準(zhǔn)化參數(shù)帶入計(jì)算得到估計(jì)的噪聲功率譜(公式4)。標(biāo)準(zhǔn)化逆處理效果如圖12所示,標(biāo)準(zhǔn)化逆處理系數(shù)如圖13所示。

圖12 標(biāo)準(zhǔn)化逆處理效果Fig.12 Result of standardized inverse processing

圖13 標(biāo)準(zhǔn)化逆處理系數(shù)Fig.13 Normalized inverse processing coefficient

第二部為譜減,將混合信號(hào)功率譜與估計(jì)的噪聲功率譜相減得到去噪功率譜(公式6)。

第三步為ISTFFT,首先把對(duì)數(shù)功率譜轉(zhuǎn)換為線性功率譜,為了變換結(jié)果虛部為0,需要輸入?yún)?shù)實(shí)部鏡像、虛部共軛,因此使用處理后的64點(diǎn)功率譜和保留的相位譜換算前64點(diǎn)復(fù)頻譜并重構(gòu)后64點(diǎn)復(fù)頻譜,IFFT后得到128點(diǎn)時(shí)域?qū)崝?shù)信號(hào)(公式12)。

第四步為去窗,去窗過程為加窗的逆過程,用IFFT結(jié)果除以窗函數(shù)(公式25)得到結(jié)果。短時(shí)傅里葉逆變換與去窗效果如圖14所示。

圖14 短時(shí)傅里葉逆變換與去窗效果Fig.14 Result of inverse short time Fourier transform and remove window

第五步為幀合并線性比例疊加合并效果如圖15所示,幀合并方法有重疊相加、截?cái)唷⒕€性比例重疊相加,此方案采用線性比例重疊相加。

式中,xk,n為第k幀的第n個(gè)點(diǎn);y為合并后每點(diǎn)的值。

圖15 線性比例疊加合并效果Fig.15 Result of linear scale superposition

4.6 實(shí)驗(yàn)結(jié)果分析

首先進(jìn)行典型驗(yàn)證實(shí)驗(yàn)以證明方案可行性,在典型的噪聲(白噪、粉噪等)環(huán)境下,使用麥克風(fēng)錄制語音片段,進(jìn)行處理后與處理前對(duì)比,通過人聽、時(shí)域的包絡(luò)圖和頻域的語譜圖對(duì)比語音增強(qiáng)效果。

如圖16所示為使用GRU神經(jīng)網(wǎng)絡(luò)的處理器結(jié)構(gòu)對(duì)一段含有平穩(wěn)白噪聲的語音片段的處理結(jié)果,證實(shí)本文設(shè)計(jì)的結(jié)構(gòu)與算法能達(dá)到語音增強(qiáng)效果,具有可行性。

圖16 使用GRU神經(jīng)網(wǎng)絡(luò)算法處理含平穩(wěn)白噪聲的語音示例Fig.16 Example of using GRU neural network to process speech with stationary white noise

其后主要不同的處理方法的效果進(jìn)行對(duì)比,對(duì)于平穩(wěn)和單一的噪音,無論是傳統(tǒng)的譜減法或者使用此結(jié)構(gòu)的使用GRU噪聲估計(jì)器、DNN噪聲估計(jì)器、LSTM噪聲估計(jì)器都能達(dá)到近似的效果(由于普通RNN因?yàn)樘荻缺▎栴}難以在此方法中應(yīng)用,因此使用RNN的兩種衍生類型LSTM和GRU來實(shí)驗(yàn))。實(shí)驗(yàn)可知對(duì)于動(dòng)態(tài)混合噪聲(強(qiáng)度非平穩(wěn)、多種類疊加),GRU與LSTM兩種結(jié)構(gòu)具有明顯優(yōu)勢。

圖17 對(duì)含動(dòng)態(tài)混合噪聲的語音信號(hào)使用GRU神經(jīng)網(wǎng)絡(luò)與DNN神經(jīng)網(wǎng)絡(luò)效果對(duì)比Fig.17 Comparison of GRU and DNN neural network for speech signal with dynamic mixed noise

如圖17所示為采用此處理算法結(jié)構(gòu),使用GRU神經(jīng)網(wǎng)絡(luò)與作為對(duì)比的使用DNN神經(jīng)網(wǎng)絡(luò)做噪聲估計(jì)對(duì)同一段復(fù)雜的含有2種以上時(shí)變噪聲的語音片段處理結(jié)果,證實(shí)本設(shè)計(jì)的結(jié)構(gòu)與算法使用GRU在復(fù)雜噪聲環(huán)境下比DNN更具優(yōu)勢。

評(píng)分對(duì)比實(shí)驗(yàn)使用相同的處理算法結(jié)構(gòu),DNN、LSTM、GRU三種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),每種結(jié)構(gòu)都是64維輸入、64維輸出、8層、中間層256節(jié)點(diǎn)。使用一段底噪較小的、時(shí)長較長的錄制語音分別與不同的組合噪聲源數(shù)字疊加后作為樣本輸入。處理結(jié)果使用多種測試方法對(duì)比,包括包絡(luò)圖、語譜圖、主觀評(píng)分、客觀評(píng)分。其中客觀評(píng)分使用PSEQ算法,PSEQ是ITU-T P.862.2-2007建議書中推薦的一種語音質(zhì)量評(píng)估方法,廣泛用于音頻處理與通信質(zhì)量檢測,結(jié)果位于1.0~4.5,值越大效果越好。

圖18 前饋BP和LSTM以及GRU神經(jīng)網(wǎng)絡(luò)對(duì)測試樣本增強(qiáng)的PESQ評(píng)估對(duì)比Fig.18 Use PESQ to compare the enhancement of test samples by feed-forward BP, LSTM and GRU neural network

如圖18所示為前饋BP和LSTM以及GRU神經(jīng)網(wǎng)絡(luò)對(duì)測試樣本增強(qiáng)的PESQ評(píng)估對(duì)比,由圖18可見LSTM僅比GRU增強(qiáng)效果有微弱的優(yōu)勢,且LSTM與GRU都明顯優(yōu)于前饋BP(DNN),而GRU在計(jì)算量上比LSTM小,因此可以驗(yàn)證本文研究的語音增強(qiáng)方案有一定的價(jià)值。

5 結(jié)語

在動(dòng)態(tài)混合噪聲混合信號(hào)的環(huán)境下使用傳統(tǒng)譜減法不能實(shí)現(xiàn)語音增強(qiáng)的作用而使用前饋BP神經(jīng)網(wǎng)絡(luò)可實(shí)現(xiàn)語音增強(qiáng),但是效果顯示不佳,而此實(shí)驗(yàn)使用的GRU神經(jīng)網(wǎng)絡(luò)進(jìn)行噪聲估計(jì)實(shí)現(xiàn)語音增強(qiáng)效果有所提高。

此音頻處理器結(jié)構(gòu)相比傳統(tǒng)方案對(duì)動(dòng)態(tài)噪聲和多噪聲模型疊加的抑制效果有所提升,可作為一種新的研究思路繼續(xù)深入研究。

利用GPU計(jì)算的方法比CPU單核心計(jì)算速度已經(jīng)有了10倍以上的提升,但是測試程序的平均計(jì)算速度還只達(dá)到了GPU理論峰值計(jì)算速度的20%左右,算法還有較大的提升空間。經(jīng)過分析,實(shí)驗(yàn)中發(fā)現(xiàn)的GPU利用率較低的原因主要因?yàn)楸敬螌?shí)驗(yàn)算法使用MATLAB平臺(tái)開發(fā),利用MATLAB中的并行運(yùn)算工具箱對(duì)GPU運(yùn)算的支持,并不是使用C++直接編寫基于CUDA的GPU算法,數(shù)據(jù)傳輸和執(zhí)行效率都較低。

猜你喜歡
音頻語音標(biāo)準(zhǔn)化
標(biāo)準(zhǔn)化簡述
魔力語音
基于MATLAB的語音信號(hào)處理
電子制作(2019年14期)2019-08-20 05:43:38
基于MQ3與MP3的價(jià)廉物美的酒駕語音提醒器
電子制作(2019年9期)2019-05-30 09:42:10
必須了解的音頻基礎(chǔ)知識(shí) 家庭影院入門攻略:音頻認(rèn)證與推薦標(biāo)準(zhǔn)篇
對(duì)方正在輸入……
小說界(2018年5期)2018-11-26 12:43:42
基于Daubechies(dbN)的飛行器音頻特征提取
電子制作(2018年19期)2018-11-14 02:37:08
標(biāo)準(zhǔn)化是綜合交通運(yùn)輸?shù)谋U稀庾x《交通運(yùn)輸標(biāo)準(zhǔn)化體系》
中國公路(2017年9期)2017-07-25 13:26:38
音頻分析儀中低失真音頻信號(hào)的發(fā)生方法
電子制作(2017年9期)2017-04-17 03:00:46
Pro Tools音頻剪輯及修正
人間(2015年8期)2016-01-09 13:12:42
平舆县| 和田市| 长兴县| 焦作市| 房产| 昆明市| 泰顺县| 罗田县| 纳雍县| 晋城| 新昌县| 岳阳市| 万山特区| 陇川县| 固原市| 抚宁县| 鸡泽县| 巴马| 财经| 离岛区| 沙坪坝区| 三门峡市| 鸡西市| 乐山市| 梅州市| 大连市| 尼木县| 青田县| 仲巴县| 滨海县| 毕节市| 宜兴市| 当雄县| 高雄县| 昔阳县| 孝昌县| 灵山县| 武隆县| 古田县| 泗阳县| 临西县|