1、基于卷积神经网络的面罩语音识别 王霞 杜桂明 王光艳 张艳 河北工业大学电子信息工程学院 天津商业大学信息工程学院 摘 要: 针对带噪面罩语音识别率低的问题, 结合语音增强算法, 对面罩语音进行噪声抑制处理, 提高信噪比, 在语音增强中提出了一种改进的维纳滤波法, 通过谱熵法检测有话帧和无话帧来更新噪声功率谱, 同时引入参数控制增益函数;提取面罩语音信号的 Mel 频率倒谱系数 (MFCC) 作为特征参数;通过卷积神经网络 (CNN) 进行训练和识别, 并在每个池化层后经局部响应归一化 (LRN) 进行优化。实验结果表明:该识别系统能够在很大程度上提高带噪面罩语音的识别率。关键词: 面罩语音识
2、别; 卷积神经网络; 语音增强; 维纳滤波法; 作者简介:王霞 (1970-) , 女, 博士, 教授, 硕士生导师, 研究领域为计算机视觉、语音信号处理, E-mail:。收稿日期:2017-08-30基金:天津市自然科学基金重点资助项目 (14JCZDJC32600) Mask speech recognition based on convolutional neural networkWANG Xia DU Gui-ming WANG Guang-yan ZHANG Yan School of Electronic and Information Engineering, Hebei
3、University of Technology; School of Information Engineering, Tianjin University of Commerce; Abstract: 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 enhancem
4、ent 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 pa
5、rameter 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 normaliza
6、tion ( 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.Keyword: mask speech recognition; convolutional neural network (CNN) ; speech enhancement; Wiener filtering algorithm; Receiv
7、ed: 2017-08-300 引言面罩语音识别有助于潜水人员的交流1, 近些年, 深度神经网络 (deep neural network, DNN) 在语音识别上显示出了独特的优势。2012 年, Ossama Abdel-Hamid 等人通过研究发现, 卷积神经网络 (convolutional neural network, CNN) 相对于神经网络 (NN) 和通过限制玻尔兹曼机 (restricted Boltzmann machine, RBM) 初始化权重的 NN 识别率较高2。2013 年, Tara N Sainath 等人通过比较 CNN 与 DNN 和高斯混合模型 (Ga
8、ussian 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 等人研究改变卷积层的数量、大小和池化层的尺寸等实现了错词率的下降, 通过搭建与长短记忆循环神经网络 (LSTM-RNN) 相结
9、合的模型, 错词率也有所下降7。实际中, 浅海水声通信通常会有海洋噪声的干扰, 导致语音识别的识别率严重下降, 影响人机交互的正常进行。本文设计了面罩语音识别系统, 提出了一种改进的维纳滤波算法对带有海洋噪声面罩语音增强, 然后通过优化的 CNN 来进行面罩语音识别, 与级联谱减法和维纳滤波法相比, 该识别系统具有较好的识别效果。1 CNN 算法原理CNN 由输入层、输出层和中间的隐含层组成, 中间的隐含层由多对卷积层、池化层交替组成。属于多阶段全局可训练的神经网络模型, 主要有三个特征:局部接收域、全局共享和子采样8,9。这些特征可以保证在输入目标平移、缩放和扭曲一定程度上的不变性, 结构如
10、图 1 所示。图 1 CNN 的结构 下载原图假设语音信号作为输入层且有 B 个频带, 则有 v=v1v2vbvB, vb为频带 b 对应的特征矢量。卷积层的激活值被分为 K 个频带, 每个频带包含 J 个滤波器激活值。假设每个频带定义为 hk=hk, 1hk, 2hk, J, 卷积层的激活值可以通过前一层的值与卷积核进行卷积运算得到式中 (x) 为非线性激活函数, 本文采用 Relu 函数;s 为输入层滤波器的大小;wb, j为对应的权重矢量。假设池化层被划分为 M 个频带, 每个频带接收 r 个卷积层激活值, 通常有最大值采样和均值采样, 本文采用最大池化, 对 n 个频带取最大值, 则
11、m 个频带的激活值, 定义为 pm=pm, 1pm, 1pm, J计算过程如下式中 k 从 1 到 r, r 为采样的大小。输入层到卷积层中间有多个卷积核, 可以在卷积层得到相同数量的特征图, 采样层是对卷积层的采样, 因此, 特征图的大小会改变而数量不会改变, 交替进行, 再加一个全连接层, 最后由分类器输出结果。输出的结果与对应的标签比较, 通过反向传播算法, 调整权值, 使之最佳, 最终得到性能最好的神经网络。2 基于 CNN 的面罩语音识别2.1 算法整体流程整体算法流程如图 2 所示。算法分为 2 个阶段:训练阶段和识别阶段。前者利用未带噪声的面罩语音来训练CNN;后者对带噪的面罩语
12、音进行识别。首先对测试集的面罩语音进行增强处理, 抑制海洋噪声, 然后分别对训练集和测试集进行端点检测, 本文采用双门限法, 对检测到的有话段提取 Mel 频率倒谱系数 (Mel frequency cepstrum coefficient, MFCC) 作为训练网络和测试网络的输入。图 2 整体算法流程 下载原图2.2 面罩语音增强2.2.1 谱减法谱减法10的基本原理如图 3 所示。先对语音信号进行快速傅里叶变换 (fast Fourier transform, FFT) , 将语音信号转换到频域, 计算语音信号的功率谱并根据语音信号前导无音段估计噪声的平均功率谱, 那么用语音信号的功率谱
13、减去噪声的功率谱, 得到干净语音信号的功率谱, 最后根据保留的相角, 用快速傅里叶逆变换 (inverse FFT, IFFT) 合成时域的语音信号, 即增强后的语音信号。图 3 谱减算法基本原理 下载原图2.2.2 维纳滤波算法假设语音信号为式中 s (n) 为语音信号;d (n) 为噪声信号;经 FFT 后, 语音信号由时域变换到频域, 因此有维纳滤波法11滤波器的增益函数为式中 i (k) 为先验信噪比。则增强后的语音为2.2.3 谱熵法假设语音信号为 s (n) , 加窗分帧后得到第 i 帧语音信号为 Si (m) , 经过 FFT后, 第 k 条线谱线频率分量 fs的能量谱为 Yi
14、(k) , 则每个频率分量的归一化概率密度为式中 N 为 FFT 的长度, 则每个语音帧的短时谱熵根据最大离散定理可知, 等概率分布时熵达到最大值, 对于噪声来说, 归一化谱概率密度分布比较均匀, 谱熵12值相对于语音比较大, 因此, 可以利用这个特性进行端点检测, 进而判断有话帧和无话帧。2.2.4 改进的维纳滤波算法通过谱熵法检测无话帧, 更新噪声的功率谱, 引入参数来控制增益函数, 减少语音信号的失真。1) 根据无话段估计噪声的平均功率谱作为初始值, NIS 为前导无话段帧数2) 通过谱熵法端点检测判断有话帧和无话帧, 对于无话帧, 更新噪声功率谱;对于有话帧, 先计算其后验信噪比3)
15、根据后验信噪比计算其先验信噪比式中 为平滑参数。4) 求增益函数 Gi (k) 。为减少语音失真, 引入增益函数控制参数 , 此时的增益函数为随着 的增大, 在减少噪声的同时, 也会引入语音的失真, 通过多次实验优化参数 , 本实验 取值 2/3。2.3 特征参数提取特征参数采用语音信号的美尔频率倒谱系数, 基于人耳的听觉特性, 将语音信号的频谱转换到感知域中, 能更好模拟人的听觉机理。本文取美尔频率倒谱系数和一阶对数能量谱及其一阶差分系数和二阶差分系数, 即每帧语音信号的维数为 39 维。2.4 改进的 CNN本文的 CNN 结构为:不包括输入层在内, 采用了 6 层的 CNN, 前 4 层
16、为卷积层和池化层交替进行, 卷积核的大小为 55, 池化的大小为 22, 特征图的个数分别为 10 和 20 个, 在每个池化层后增加了局部响应归一化 (local response normalization, LRN) 处理优化神经网络, 接着是全连接层和输出层, 输出层采用 Softmax 分类器。其中 LRN 模仿生物神经系统的“侧抑制”机制, 对局部神经元的活动创建竞争环境, 使得其中较大的值变得更大, 并抑制其他值较小的神经元, 增强整个神经网络的泛化能力。CNN 的训练过程如下:1) 神经网络的前向传播, 并计算出传播过程中 L2, L3, , Lnt各层节点的激活。2) 对于最
17、后一层输出层, 计算输出值和样本的残差3) 对于中间的隐含层, 计算各个节点的残差4) 计算最终需要的偏倒数5) 使用梯度下降法, 对网络的参数 w 和 b 进行调整使用梯度下降法调节神经网络结构参数的目的为使代价函数获得最小值, 能得到性能最佳的神经网络结构代价函数的定义为全体代价函数的定义为3 实验结果与分析3.1 仿真平台搭建实验仿真的平台为谷歌的 Tensor Flow 深度学习框架, 实验面罩语音采用 10 个同学 (4 个男生, 6 个女生) 录制的 20 个孤立词, 共 1 400 个面罩语音作为实验的语音, 其中, 1 000 个作为训练集, 剩下的 400 个作为测试集。面罩
18、语音为单声道、采样频率为 16 000 Hz, 编码数 16 bit, 帧长为 25 ms, 帧移为 10 ms, 提取语音信号的 Mel 频率倒谱系数作为特征参数。3.2 仿真结果与分析3.2.1 面罩语音增强结果与分析先对面罩语音进行增强处理, 分别用谱减法和维纳滤波法对添加不同信噪比 (-5, 0, 5, 10 d B) 海浪和海水噪声的面罩语音增强。图 4 给出了原始语音信号的时域波形, 图 5 给出了海浪和海水噪声干扰下, 谱减法、维纳滤波法和本文方法时域波形, 信噪比为 0 d B。图 4 原始语音 下载原图从图 5 中可以看出, 谱减法在增强过程中, 会产生明显的音乐噪声, 维纳
19、滤波法在对海浪噪声干扰下的面罩语音增强过程中会产生轻微的失真, 改进的维纳滤波法相对于谱减法音乐噪声减小, 相对于维纳滤波法失真减小。图 5 海浪和海水噪声环境下增强后波形 下载原图3.2.2 面罩语音识别结果与分析实验分别用传统和增加了 LRN 处理的 CNN 对未加噪声的面罩进行训练和识别。针对本实验录制的面罩语音, 2 种算法均能够实现较高的识别率, 未加 LRN 处理的识别率为 98%, 加 LRN 处理后的识别率为 98.50%, 结果表明优化的可行, 且相对于不加 LRN 处理的识别率有所提高。测试本文设计的识别系统, 其中 SS 代表谱减法, WF 代表维纳滤波法, IWF 代表
20、改进的维纳滤波法, CNN 代表已经优化的 CNN。表 1 和表 2 分别给出了本文算法对于添加不同信噪比海浪噪声和海水噪声面罩语音的识别率。表 1 添加海浪噪声 4 种方法的识别率 下载原表 表 2 添加海水噪声 4 种方法的识别率 下载原表 由数据可以看出, 只用 CNN 识别在低信噪比的情况下识别率非常低, 随着信噪比的提高识别率会有所提高。即在海洋背景噪声大的情况下, 面罩语音识别的性能很差。本文系统能够显著提高面罩语音的识别率。4 结束语本文提出了一种结合语音增强算法与优化的卷积神经网络的面罩语音识别方法, 通过在池化层后做局部响应归一化处理, 提高了卷积神经网络的泛化能力, 实验结
21、果表明, 该系统能够在很大程度上提高带有不同信噪比海洋噪声的面罩语音识别率, 本文提出的语音增强算法与 CNN 相结合的方法对带噪面罩语音的识别效果更好。在低信噪比下, 面罩语音识别率虽然有较大提高, 但总体识别率仍然有待提高。参考文献1杨士莪.研究海洋开发海洋 海洋环境及海洋资源调查、监测技术概述J.舰船科学技术, 2008, 30 (5) :17-19. 2Abdel-Hamid O, Mohamed A R, Jiang H, et al.Applying convolutional neural networks concepts to hybrid NN-HMM model for
22、speech recognitionCIEEE International Conference on Acoustics, Speech and Signal Processing, IEEE, 2012:4277-4280. 3Sainath T N, Mohamed A R, Kingsbury B, et al.Deep convolutional neural networks for LVCSRCIEEE International Conference on Acoustics, Speech and Signal Processing, IEEE, 2013:8614-8618
23、. 4Abdel-Hamid O, Mohamed A R, Jiang H, et al.Convolutional neural networks for speech recognitionJ.IEEE/ACM Transactions on Audio Speech&Language Processing, 2014, 22 (10) :1533-1545. 5Yoshioka T, Karita S, Nakatani T.Far-field speech recognition using CNN-DNN-HMM with convolution in timeCIEEE Inte
24、rnational Conference on Acoustics, Speech and Signal Processing, IEEE, 2015:4360-4364. 6张晴晴, 刘勇, 潘接林, 等.基于卷积神经网络的连续语音识别J.工程科学学报, 2015, 37 (9) :1212-1217. 7Qian Y, Woodland P C.Very deep convolutional neural networks for robust speech recognitionCIEEE Global Conference on Signal and Information Proce
25、ssing, IEEE, 2016:481-488. 8Huang J T, Li J, Gong Y.An analysis of convolutional neural networks for speech recognitionCIEEE International Conference on Acoustics, Speech and Signal Processing, IEEE, 2015:4989-4993. 9张军, 张婷, 杨正瓴, 等.深度卷积神经网络的汽车车型识别方法J.传感器与微系统, 2016, 35 (11) :19-22. 10宋知用.Matlab 在语音信号分析与合成中的应用M.北京:北京航空航天大学出版社, 2013. 11Cheng C.Research on speech enhancement based on Wiener filteringJ.Applied Mechanics&Materials, 2014, 513-517:3130-3133. 12杜志然, 周萍, 景新幸, 等.基于谱熵的耳语音增强研究J.传感器与微系统, 2012, 31 (6) :69-72.