王 霞, 杜桂明, 王光艷, 張 艷
(1.河北工業(yè)大學(xué) 電子信息工程學(xué)院,天津 300401; 2.天津商業(yè)大學(xué) 信息工程學(xué)院,天津 300134)
基于卷積神經(jīng)網(wǎng)絡(luò)的面罩語(yǔ)音識(shí)別*
王 霞1, 杜桂明1, 王光艷2, 張 艷1
(1.河北工業(yè)大學(xué)電子信息工程學(xué)院,天津300401;2.天津商業(yè)大學(xué)信息工程學(xué)院,天津300134)
針對(duì)帶噪面罩語(yǔ)音識(shí)別率低的問(wèn)題,結(jié)合語(yǔ)音增強(qiáng)算法,對(duì)面罩語(yǔ)音進(jìn)行噪聲抑制處理,提高信噪比,在語(yǔ)音增強(qiáng)中提出了一種改進(jìn)的維納濾波法,通過(guò)譜熵法檢測(cè)有話(huà)幀和無(wú)話(huà)幀來(lái)更新噪聲功率譜,同時(shí)引入?yún)?shù) 控制增益函數(shù);提取面罩語(yǔ)音信號(hào)的Mel頻率倒譜系數(shù)(MFCC)作為特征參數(shù);通過(guò)卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行訓(xùn)練和識(shí)別,并在每個(gè)池化層后經(jīng)局部響應(yīng)歸一化(LRN)進(jìn)行優(yōu)化。實(shí)驗(yàn)結(jié)果表明:該識(shí)別系統(tǒng)能夠在很大程度上提高帶噪面罩語(yǔ)音的識(shí)別率。
面罩語(yǔ)音識(shí)別; 卷積神經(jīng)網(wǎng)絡(luò); 語(yǔ)音增強(qiáng); 維納濾波法
面罩語(yǔ)音識(shí)別有助于潛水人員的交流[1],近些年,深度神經(jīng)網(wǎng)絡(luò)(deep neural network,DNN)在語(yǔ)音識(shí)別上顯示出了獨(dú)特的優(yōu)勢(shì)。2012年,Ossama Abdel-Hamid等人通過(guò)研究發(fā)現(xiàn),卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)相對(duì)于神經(jīng)網(wǎng)絡(luò)(NN)和通過(guò)限制玻爾茲曼機(jī)(restricted Boltzmann machine,RBM)初始化權(quán)重的NN識(shí)別率較高[2]。2013年,Tara N Sainath等人通過(guò)比較CNN與DNN和高斯混合模型(Gaussian mixture model,GMM)的語(yǔ)音識(shí)別性能,得出了CNN在語(yǔ)音識(shí)別上有更好的性能[3]。2014年,Ossama Abdel-Hamid等人又對(duì)CNN進(jìn)行了深入研究,得出了CNN相對(duì)于DNN性能有很大的提高[4]。2015年Takuya Yoshioka等人提出了CNN-DNN-HMM的模型來(lái)進(jìn)行語(yǔ)音識(shí)別[5];張晴晴通過(guò)比較CNN的尺寸來(lái)分析CNN在語(yǔ)音識(shí)別方面的性能[6]。2016年,Qian Yanmin等人研究改變卷積層的數(shù)量、大小和池化層的尺寸等實(shí)現(xiàn)了錯(cuò)詞率的下降,通過(guò)搭建與長(zhǎng)短記憶—循環(huán)神經(jīng)網(wǎng)絡(luò)(LSTM-RNN)相結(jié)合的模型,錯(cuò)詞率也有所下降[7]。
實(shí)際中,淺海水聲通信通常會(huì)有海洋噪聲的干擾,導(dǎo)致語(yǔ)音識(shí)別的識(shí)別率嚴(yán)重下降,影響人機(jī)交互的正常進(jìn)行。
本文設(shè)計(jì)了面罩語(yǔ)音識(shí)別系統(tǒng),提出了一種改進(jìn)的維納濾波算法對(duì)帶有海洋噪聲面罩語(yǔ)音增強(qiáng),然后通過(guò)優(yōu)化的CNN來(lái)進(jìn)行面罩語(yǔ)音識(shí)別,與級(jí)聯(lián)譜減法和維納濾波法相比,該識(shí)別系統(tǒng)具有較好的識(shí)別效果。
CNN由輸入層、輸出層和中間的隱含層組成,中間的隱含層由多對(duì)卷積層、池化層交替組成。屬于多階段全局可訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型,主要有三個(gè)特征:局部接收域、全局共享和子采樣[8,9]。這些特征可以保證在輸入目標(biāo)平移、縮放和扭曲一定程度上的不變性,結(jié)構(gòu)如圖1所示。
圖1 CNN的結(jié)構(gòu)
假設(shè)語(yǔ)音信號(hào)作為輸入層且有B個(gè)頻帶,則有v=[v1v2…vb…vB],vb為頻帶b對(duì)應(yīng)的特征矢量。卷積層的激活值被分為K個(gè)頻帶,每個(gè)頻帶包含J個(gè)濾波器激活值。假設(shè)每個(gè)頻帶定義為hk=[hk,1hk,2…h(huán)k,J],卷積層的激活值可以通過(guò)前一層的值與卷積核進(jìn)行卷積運(yùn)算得到
(1)
式中θ(x)為非線(xiàn)性激活函數(shù),本文采用Relu函數(shù);s為輸入層濾波器的大小;wb,j為對(duì)應(yīng)的權(quán)重矢量。
假設(shè)池化層被劃分為M個(gè)頻帶,每個(gè)頻帶接收r個(gè)卷積層激活值,通常有最大值采樣和均值采樣,本文采用最大池化,對(duì)n個(gè)頻帶取最大值,則m個(gè)頻帶的激活值,定義為pm=[pm,1pm,1…pm,J]T計(jì)算過(guò)程如下
pm,j=max(hm×n+k,j)
(2)
式中k從1到r,r為采樣的大小。輸入層到卷積層中間有多個(gè)卷積核,可以在卷積層得到相同數(shù)量的特征圖,采樣層是對(duì)卷積層的采樣,因此,特征圖的大小會(huì)改變而數(shù)量不會(huì)改變,交替進(jìn)行,再加一個(gè)全連接層,最后由分類(lèi)器輸出結(jié)果。輸出的結(jié)果與對(duì)應(yīng)的標(biāo)簽比較,通過(guò)反向傳播算法,調(diào)整權(quán)值,使之最佳,最終得到性能最好的神經(jīng)網(wǎng)絡(luò)。
整體算法流程如圖2所示。
圖2 整體算法流程
算法分為2個(gè)階段:訓(xùn)練階段和識(shí)別階段。前者利用未帶噪聲的面罩語(yǔ)音來(lái)訓(xùn)練CNN;后者對(duì)帶噪的面罩語(yǔ)音進(jìn)行識(shí)別。首先對(duì)測(cè)試集的面罩語(yǔ)音進(jìn)行增強(qiáng)處理,抑制海洋噪聲,然后分別對(duì)訓(xùn)練集和測(cè)試集進(jìn)行端點(diǎn)檢測(cè),本文采用雙門(mén)限法,對(duì)檢測(cè)到的有話(huà)段提取Mel頻率倒譜系數(shù)(Mel frequency cepstrum coefficient,MFCC)作為訓(xùn)練網(wǎng)絡(luò)和測(cè)試網(wǎng)絡(luò)的輸入。
2.2.1譜減法
譜減法[10]的基本原理如圖3所示。先對(duì)語(yǔ)音信號(hào)進(jìn)行快速傅里葉變換(fast Fourier transform,FFT),將語(yǔ)音信號(hào)轉(zhuǎn)換到頻域,計(jì)算語(yǔ)音信號(hào)的功率譜并根據(jù)語(yǔ)音信號(hào)前導(dǎo)無(wú)音段估計(jì)噪聲的平均功率譜,那么用語(yǔ)音信號(hào)的功率譜減去噪聲的功率譜,得到干凈語(yǔ)音信號(hào)的功率譜,最后根據(jù)保留的相角,用快速傅里葉逆變換(inverse FFT,IFFT)合成時(shí)域的語(yǔ)音信號(hào),即增強(qiáng)后的語(yǔ)音信號(hào)。
圖3 譜減算法基本原理
2.2.2維納濾波算法
假設(shè)語(yǔ)音信號(hào)為
y(n)=s(n)+d(n)
(3)
式中s(n)為語(yǔ)音信號(hào);d(n)為噪聲信號(hào);經(jīng)FFT后,語(yǔ)音信號(hào)由時(shí)域變換到頻域,因此有
Yi(k)=Si(k)+Di(k)
(4)
維納濾波法[11]濾波器的增益函數(shù)為
(5)
式中ξi(k)為先驗(yàn)信噪比。則增強(qiáng)后的語(yǔ)音為
(6)
2.2.3譜熵法
假設(shè)語(yǔ)音信號(hào)為s(n),加窗分幀后得到第i幀語(yǔ)音信號(hào)為Si(m),經(jīng)過(guò)FFT后,第k條線(xiàn)譜線(xiàn)頻率分量fs的能量譜為Yi(k),則每個(gè)頻率分量的歸一化概率密度為
(7)
式中N為FFT的長(zhǎng)度,則每個(gè)語(yǔ)音幀的短時(shí)譜熵
(8)
根據(jù)最大離散定理可知,等概率分布時(shí)熵達(dá)到最大值,對(duì)于噪聲來(lái)說(shuō),歸一化譜概率密度分布比較均勻,譜熵[12]值相對(duì)于語(yǔ)音比較大,因此,可以利用這個(gè)特性進(jìn)行端點(diǎn)檢測(cè),進(jìn)而判斷有話(huà)幀和無(wú)話(huà)幀。
2.2.4改進(jìn)的維納濾波算法
通過(guò)譜熵法檢測(cè)無(wú)話(huà)幀,更新噪聲的功率譜,引入?yún)?shù) 來(lái)控制增益函數(shù),減少語(yǔ)音信號(hào)的失真。
1)根據(jù)無(wú)話(huà)段估計(jì)噪聲的平均功率譜作為初始值,NIS為前導(dǎo)無(wú)話(huà)段幀數(shù)
(9)
2)通過(guò)譜熵法端點(diǎn)檢測(cè)判斷有話(huà)幀和無(wú)話(huà)幀,對(duì)于無(wú)話(huà)幀,更新噪聲功率譜;對(duì)于有話(huà)幀,先計(jì)算其后驗(yàn)信噪比
(10)
3)根據(jù)后驗(yàn)信噪比計(jì)算其先驗(yàn)信噪比
(11)
式中α為平滑參數(shù)。
4)求增益函數(shù)Gi(k)。為減少語(yǔ)音失真,引入增益函數(shù)控制參數(shù)β,此時(shí)的增益函數(shù)為
(12)
隨著β的增大,在減少噪聲的同時(shí),也會(huì)引入語(yǔ)音的失真,通過(guò)多次實(shí)驗(yàn)優(yōu)化參數(shù)β,本實(shí)驗(yàn)β取值2/3。
特征參數(shù)采用語(yǔ)音信號(hào)的美爾頻率倒譜系數(shù),基于人耳的聽(tīng)覺(jué)特性,將語(yǔ)音信號(hào)的頻譜轉(zhuǎn)換到感知域中,能更好模擬人的聽(tīng)覺(jué)機(jī)理。本文取美爾頻率倒譜系數(shù)和一階對(duì)數(shù)能量譜及其一階差分系數(shù)和二階差分系數(shù),即每幀語(yǔ)音信號(hào)的維數(shù)為39維。
本文的CNN結(jié)構(gòu)為:不包括輸入層在內(nèi),采用了6層的CNN,前4層為卷積層和池化層交替進(jìn)行,卷積核的大小為5×5,池化的大小為2×2,特征圖的個(gè)數(shù)分別為10和20個(gè),在每個(gè)池化層后增加了局部響應(yīng)歸一化(local response normalization,LRN)處理優(yōu)化神經(jīng)網(wǎng)絡(luò),接著是全連接層和輸出層,輸出層采用Softmax分類(lèi)器。其中LRN模仿生物神經(jīng)系統(tǒng)的“側(cè)抑制”機(jī)制,對(duì)局部神經(jīng)元的活動(dòng)創(chuàng)建競(jìng)爭(zhēng)環(huán)境,使得其中較大的值變得更大,并抑制其他值較小的神經(jīng)元,增強(qiáng)整個(gè)神經(jīng)網(wǎng)絡(luò)的泛化能力。CNN的訓(xùn)練過(guò)程如下:
1)神經(jīng)網(wǎng)絡(luò)的前向傳播,并計(jì)算出傳播過(guò)程中L2,L3,…,Lnt各層節(jié)點(diǎn)的激活。
2)對(duì)于最后一層輸出層,計(jì)算輸出值和樣本的殘差
δ(nt)=-(y-a(nt))·f′(z(nt))
(13)
3)對(duì)于中間的隱含層,計(jì)算各個(gè)節(jié)點(diǎn)的殘差
δ(l)=-((wl)Tδ(l+1))·f′(zl)
(14)
4)計(jì)算最終需要的偏倒數(shù)
(15)
(16)
5)使用梯度下降法,對(duì)網(wǎng)絡(luò)的參數(shù)w和b進(jìn)行調(diào)整
(17)
(18)
使用梯度下降法調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)的目的為使代價(jià)函數(shù)獲得最小值,能得到性能最佳的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)代價(jià)函數(shù)的定義為
(19)
全體代價(jià)函數(shù)的定義為
(20)
實(shí)驗(yàn)仿真的平臺(tái)為谷歌的TensorFlow深度學(xué)習(xí)框架,實(shí)驗(yàn)面罩語(yǔ)音采用10個(gè)同學(xué)(4個(gè)男生,6個(gè)女生)錄制的20個(gè)孤立詞,共1400個(gè)面罩語(yǔ)音作為實(shí)驗(yàn)的語(yǔ)音,其中,1000個(gè)作為訓(xùn)練集,剩下的400個(gè)作為測(cè)試集。面罩語(yǔ)音為單聲道、采樣頻率為16000Hz,編碼數(shù)16bit,幀長(zhǎng)為25ms,幀移為10ms,提取語(yǔ)音信號(hào)的Mel頻率倒譜系數(shù)作為特征參數(shù)。
3.2.1面罩語(yǔ)音增強(qiáng)結(jié)果與分析
先對(duì)面罩語(yǔ)音進(jìn)行增強(qiáng)處理,分別用譜減法和維納濾波法對(duì)添加不同信噪比(-5,0,5,10dB)海浪和海水噪聲的面罩語(yǔ)音增強(qiáng)。圖4給出了原始語(yǔ)音信號(hào)的時(shí)域波形,圖5給出了海浪和海水噪聲干擾下,譜減法、維納濾波法和本文方法時(shí)域波形,信噪比為0dB。
圖4 原始語(yǔ)音
(a) 海浪
(b) 海水圖5 海浪和海水噪聲環(huán)境下增強(qiáng)后波形
從圖5中可以看出,譜減法在增強(qiáng)過(guò)程中,會(huì)產(chǎn)生明顯的音樂(lè)噪聲,維納濾波法在對(duì)海浪噪聲干擾下的面罩語(yǔ)音增強(qiáng)過(guò)程中會(huì)產(chǎn)生輕微的失真,改進(jìn)的維納濾波法相對(duì)于譜減法音樂(lè)噪聲減小,相對(duì)于維納濾波法失真減小。
3.2.2面罩語(yǔ)音識(shí)別結(jié)果與分析
實(shí)驗(yàn)分別用傳統(tǒng)和增加了LRN處理的CNN對(duì)未加噪聲的面罩進(jìn)行訓(xùn)練和識(shí)別。針對(duì)本實(shí)驗(yàn)錄制的面罩語(yǔ)音,2種算法均能夠?qū)崿F(xiàn)較高的識(shí)別率,未加LRN處理的識(shí)別率為98%,加LRN處理后的識(shí)別率為98.50%,結(jié)果表明優(yōu)化的可行,且相對(duì)于不加LRN處理的識(shí)別率有所提高。
測(cè)試本文設(shè)計(jì)的識(shí)別系統(tǒng),其中SS代表譜減法,WF代表維納濾波法,IWF代表改進(jìn)的維納濾波法,CNN代表已經(jīng)優(yōu)化的CNN。表1和表2分別給出了本文算法對(duì)于添加不同信噪比海浪噪聲和海水噪聲面罩語(yǔ)音的識(shí)別率。
表1 添加海浪噪聲4種方法的識(shí)別率
表2 添加海水噪聲4種方法的識(shí)別率
由數(shù)據(jù)可以看出,只用CNN識(shí)別在低信噪比的情況下識(shí)別率非常低,隨著信噪比的提高識(shí)別率會(huì)有所提高。即在海洋背景噪聲大的情況下,面罩語(yǔ)音識(shí)別的性能很差。本文系統(tǒng)能夠顯著提高面罩語(yǔ)音的識(shí)別率。
本文提出了一種結(jié)合語(yǔ)音增強(qiáng)算法與優(yōu)化的卷積神經(jīng)網(wǎng)絡(luò)的面罩語(yǔ)音識(shí)別方法,通過(guò)在池化層后做局部響應(yīng)歸一化處理,提高了卷積神經(jīng)網(wǎng)絡(luò)的泛化能力,實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)能夠在很大程度上提高帶有不同信噪比海洋噪聲的面罩語(yǔ)音識(shí)別率,本文提出的語(yǔ)音增強(qiáng)算法與CNN相結(jié)合的方法對(duì)帶噪面罩語(yǔ)音的識(shí)別效果更好。在低信噪比下,面罩語(yǔ)音識(shí)別率雖然有較大提高,但總體識(shí)別率仍然有待提高。
[1] 楊士莪.研究海洋 開(kāi)發(fā)海洋——海洋環(huán)境及海洋資源調(diào)查、監(jiān)測(cè)技術(shù)概述[J].艦船科學(xué)技術(shù),2008,30(5):17-19.
[2] Abdel-Hamid O,Mohamed A R,Jiang H,et al.Applying convolutional neural networks concepts to hybrid NN-HMM model for speech recognition[C]∥IEEE International Conference on Acoustics,Speech and Signal Processing,IEEE,2012:4277-4280.
[3] Sainath T N,Mohamed A R,Kingsbury B,et al.Deep convolutio-nal neural networks for LVCSR[C]∥IEEE International Confe-rence on Acoustics,Speech and Signal Processing,IEEE,2013:8614-8618.
[4] Abdel-Hamid O,Mohamed A R,Jiang H,et al.Convolutional neural networks for speech recognition[J].IEEE/ACM Transactions on Audio Speech & Language Processing,2014,22(10):1533-1545.
[5] Yoshioka T,Karita S,Nakatani T.Far-field speech recognition using CNN-DNN-HMM with convolution in time[C]∥IEEE International Conference on Acoustics,Speech and Signal Processing,IEEE,2015:4360-4364.
[6] 張晴晴,劉 勇,潘接林,等.基于卷積神經(jīng)網(wǎng)絡(luò)的連續(xù)語(yǔ)音識(shí)別[J].工程科學(xué)學(xué)報(bào),2015,37(9):1212-1217.
[7] Qian Y,Woodland P C.Very deep convolutional neural networks for robust speech recognition[C]∥IEEE Global Conference on Signal and Information Processing,IEEE,2016:481-488.
[8] Huang J T,Li J,Gong Y.An analysis of convolutional neural networks for speech recognition[C]∥IEEE International Conference on Acoustics,Speech and Signal Processing,IEEE,2015:4989-4993.
[9] 張 軍,張 婷,楊正瓴,等.深度卷積神經(jīng)網(wǎng)絡(luò)的汽車(chē)車(chē)型識(shí)別方法[J].傳感器與微系統(tǒng),2016,35(11):19-22.
[10] 宋知用.Matlab在語(yǔ)音信號(hào)分析與合成中的應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2013.
[11] Cheng C.Research on speech enhancement based on Wiener filtering[J].Applied Mechanics & Materials,2014,513-517:3130-3133.
[12] 杜志然,周 萍,景新幸,等.基于譜熵的耳語(yǔ)音增強(qiáng)研究[J].傳感器與微系統(tǒng),2012,31(6):69-72.
Maskspeechrecognitionbasedonconvolutionalneuralnetwork*
WANG Xia1, DU Gui-ming1, WANG Guang-yan2, ZHANG Yan1
(1.SchoolofElectronicandInformationEngineering,HebeiUniversityofTechnology,Tianjin300401,China;2.SchoolofInformationEngineering,TianjinUniversityofCommerce,Tianjin300134,China)
Aiming at problem of low mask speech recognition rate of noise mask speech,mask speech recognition method based on improved convolutional neural network(CNN) is proposed.Combine speech enhancement algorithm to suppress noise of mask speech and increase signal-to-noise ratio(SNR).An improved Wiener filtering algorithm is proposed for speech enhancement.Using spectral entropy algorithm to detect the frame which has speech to update noise power spectrum.At the same time,introducing parameterβto control gain function.Extract Mel frequency cepstrum coefficient(MFCC) as characteristic parameters.Use CNN for training and recognization.The CNN includes two convolution layers,two pooling layers,one fully connected layer and a softmax classifier.And add local response normalization(LRN) after every pooling layer to optimize CNN.The experimental results show that the recognition system can greatly improve the recognition rate of noisy mask speech.
mask speech recognition; convolutional neural network(CNN); speech enhancement; Wiener filtering algorithm
2017—08—30
天津市自然科學(xué)基金重點(diǎn)資助項(xiàng)目(14JCZDJC32600)
10.13873/J.1000—9787(2017)10—0031—04
TN 912
A
1000—9787(2017)10—0031—04
王 霞(1970-),女,博士,教授,碩士生導(dǎo)師,研究領(lǐng)域?yàn)橛?jì)算機(jī)視覺(jué)、語(yǔ)音信號(hào)處理,E—mail:wangx@hebut.edu.cn。