王 霞, 杜桂明, 王光艷, 張 艷
(1.河北工業(yè)大學 電子信息工程學院,天津 300401; 2.天津商業(yè)大學 信息工程學院,天津 300134)
基于卷積神經(jīng)網(wǎng)絡(luò)的面罩語音識別*
王 霞1, 杜桂明1, 王光艷2, 張 艷1
(1.河北工業(yè)大學電子信息工程學院,天津300401;2.天津商業(yè)大學信息工程學院,天津300134)
針對帶噪面罩語音識別率低的問題,結(jié)合語音增強算法,對面罩語音進行噪聲抑制處理,提高信噪比,在語音增強中提出了一種改進的維納濾波法,通過譜熵法檢測有話幀和無話幀來更新噪聲功率譜,同時引入?yún)?shù) 控制增益函數(shù);提取面罩語音信號的Mel頻率倒譜系數(shù)(MFCC)作為特征參數(shù);通過卷積神經(jīng)網(wǎng)絡(luò)(CNN)進行訓練和識別,并在每個池化層后經(jīng)局部響應(yīng)歸一化(LRN)進行優(yōu)化。實驗結(jié)果表明:該識別系統(tǒng)能夠在很大程度上提高帶噪面罩語音的識別率。
面罩語音識別; 卷積神經(jīng)網(wǎng)絡(luò); 語音增強; 維納濾波法
面罩語音識別有助于潛水人員的交流[1],近些年,深度神經(jīng)網(wǎng)絡(luò)(deep neural network,DNN)在語音識別上顯示出了獨特的優(yōu)勢。2012年,Ossama Abdel-Hamid等人通過研究發(fā)現(xiàn),卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)相對于神經(jīng)網(wǎng)絡(luò)(NN)和通過限制玻爾茲曼機(restricted Boltzmann machine,RBM)初始化權(quán)重的NN識別率較高[2]。2013年,Tara N Sainath等人通過比較CNN與DNN和高斯混合模型(Gaussian mixture model,GMM)的語音識別性能,得出了CNN在語音識別上有更好的性能[3]。2014年,Ossama Abdel-Hamid等人又對CNN進行了深入研究,得出了CNN相對于DNN性能有很大的提高[4]。2015年Takuya Yoshioka等人提出了CNN-DNN-HMM的模型來進行語音識別[5];張晴晴通過比較CNN的尺寸來分析CNN在語音識別方面的性能[6]。2016年,Qian Yanmin等人研究改變卷積層的數(shù)量、大小和池化層的尺寸等實現(xiàn)了錯詞率的下降,通過搭建與長短記憶—循環(huán)神經(jīng)網(wǎng)絡(luò)(LSTM-RNN)相結(jié)合的模型,錯詞率也有所下降[7]。
實際中,淺海水聲通信通常會有海洋噪聲的干擾,導致語音識別的識別率嚴重下降,影響人機交互的正常進行。
本文設(shè)計了面罩語音識別系統(tǒng),提出了一種改進的維納濾波算法對帶有海洋噪聲面罩語音增強,然后通過優(yōu)化的CNN來進行面罩語音識別,與級聯(lián)譜減法和維納濾波法相比,該識別系統(tǒng)具有較好的識別效果。
CNN由輸入層、輸出層和中間的隱含層組成,中間的隱含層由多對卷積層、池化層交替組成。屬于多階段全局可訓練的神經(jīng)網(wǎng)絡(luò)模型,主要有三個特征:局部接收域、全局共享和子采樣[8,9]。這些特征可以保證在輸入目標平移、縮放和扭曲一定程度上的不變性,結(jié)構(gòu)如圖1所示。
圖1 CNN的結(jié)構(gòu)
假設(shè)語音信號作為輸入層且有B個頻帶,則有v=[v1v2…vb…vB],vb為頻帶b對應(yīng)的特征矢量。卷積層的激活值被分為K個頻帶,每個頻帶包含J個濾波器激活值。假設(shè)每個頻帶定義為hk=[hk,1hk,2…h(huán)k,J],卷積層的激活值可以通過前一層的值與卷積核進行卷積運算得到
(1)
式中θ(x)為非線性激活函數(shù),本文采用Relu函數(shù);s為輸入層濾波器的大小;wb,j為對應(yīng)的權(quán)重矢量。
假設(shè)池化層被劃分為M個頻帶,每個頻帶接收r個卷積層激活值,通常有最大值采樣和均值采樣,本文采用最大池化,對n個頻帶取最大值,則m個頻帶的激活值,定義為pm=[pm,1pm,1…pm,J]T計算過程如下
pm,j=max(hm×n+k,j)
(2)
式中k從1到r,r為采樣的大小。輸入層到卷積層中間有多個卷積核,可以在卷積層得到相同數(shù)量的特征圖,采樣層是對卷積層的采樣,因此,特征圖的大小會改變而數(shù)量不會改變,交替進行,再加一個全連接層,最后由分類器輸出結(jié)果。輸出的結(jié)果與對應(yīng)的標簽比較,通過反向傳播算法,調(diào)整權(quán)值,使之最佳,最終得到性能最好的神經(jīng)網(wǎng)絡(luò)。
整體算法流程如圖2所示。
圖2 整體算法流程
算法分為2個階段:訓練階段和識別階段。前者利用未帶噪聲的面罩語音來訓練CNN;后者對帶噪的面罩語音進行識別。首先對測試集的面罩語音進行增強處理,抑制海洋噪聲,然后分別對訓練集和測試集進行端點檢測,本文采用雙門限法,對檢測到的有話段提取Mel頻率倒譜系數(shù)(Mel frequency cepstrum coefficient,MFCC)作為訓練網(wǎng)絡(luò)和測試網(wǎng)絡(luò)的輸入。
2.2.1譜減法
譜減法[10]的基本原理如圖3所示。先對語音信號進行快速傅里葉變換(fast Fourier transform,FFT),將語音信號轉(zhuǎn)換到頻域,計算語音信號的功率譜并根據(jù)語音信號前導無音段估計噪聲的平均功率譜,那么用語音信號的功率譜減去噪聲的功率譜,得到干凈語音信號的功率譜,最后根據(jù)保留的相角,用快速傅里葉逆變換(inverse FFT,IFFT)合成時域的語音信號,即增強后的語音信號。
圖3 譜減算法基本原理
2.2.2維納濾波算法
假設(shè)語音信號為
y(n)=s(n)+d(n)
(3)
式中s(n)為語音信號;d(n)為噪聲信號;經(jīng)FFT后,語音信號由時域變換到頻域,因此有
Yi(k)=Si(k)+Di(k)
(4)
維納濾波法[11]濾波器的增益函數(shù)為
(5)
式中ξi(k)為先驗信噪比。則增強后的語音為
(6)
2.2.3譜熵法
假設(shè)語音信號為s(n),加窗分幀后得到第i幀語音信號為Si(m),經(jīng)過FFT后,第k條線譜線頻率分量fs的能量譜為Yi(k),則每個頻率分量的歸一化概率密度為
(7)
式中N為FFT的長度,則每個語音幀的短時譜熵
(8)
根據(jù)最大離散定理可知,等概率分布時熵達到最大值,對于噪聲來說,歸一化譜概率密度分布比較均勻,譜熵[12]值相對于語音比較大,因此,可以利用這個特性進行端點檢測,進而判斷有話幀和無話幀。
2.2.4改進的維納濾波算法
通過譜熵法檢測無話幀,更新噪聲的功率譜,引入?yún)?shù) 來控制增益函數(shù),減少語音信號的失真。
1)根據(jù)無話段估計噪聲的平均功率譜作為初始值,NIS為前導無話段幀數(shù)
(9)
2)通過譜熵法端點檢測判斷有話幀和無話幀,對于無話幀,更新噪聲功率譜;對于有話幀,先計算其后驗信噪比
(10)
3)根據(jù)后驗信噪比計算其先驗信噪比
(11)
式中α為平滑參數(shù)。
4)求增益函數(shù)Gi(k)。為減少語音失真,引入增益函數(shù)控制參數(shù)β,此時的增益函數(shù)為
(12)
隨著β的增大,在減少噪聲的同時,也會引入語音的失真,通過多次實驗優(yōu)化參數(shù)β,本實驗β取值2/3。
特征參數(shù)采用語音信號的美爾頻率倒譜系數(shù),基于人耳的聽覺特性,將語音信號的頻譜轉(zhuǎn)換到感知域中,能更好模擬人的聽覺機理。本文取美爾頻率倒譜系數(shù)和一階對數(shù)能量譜及其一階差分系數(shù)和二階差分系數(shù),即每幀語音信號的維數(shù)為39維。
本文的CNN結(jié)構(gòu)為:不包括輸入層在內(nèi),采用了6層的CNN,前4層為卷積層和池化層交替進行,卷積核的大小為5×5,池化的大小為2×2,特征圖的個數(shù)分別為10和20個,在每個池化層后增加了局部響應(yīng)歸一化(local response normalization,LRN)處理優(yōu)化神經(jīng)網(wǎng)絡(luò),接著是全連接層和輸出層,輸出層采用Softmax分類器。其中LRN模仿生物神經(jīng)系統(tǒng)的“側(cè)抑制”機制,對局部神經(jīng)元的活動創(chuàng)建競爭環(huán)境,使得其中較大的值變得更大,并抑制其他值較小的神經(jīng)元,增強整個神經(jīng)網(wǎng)絡(luò)的泛化能力。CNN的訓練過程如下:
1)神經(jīng)網(wǎng)絡(luò)的前向傳播,并計算出傳播過程中L2,L3,…,Lnt各層節(jié)點的激活。
2)對于最后一層輸出層,計算輸出值和樣本的殘差
δ(nt)=-(y-a(nt))·f′(z(nt))
(13)
3)對于中間的隱含層,計算各個節(jié)點的殘差
δ(l)=-((wl)Tδ(l+1))·f′(zl)
(14)
4)計算最終需要的偏倒數(shù)
(15)
(16)
5)使用梯度下降法,對網(wǎng)絡(luò)的參數(shù)w和b進行調(diào)整
(17)
(18)
使用梯度下降法調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)的目的為使代價函數(shù)獲得最小值,能得到性能最佳的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)代價函數(shù)的定義為
(19)
全體代價函數(shù)的定義為
(20)
實驗仿真的平臺為谷歌的TensorFlow深度學習框架,實驗面罩語音采用10個同學(4個男生,6個女生)錄制的20個孤立詞,共1400個面罩語音作為實驗的語音,其中,1000個作為訓練集,剩下的400個作為測試集。面罩語音為單聲道、采樣頻率為16000Hz,編碼數(shù)16bit,幀長為25ms,幀移為10ms,提取語音信號的Mel頻率倒譜系數(shù)作為特征參數(shù)。
3.2.1面罩語音增強結(jié)果與分析
先對面罩語音進行增強處理,分別用譜減法和維納濾波法對添加不同信噪比(-5,0,5,10dB)海浪和海水噪聲的面罩語音增強。圖4給出了原始語音信號的時域波形,圖5給出了海浪和海水噪聲干擾下,譜減法、維納濾波法和本文方法時域波形,信噪比為0dB。
圖4 原始語音
(a) 海浪
(b) 海水圖5 海浪和海水噪聲環(huán)境下增強后波形
從圖5中可以看出,譜減法在增強過程中,會產(chǎn)生明顯的音樂噪聲,維納濾波法在對海浪噪聲干擾下的面罩語音增強過程中會產(chǎn)生輕微的失真,改進的維納濾波法相對于譜減法音樂噪聲減小,相對于維納濾波法失真減小。
3.2.2面罩語音識別結(jié)果與分析
實驗分別用傳統(tǒng)和增加了LRN處理的CNN對未加噪聲的面罩進行訓練和識別。針對本實驗錄制的面罩語音,2種算法均能夠?qū)崿F(xiàn)較高的識別率,未加LRN處理的識別率為98%,加LRN處理后的識別率為98.50%,結(jié)果表明優(yōu)化的可行,且相對于不加LRN處理的識別率有所提高。
測試本文設(shè)計的識別系統(tǒng),其中SS代表譜減法,WF代表維納濾波法,IWF代表改進的維納濾波法,CNN代表已經(jīng)優(yōu)化的CNN。表1和表2分別給出了本文算法對于添加不同信噪比海浪噪聲和海水噪聲面罩語音的識別率。
表1 添加海浪噪聲4種方法的識別率
表2 添加海水噪聲4種方法的識別率
由數(shù)據(jù)可以看出,只用CNN識別在低信噪比的情況下識別率非常低,隨著信噪比的提高識別率會有所提高。即在海洋背景噪聲大的情況下,面罩語音識別的性能很差。本文系統(tǒng)能夠顯著提高面罩語音的識別率。
本文提出了一種結(jié)合語音增強算法與優(yōu)化的卷積神經(jīng)網(wǎng)絡(luò)的面罩語音識別方法,通過在池化層后做局部響應(yīng)歸一化處理,提高了卷積神經(jīng)網(wǎng)絡(luò)的泛化能力,實驗結(jié)果表明,該系統(tǒng)能夠在很大程度上提高帶有不同信噪比海洋噪聲的面罩語音識別率,本文提出的語音增強算法與CNN相結(jié)合的方法對帶噪面罩語音的識別效果更好。在低信噪比下,面罩語音識別率雖然有較大提高,但總體識別率仍然有待提高。
[1] 楊士莪.研究海洋 開發(fā)海洋——海洋環(huán)境及海洋資源調(diào)查、監(jiān)測技術(shù)概述[J].艦船科學技術(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ù)語音識別[J].工程科學學報,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ò)的汽車車型識別方法[J].傳感器與微系統(tǒng),2016,35(11):19-22.
[10] 宋知用.Matlab在語音信號分析與合成中的應(yīng)用[M].北京:北京航空航天大學出版社,2013.
[11] Cheng C.Research on speech enhancement based on Wiener filtering[J].Applied Mechanics & Materials,2014,513-517:3130-3133.
[12] 杜志然,周 萍,景新幸,等.基于譜熵的耳語音增強研究[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
天津市自然科學基金重點資助項目(14JCZDJC32600)
10.13873/J.1000—9787(2017)10—0031—04
TN 912
A
1000—9787(2017)10—0031—04
王 霞(1970-),女,博士,教授,碩士生導師,研究領(lǐng)域為計算機視覺、語音信號處理,E—mail:wangx@hebut.edu.cn。