欢迎来到天天文库
浏览记录
ID:23413627
大小:71.47 KB
页数:7页
时间:2018-11-07
《基于计算机仿真的语音增强算法研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于计算机仿真的语音增强算法研究【摘要】在语音通信过程中不可避免地会受到来自周围环境、传输媒介引入的噪声、通信设备内部电噪声、乃至其它讲话者的干扰。这些干扰最终将使接收者接语音收到的语音是非纯净的原始语音信号,而是受噪声污染的带噪语音信号。语音增强是解决噪声污染的一种有效方法,是从带噪语音信号中提取尽可能纯净的原始语音,本文研究的是一种基于普减法的改进语音增强算法。【关键词】语音增强谱减法Matlab1引言语音增强已发展为语音信号数字处理的一个重要分支。语音增强中的谱减法是处理宽带噪声的最通用技术,即从带噪语音估值中减去噪声频谱估值,而得到
2、纯净语音的频谱。宽带噪声通常可以假定为高斯噪声和白噪声。它的来源很多,包括空气流动、呼吸噪声和一般随机噪声源。量化噪声通常作为白噪声来处理,也可以视为宽带噪声。由于宽带噪声与语音信号在时域和频域上完全重叠,因而消除它最为难。由于人耳对语音频谱分量的相位不敏感,所以谱减法主要针对短时幅度谱。2语音增强算法2.1传统谱减法假定语音为平稳信号,而噪声及假定语音为平稳信号,而噪声和语音为加性信号且彼此不相关。此时带噪语音信号可表示为:式中,为纯净语音信号,为平稳加性高斯噪声。实际上,为避免分帧时的截断效应,应对加窗。为了书写方便,这里用代表加窗后的
3、带噪信号。设的傅里叶系数为:的傅里叶系数为:的傅里叶系数为:由(1)式,则有:而语音增强的任务就是利用已知的噪声功率谱信息,从中估计出。由于人耳对相位不敏感,所以只要估计出,然后借用带噪语音相位,进行反傅里叶变换后就可得到增强的语音。经FFT后,有,由此可得式⑵式中*表示复共辘。因为假定噪声是不相关的,即与独立,不会出现信号和噪声的乘积值,则互谱的统计均值为0。而为零均值的高斯分布,所以有:式⑶只要从中减去便可恢复。之所以能这样是基于人耳对语音相位不敏感(相聋)这一特点。因为噪声是局部平稳的,故可以认为语音前的噪声与发语音期间的噪声功率谱相
4、同,因而可以利用发语音前(或后)的“寂静帧”来估计噪声。对于一个分析帧内的短时平稳过程,有式⑷其中,为无语音时的统计平均值,即由此可得原始语音的估计值式⑸实际计算中,也可能出现小于的情况,因此功率谱不可为负,此时修改式⑸为式⑹,式中e为一个大于0的常数,它由试验确定。定义第k个频谱分量的增益函数以及后验信噪比,则式⑸可以改写为:式⑺由式⑺可以清楚地看出谱相减的物理意义:它相当于对带噪语音的每一个频谱分量乘以一个系数当信噪比高时,含语音的可能性很大,衰减小。反之,则认为含有语音的可能性小,衰减则增大。2.2改进的谱减法式⑸中的是以无声期间的统
5、计平均的噪声方差代替当前分析帧的噪声频谱,而实际上噪声频谱服从高斯分布式⑻其中,m为x的均值,o为标准偏差。噪声的帧功率谱随机变化范围很宽,在频域中的最大、最小值之比往往迖到几个数量级,而最大值与均值之比也达6〜8倍。因而,在减去噪声谱后,会有些较大的功率谱分量的剩余部分,在频谱上呈现出随机出现的尖峰,在听觉上形成残留噪声。这种噪声具有一定的节奏性起伏感,所以称之为“音乐噪声”。为有效地减少宽带和音乐噪声,可对谱减法进行改进。噪声的能量往往分布于整个频谱范围,而语音能量则较集中于某些频率或频段,尤其在元音的共振峰处。因此可在元音段等幅度较高
6、的时帧去除噪声时,减去,则可更好地相对突出语音的功率谱。这种改进也称为被减项权值处理。同时,将式(5)中的功率谱计算
7、*
8、2及
9、*
10、1/2改为
11、*
12、m和
13、*
14、l/m计算(这里m不一定为整数),可以增加灵活性。这种方法称为功率谱修正处理。经分析和试验得知,当m>2时,它具有与被减项加权处理相同的效果。综合上面两种处理,谱减法改进形式的原理框图如图2所示。此时式⑸修正为式⑼。引入m,n两个参数为计算提供了很大的灵活性。当m=2,n=l时即变为基本的谱减法,实际的增强试验表明,适当调节m、n可以获得比传统的谱减法更好的增强效果。因此实际的增强过程
15、中,更多地使用谱减法的改进形式。3基于MATLAB的算法实现与仿真3.1传统谱减法的实验与仿真基于MATLAB来实现传统谱减法的仿真,读入语音文件用wavread函数实现,对采样点补足帧的整数倍是方便实现MATLAB的矩阵计算以及最后对帧叠加进行还原处理。对每一帧独立的含噪语音进行语音增强处理,再将每帧增强语音依次连接起来,会由于恢复的信号帧间不连续,使得增强语音含有周期性的杂音,因此采用帧间重叠谱减法进行语音处理。程序中每巾贞信号256点,128点重叠,通过w=hamming(framelength)实现,经语音增强处理后,再进行相反的处
16、理,恢复连续的语音信号。对带噪语音信号进行FFT变换可以直接用fft函数实现,在MATLAB程序中,这一部分用for循环对每帧循环实现。谱相减是算法的关键,这部分程序代码如下MA
此文档下载收益归作者所有