语音增强技术研究综述

2020-07-13 02:58曹丽静
河北省科学院学报 2020年2期
关键词:滤波语音噪声

曹丽静

(河北经贸大学 信息技术学院,河北 石家庄 050061)

0 引言

随着通信技术的发展,语音的使用方便了人们的交流,但是在交流过程中噪音是影响语音通讯质量的一大因素,过多噪音的存在会大大降低语音识别的准确率。为了提高语音通讯的质量,通过语音增强技术从带噪声信号中提取纯净语音变得尤其重要,通过该技术可以提高语音的质量,使用户获得更高的满意度。

王路露等人[3]把倒谱特征参数加入到传统谱减法中对谱减法进行改进,实现了较好的语音增强效果。张青等人[4]把多窗估计和维纳滤波算法相结合,实现了抑制噪声、增强语音的目的。卢炳乾等人[5]结合小波变换和变步长LMS自适应滤波,让LMS算法实现了变换域内收敛速度和稳态误差的统一。张丽艳等人[6]将麦克风阵列与奇异值分解相结合对语音进行增强,实现了较好的语音增强效果。闫姝等人[7]结合适用于噪声相干的广义旁瓣抵消的自适应滤波算法和适用于噪声非相干的维纳滤波算法,对以麦克风阵列为基础的语音增强算法进行完善,得到较好的语音去噪效果。

蒋茂松等人[8]在以非负矩阵为基础的语音增强算法中加入稀疏正则项,并把噪声项和稀疏约束项加入到目标函数的正则项中,实现了增强语音的目的。李艳生等人[9]利用心理声学掩蔽特性,并且利用不同频率位采用不同掩蔽值的方式来建立自适应感知掩蔽增益函数,并采用语音存在概率来感知增益修正,解决了以非负矩阵为基础的算法中存在的噪声残留问题。许春冬等人[10]针对当前基于深度学习的语音增强算法中忽略语音相位作用的问题,提出了一种自动编码生成对抗网络的模型,模型采用自动编码器、判别器和一个可以区分纯净语音和带噪语音的二元分类器来构成目标函数的方式,有效解决了生成对抗网络存在的梯度消失和模式坍塌问题。李如玮等人[11]提出一种以从四个不同分辨率的耳蜗中提取多分辨率听觉倒谱系数作为神经网络的输入,以跟踪噪声变化构建的自适应掩蔽阈值作为神经网络的训练目标,最后,将估计的自适应掩蔽阈值用于对含噪语音进行增强的模型。与对比算法相比,该算法不仅对噪声具有更强的鲁棒性,而且抑制了更多的背景噪声,进一步提高了增强语音的质量和可懂度。

本文阐述了基于数字信号处理方法和机器学习方法中的语音增强算法的原理,并总结了几种常用增强算法的优缺点和适用领域。

1 基于数字信号处理的语音增强算法

传统数字信号处理的语音增强算法可以分为单通道和麦克风阵列两种,其中单通道语音增强算法包括谱减法、维纳滤波法、以统计模型为基础的方法、自适应滤波的方法、以子空间为基础的方法、以小波变换为基础的方法。

图1 谱减法原理图

1.1 单通道语音增强方法

1.1.1 谱减法

设带噪语音中的噪声是加性的,并把噪声的谱估计值从原始信号的谱估计值中减去是谱减法的基本思路。图1所示即为传统谱减法的原理图。

原理图中y(m)=s(m)+n(m),其中s(m)是纯净的语音信号,n(m)是假设的加性噪声。

分别对y(m),s(m)和n(m)做傅里叶变换,即得到对应的Y(ω),S(ω)和N(ω),因为谱减法假设噪声为加性噪声,因此语音信号和噪声信号相互独立,所以变换以后的信号满足等式:|Y(ω)2|=|S(ω)|2+|N(ω)|2。

谱减法的原理易于理解,计算量不大并且其性能也比较稳定,因此是语音信号处理中常用的一种方法。然而在噪声环境较为复杂的情况下,会出现“音乐噪声”。

程塨等人[12]通过利用临界带特征矢量距离进行端点检测,利用低、高两个频区的语音特性进行系数调节,实现了过滤背景噪声,增强语音的目的。

严思伟等人[13]在谱减法中加入连续噪声谱估计,利用不间断更新噪声谱的方式进行语音的端点确定和噪声位置确定,然后进行功率谱过减及半波整流,最后平滑处理时利用的是维纳滤波的方法。该方法可以消除把含有噪声的背景去除,并有效滤除“音乐噪声”,得到的语音具有较好的可懂度和清晰度。

郑成诗等人[14]提出了一种基于噪声谱特性的谱减法(NPSD-SS),该方法利用周期图估计来解决了谱减法存在的复杂背景噪声下,噪声无法全部去除的问题,提高语音增强效果的同时也没有增加过多的运算量。

1.1.2 维纳滤波法

维纳滤波算法的基本原理如下:

设y(m)表示带噪语音信号且满足:y(m)=s(m)+n(m),其中s(m)代表不含有噪声的纯净信号,n(m)是原始信号中的加性噪声。

当s(m)和n(m)不相关且随机过程平稳的条件下,对y(m)=s(m)+n(m)进行离散傅里叶变换,得到式(1):

Y(m,k)=S(m,k)+N(m,k)

(1)

得到式(1)后,设维纳滤波的频域响应函数为H(m,k),得到信号最佳估计s′(m)的傅里叶变换为S′(m,k),如式(2)所示:

S′(m,k)=H(m,k)·Y(m,k)

(2)

最后按照最小均方误差的思想使得输出信号s′(m)尽可能接近原始信号。

复杂噪声环境下,传统语音增强算法存在增强后语音质量一般,且“音乐噪声”仍然存在的问题,董胡等人[15]针对此问题,在自适应滤波算法中加入小波包变换对信号频谱进行划分,并通过自适应滤波的方式对不同尺度的小波包系数进行滤波。实验证明,与传统算法相比,该算法不仅可以保存语音的谱特征,还可以提高含噪语音的质量。

奚吉等人[16]针对维纳滤波算法存在噪声谱估计偏差大的不足,将多通道思想和维纳滤波算法相结合,通过结合包络估计达到抑制残留噪声,提高了语音的可懂度。

郭利华等人[17]针对维纳滤波算法忽略信噪比的估计误差和不同的语音幅度谱畸变对语音可懂度有重要影响的不足,利用先验信噪比和增益函数来判定信噪比估计误差和语音畸变区域的方式对维纳滤波算法进行改进,从而提高语音可懂度。

1.1.3 基于统计模型的方法

利用统计模型进行语音增强的算法计算量小,应用广泛。王海艳[18]提出了一种用超高斯混合模型建立模型并用EM算法对超高斯混合模型中的参数进行估计的算法,实现了改善能量较小处语音性能的目的。

1.1.4 自适应滤波的方法

自适应滤波器采用的滤波思想是首先确定一个约束条件,在约束条件下实现对语音信号的最优估计。最陡下降法、最小均方误差算法(LMS)、递推最小二乘法(RLS)等是常用的算法。由于LMS算法在运算、实现和稳健性方面表现良好,是自适应滤波技术的首选算法[19]。LMS算法的基本迭代过程如下[20]:

y(k)=XT(k)×W(k)

e(k)=v(k)-y(k)

W(k+1)=W(k)+2×μ×e(k)×X(k)

其中,X(k)=[x(k),x(k-1),…,x(k-M+1)]T为M阶滤波器在k时刻的参考输入,y(k)为滤波器的估计输出,W(k)=[w(k),w(k-1),…w(k-M+1)]T对应滤波器权系数矢量,μ为步长因子。

汪成曦等人[21]用自相关误差与前一步长因子来更新迭代下一步长因子的方式对基于变步长的LMS算法进行完善,为使用固定步长最小均方算法的雷达杂波自适应滤波器系统存在的收敛速度与收敛精度不匹配的问题提供了解决方案,且达到较快的收敛速度和较小的失调的效果。

1.1.5 基于子空间的方法

以子空间为基础的语音增强算法的原理是把含有噪声的原始信号分解为两个正交的语音信号和噪声信号,同时将噪声信号置零使其从语音信号中滤除,从而得到纯净的语音信号。该算法可以减少信号失真程度和残留噪声,从信号失真和降噪程序两个方面来调节增强语音的质量[22]。

目前多数语音增强算法存在只使用最小均方误差来限制语音的畸变,却忽略了不同区域语音畸变对可懂度的影响的问题,针对这一问题,刘鹏等人[23]通过语音畸变区域是用先验信噪比和增益矩阵来确定的,幅度谱限制是通过改变增益矩阵限制的方式对子空间语音增强算法进行完善,实现了提高语音可懂度的目的。

1.1.6 基于小波分析的方法

以小波分析为基础的语音去噪是通过对语音进行小波变换处理,并通过小波重构的思想达到去噪目的,原理图如图2所示。

王彪等人[24]利用小波分析方法解决了阈值函数中存在的问题,通过构造任意阶可导的新阈值函数的方式提高了语音质量。

刘艳等人[25]针对小波去噪算法分离出的信号存在不是原始信号的最佳估计的问题,提出了一种利用子带熵端点检测的去噪算法,通过预处理、计算噪声标准方差、子带谱熵端点检测的流程提取纯净语音,达到去噪的目的。

1.2 麦克风阵列的语音增强方法

按照一定的拓扑结构将麦克风组成一个阵列,利用空间域的信息,对来自不同空间方位的信息进行滤波处理是以麦克风阵列为基础的语音增强算法的基本原理。

王义圆等人[26]提出将干扰抑制与麦克风阵列结合的算法,该算法创新之处是在波束形成之后增加了系数加权,系数加权可以有效滤除干扰信号,从而进一步消除干扰信号,然后利用空频联合处理进行语音增强。通过仿真实验证明,系数加权后对于干扰的抑制具有更好的效果。

吴海彬等人[27]通过对噪声主导的固有模态函数分量增加小波阈值去噪的处理,从而将改进经验模态分解与以自适应波束为基础的语音增强算法联系起来,实现了减少噪声污染的目的。

2 基于机器学习的语音增强算法

以机器学习为基础的语音增强算法分为以隐马尔可夫模型为基础的语音增强算法、以非负矩阵分解为基础的语音增强算法和以深度学习为基础的语音增强算法。

2.1 基于隐马尔可夫模型的语音增强方法

以隐马尔可夫模型为基础的语音增强算法分两个阶段实现:训练和识别,训练阶段完成对输入信号进行特征提取并通过矢量化的方式对其进行符号化的操作,从而训练得到隐马尔可夫模型;在识别阶段,利用训练好的模型进行识别,并通过比较概率大小的方式确定识别结果。

2.2 基于非负矩阵分解的语音增强方法

以非负矩阵分解为基础的语音增强算法是将原始语音信号输入矩阵分解为两个非负矩阵,然后以纯净信号和噪声信号的信号谱为激活系数来建模并与基向量进行线性组合实现增强语音的目的。

隋璐瑛等人[31]采用非负矩阵分解算法把噪声字典矩阵和噪声频谱从原始语音中提取出来,以该字典矩阵为先验信息,通过联合噪声字典矩阵和推导得到相应的迭代公式对语音字典矩阵和语音编码矩阵进行估计来重构增强语音,达到语音增强的目的。

时文华等人[32]针对以非负矩阵分解为基础的语音增强方法在低信噪比部分和无结构特征的清音部分会引入失真这一问题,通过结合语音信号在时频域呈现的稀疏特性和深度神经网络在语音增强应用中表现出的具有重构特性的谱,找到了一种联合稀疏非负矩阵分解和深度神经网络的语音增强方法,结合维纳滤波算法和深度学习的方法实现了语音增强的目的。

王波等人[33]利用引入平滑矩阵调节字典矩阵和系数矩阵稀疏性的方式来构造以非平滑矩阵为基础的非负矩阵分解算法,通过利用该方法对联合字典矩阵下的投影系数进行更新,达到抑制噪声的目的。

2.3 基于深度学习的语音增强方法

Y.Wang等人[37-38]利用DNN对理想二值掩码和理想比率掩码两种不同的目标进行估计,通过实验证明基于DNN的掩码估计方法可以明显提高语音增强性能。

Y.Xu等人[39-40]通过DNN来对纯净语音对数谱和含噪语音对数功率谱之间存在的非线性关系进行建模,提高了低信噪比下语音增强性能。

袁文浩等人[41]利用卷积门控循环神经网络解决了单独使用卷积神经网络难以对含噪语音中的长期依赖关系进行建模的问题。通过将CNN分别与LSTM,GRU两种门控循环神经网络结合实现了语音增强的目的。

徐思颖等人[42]针对训练与测试数据之间的失配问题,通过将正则化的思想应用于深度神经网络中来对语音进行增强,实现了提高语音增强系统在不匹配噪声环境下鲁棒性的目的。

王雁等人将语音的MFCC和LPMS两种特征同时作为网络的输入,通过特征结合的方法提高的深度信念网络的语音增强效果。

3 常用语音增强算法的优缺点

常用语音增强算法的优缺点如表1所示。

表1 常用语音增强算法的优缺点

4 总结与展望

科技的进步与发展,给人们的生活带来了方便,但是也提出了更高的要求。在手机通话、语音聊天等应用中,如果通话者处于嘈杂的马路或者热闹的火车上,对方就不能很好的接收信号,从而影响通话质量,此时通过语音增强技术就可以有效地提高通话质量和效率。在国防安全领域,其声学环境与普通场景相比,噪声更为复杂,因此如何从巨大的发动机轰隆声中识别指挥员的口令等变得尤其重要,引入语音增强技术,可以尽可能增强目标语音,从而确保战士接收到准确的指挥口令,从而作出准确的反应。

本文阐述了基于数字信号处理和基于机器学习的几种语音增强技术,同时分析了几种常用语音增强技术的优缺点。在实际应用中,通过完善算法或者结合几种算法的方式可以达到比较好的语音增强效果,但是由于噪声的存在,算法仍然存在不足。基于DNN、RNN等语音降噪算法虽然取得了不错的降噪效果,但是我们应该关注传统方法对数据进行预处理等操作,并结合深度学习的思想 ,实现进一步完善语音增强技术的目的。

猜你喜欢
滤波语音噪声
舰船通信中的噪声消除研究
魔力语音
基于MATLAB的语音信号处理
基于MQ3与MP3的价廉物美的酒驾语音提醒器
汽车制造企业噪声综合治理实践
对方正在输入……
基于EKF滤波的UWB无人机室内定位研究
一种GMPHD滤波改进算法及仿真研究
基于自适应Kalman滤波的改进PSO算法
RTS平滑滤波在事后姿态确定中的应用