语音增强算法

2024-09-19

语音增强算法(共7篇)

语音增强算法 篇1

摘要:在介绍语音增强技术, 比较分析了目前常用的几种方法。

关键词:语音增强,谱减法,卡尔曼滤波

1 引言

语音增强技术1指当语音信号被各种各样的噪声 (包括语音) 干扰, 甚至淹没后, 从噪声背景中提取出尽可能纯净的语音信号, 增强有用的语音信号, 抑制、降低噪声干扰的技术。

由于干扰的随机性, 因而从带噪语音提取完全纯净语音几乎不可能。在这种情况下, 语音增强的目的主要有两个:一是改进语音质量, 消除背景噪声, 使听者乐于接受, 不感觉疲劳, 这是一种主观度量;二是提高语音的可懂度, 这是一种客观度量。这两个目的往往不能兼得。

当前, 语音增强己发展成为语音信号数字处理的一个重要分支。它的主要应用范围是降低听觉噪声, 识别系统的预处理和线性预测编码的预处理。语音增强是一门跨学科的技术, 不但与语音信号数字处理理论有关, 而且涉及到人的听觉感知和语音学。再者, 噪声来源众多, 随应用场合而异, 它们的特性也各不相同。即使在实验室仿真条件下, 也难以找到一种通用的语音增强算法适应于各种噪声环境。必须针对不同噪声, 采取不同的语音增强对策。

2 语音增强算法

根据语音和噪声的特点, 出现了很多种语音增强算法[2]。比较常用的有噪声对消法[3]、谱相减法、维纳滤波法、卡尔曼滤波法、FIR自适应滤波法等。此外, 随着科学技术的发展, 又出现了一些新的增强技术, 如基于神经网络的语音增强、基于HMM的语音增强、基于听觉感知的语音增强、基于多分辨率分析的语音增强、基于语音产生模型的线性滤波法、基于小波变换的语音增强方法[4]、梳状滤波法、自相关法、基于语音模型的语音增强方法等。

2.1 谱减法

谱减法5是一种从带噪信号谱中减去估计噪声平均谱, 从而恢复信号的幅度谱或功率谱的方法。这是一种在频域上处理的方法。假设噪声是平稳的或变化缓慢, 要从短时幅度谱恢复时域信号, 需要综合带噪信号的相位信息, 通过傅立叶逆变换从频域变换到时域。带噪信号的相位无须修改, 这是因为人耳对语音的相位不敏感, 并且估计信号的相位是非常困难的。

假设yw (n) 为离散带噪语音信号, sw (n) 和dw (n) 分别为纯净语音信号和加性噪声信号, 二者相互独立, 由于语音是非稳态信号, 就要对信号加窗分帧, 则加窗后的信号表示为:

其傅立叶变换分别以表示, 于是得到信号的功率谱关系表达式为:

其中和分别是和各自的复共轭。函数表示语音的短时功率谱。

基于短时谱幅度估计的语音增强技术的目的就是设法得到的估计, 并由此得到的估计, 即增强后的语音。因无法精确得到, 所以分别以三者各自的系统平均能量来估计。假设d (n) 零均值并和s (n) 不相关, 则均为0。这样可由下式获得:

在频域用上式 (3) 得到纯净语音的谱估计, 就可以根据式 (4) 得到增强后的语音。

将指数概括, 式 (4) 可以改写成式 (5) 的形式:

考虑到噪声的平稳性, 可以取几帧噪声谱的连续平均值来计算

谱相减法的优点:总体上运算量较小, 容易实时实现, 增强效果也较好, 是目前最常用的一种方法。它的缺点:谱相减法利用在无声期间统计得到的噪声方差来代替当前帧的噪声频谱时, 若该帧某频点上的噪声分量较大, 则相减后会有较大的噪声残留, 频谱上有相应的随机尖峰出现。增强后的语音会夹杂着有节奏的音乐残留噪声。因此在实际应用时, 更多地使用谱相减的改进形式, 其估计式为:改进形式增加了参数α和β。引入系β数可以对噪声估计值进行调整, 在语音能量较高的区域, 令β>1, 这样可以降低语音能量, 更好地突出语音频谱。

2.2 卡尔曼滤波法

卡尔曼滤波法7通过引入卡尔曼信息, 并将要解决的滤波与预测的混合问题转化为纯滤波和纯预测两个独立的问题, 适合于非平稳条件下的最小均方误差意义下的最优估计。

对于带噪的观测数据y (k) =s (k) +n (k) , 其中纯净语音信号s (k) 和环境背景噪声n (k) 分别可用AR模型表示为:

其中i=1, …p和i=1…q是模型的未知参数, w (k) 和v (k) 分别是未知方差为和的零均值白噪声过程, p和q是模型的阶次, 这里假定它们已知, 上述模型还可以写为状态空间表达形式:其中

由此可以构造增广状态空间表达形式其中

对于增广系统式, 当系统参数已知时, 由卡尔曼滤波理论可得系统的状态估计

其中, 式 (2) 是卡尔曼增益矩阵, 式 (3) 是预测误差协方差矩阵, 式 (4) 是估计误差协方差矩阵。

的方差矩阵定义为因此, 经卡尔曼滤波后的语音增强信号为

由于纯净语音和噪声的AR模型参数未知, 因此在进行尔曼滤波之前首先要做参数估计。参数估计的精度直接影语音的增强效果。

卡尔曼滤波法是基于语音生成模型的, 用线性预测 (LPC) 分析参数实现波形最小均方误差意义下的最佳估计。在非平稳条件下也可以保证最小均方误差意义下的最优, 故适合于非平稳噪声干扰下的语音增强。它的优点是不需要假定噪声的平稳性, 对非平稳噪声也能运用。缺点是:需要叠代估计模型参数, 在噪声强时误差大;语音生成模型中假定激励是白噪声源, 这仅对清音成立而对浊音是不成立的;计算量较大;优化标准是时域的波形误差最小, 对语音信号而言此标准不够合理。

2.3 基于听学掩蔽效应的语音增强[8]

目前, 在语音增强中用得比较成功的是听觉掩蔽效应, 它指出语音信号能够掩蔽与其同时进入听觉系统的一部分能量较小的噪声信号, 而使得这部分噪声不为人所感知到。因此从掩蔽效应的角度看, 语音增强应该通过改变带噪语音的短时谱幅度 (STSA) 使所有噪声成分都能被语音信号掩盖掉。

一个较弱的声音 (被掩蔽音) 的听觉感受被另一个较强的声音 (掩蔽音) 影响的现象称为人耳的“掩蔽效应”[9]。被掩蔽音单独存在时的听阈分贝值, 或者说在安静环境中能被人耳听到的纯音的最小值称为绝对闻阈。实验表明3k Hz-5k Hz绝对闻阈值最小, 即人耳对它的微弱声音最敏感;而在低频和高频区绝对闻阈值要大得多。在800Hz--1500Hz范围内闻阈随频率变化最不显著, 即在这个范围内语言可储度最高。在掩蔽情况下, 提高被掩蔽弱音的强度, 使人耳能够听见时的闻阈称为掩蔽闻阈 (或称掩蔽门限) , 被掩蔽弱音必须提高的分贝值称为掩蔽量 (或称阈移) 。

2.3.1 纯音对纯音、噪音对纯音的掩蔽效应

(1) 纯音间的掩蔽

1) 对处于中等强度时的纯音最有效的掩蔽是出现在它的频率附近。

2) 低频的纯音可以有效地掩蔽高频的纯音, 而反过来则作用很小。

(2) 纯音和噪音间的掩蔽

噪音对纯音的掩蔽噪音是由多种纯音组成, 具有无限宽的频谱。若掩蔽声为宽带噪声, 被掩蔽声为纯音, 则它产生的掩蔽门限在低频段一般高于噪声功率谱密度17d B, 且较平坦;超过5OOHz时大约每10倍频程增大10d B。若掩蔽声为窄带噪声, 被掩蔽声为纯音, 则情况较复杂。其中位于被掩蔽音附近的由纯音分量组成的窄带噪声即临界频带的掩蔽作用最明显。

2.3.2 掩蔽类型

(1) 频域掩蔽

所谓频域掩蔽是指掩蔽声与被掩蔽声同时作用时发生掩蔽效应, 又称同时掩蔽。这时, 掩蔽声在掩蔽效应发生期间一直起作用, 是一种较强的掩蔽效应。通常, 频域中的一个强音会掩蔽与之同时发声的附近的弱音, 弱音离强音越近, 一般越容易被掩蔽;反之, 离强音较远的弱音不容易被掩蔽。例如, 一个1000Hz的音比另一个900Hz的音高18d B, 则900Hz的音将被1000Hz的音掩蔽。而若1000Hz的音比离它较远的另一个1800Hz的音高18d B, 则这两个音将同时被人耳听到。一般来说, 低频的音容易掩蔽高频的音;在距离强音较远处, 绝对闻阈比该强音所引起的掩蔽阈值高。

(2) 时域掩蔽

所谓时域掩蔽是指掩蔽效应发生在掩蔽声与被掩蔽声不同时出现时, 又称异时掩蔽。异时掩蔽又分为导前掩蔽和滞后掩蔽。若掩蔽声音出现之前的一段时间内发生掩蔽效应, 则称为导前掩蔽:否则称为滞后掩蔽。产生时域掩蔽的主要原因是人的大脑处理信息需要花费一定的时间, 异时掩蔽也随着时间的推移很快会衰减, 是一种弱掩蔽效应。

利用了耳听觉掩蔽进行语音增强, 其优点是:在进行语音增强时, 不需要把噪声完全抑制掉, 只要使残留的噪声信号不被人感知即可, 所以这样在消噪的同时可以减少不必要的语音失真。其缺点是:噪声掩蔽门限的计算是在纯净语音基础上得到的, 在实际中一般只能用带噪语音来估计掩蔽门限, 这样估计的结果误差很大。

3 结语

综上所述, 以上各种方法各有优缺点, 分别适用于不同情况。参数方法对语音的模型参数依赖性强, 但在低信噪比条件下不容易得到正确的模型参数;非参数方法由于频谱相减会产生一咱具有一定节奏的残余噪声。统计方法需要大量数据进行训练以得到统计信息;小波变换以及离散余弦变换的阈值获取困难, 运算量大。因此实际使用中常常根据具体的环境噪声和语音特性将不同方法结合起来应用, 通过方法互补取得更好的语音增强效果。

参考文献

[1]刘淑华.低信噪比下的语音增强技术研究[J].硕士学位论文.广西:广西大学, 2006:9-11.

[2]刘淑华, 胡强, 覃团发, 万海滨.语音增强算法的研究[J].第十届全国青年通信学术会议, 2005, (7) :282-287.

[3]Jeong J, Moir T J.A real-time kepstrum approach to speech en-hancement and noise cancellation.Neurocomputing, 2008, 71 (13-15) :2635-2649.

[4]谭东星.基于小波变换的语音增强方法研究及实时实现[J].硕士学位论文.湖南:湖南大学, 2004:14-17.

[5]索忠伟.语音增强技术研究及其DSP实现[J].硕士学位论文.西安:西南交通大学, 2006:14-15.

[6]Plourde E, Champagne B.Auditory-Based Spectral Amplitude Estimators for Speech Enhancement.Audio Speech and Lan-guage Processing, IEEE Transactions on2008, 16 (8) :1614-1623.

[7]Xu Guohui, Xu Hui.A study of variance estimation of kalman filtering method.Wuhan University (Engineering Science) , 2004, 37 (4) .

[8]SUNDARRIAJAN R.LOIZOU P C.A noise-estimation algorith-m for highly non-stationary environments.Speech Communi-cation.2006, (48) :220-231.

[9]凡亮.听觉掩蔽效应以及语音增强方法研究.中国科学院声学研究所:声学, 2002.

基于小波变换的语音增强算法 篇2

关键词:维纳滤波,小波阈值,正交小波,小波重构

0 引言

近年来, 小波变换在信号处理领域, 特别是语音信号处理领域中, 越来越受重视。各种传统的语音增强算法与小波变换相结合, 以取得更好的语音增强效果。

对于语音增强算法的增强效果来说, 小波函数的选取至关重要。影响小波性能的因素有两个, 一个是小波函数的支撑范围, 另一个是小波函数的消失矩。小波函数的支撑范围越大, 则小波在时域内的伸缩性就越好。小波函数的消失矩越高则在小波变换中低于消失矩的低频信号成分都会变为零, 那么反映在小波变换中的只有信号的高频成分, 这就有利于突出信号高频成分及信号中的突变点。

本文在文献[1-7]的基础上对各种正交小波进行了深入的研究, 并在实验的基础上得出CoifletsN小波的滤波性能要优于其他正交小波。

1 正交小波性能分析

研究表明CoifletsN小波与dbN小波相比有明显的优点。首先, CoifletsN小波的支撑范围远远高于dbN小波。其次, CoifletsN小波的小波函数具有2N阶消失矩, 尺度函数具有2N-1阶消失矩, 而dbN小波只是其小波函数具有N阶消失矩。

图1是Coiflets4小波与db4小波的小波函数与小波尺度函数的比对图。

2 算法实现

下面是对一帧信号的处理过程, 分4步实现:

(1) 对信号加窗后进行傅立叶变换, 然后, 估计该帧信号的多窗功率谱Symt, 并用下面公式估计纯净语音的多窗功率谱

其中Snmt是噪声的功率谱, 可以用VAD法计算无语音帧估计得到。

(2) 计算先验信噪比。首先计算Z (ω) =logSymt-Φ (L) +log (L) , 然后对Z (ω) 进行离散小波变换, 求其小波系数Zk, j, 并用计算小波系数的阈值, 对小波系数Zk, j进行过滤, 然后通过小波反变换计算logSymt的值, 同理, 计算logSnmt的值。小波阈值由下面公式给出:

这样利用下面公式可以计算信号的先验信噪比了。公式如下:

(3) 根据段信噪比确定传递函数中的μ, 具体计算如下:

(4) 根据维纳滤波模型可以计算出增强后的功率谱X (ωk) =H (ωk) Y (ωk) , 然后对X进行傅立叶反变换, 得到增强后的语音信号。

3 实验结果

我们在实试验中采用的数据包括10个男声和10个女声, 噪声为白噪声, 信噪比是0dB, 5dB, 10dB和15dB。采样率8kHz, 数据帧长256, 采用Hamming窗。使用Coiflet4小波函数对信号进行分解, 小波分解尺度q=5。先验信噪比计算平滑因子β=0.95。在计算多窗功率谱时选去20个正弦正交窗。

从表中短信噪比的比较可以看出, 我们的算法比文献中的算法具有更强的噪声抑制效果, PESQ值的比较表明增强后的语音是真度基本上不变, 即我们的算法具有更好的噪声抑制作用, 但语音是真度却基本上没有下降。

4 结束语

作者在大量实验的基础上得出, CoifletN小波函数在语音信号去噪处理中的去性能更好, 并以Coiflet4小波函数为例进行了仿真实验, 语音增强效果有明显提高, 滤波效果比较理想。

参考文献

[1]Lim, J.and Oppenheim, A.V.All-pole modeling of degraded speech[J].IEEE Trans.Acoust, Speech, Signal Proc., 1978 (3) .

[2]Lim, J.and Oppenheim, A.V.Enhancement and Bandwidth Com-pression of Noisy Speech[J].Proceedings of the IEEE, 1979 (12) .

[3]Scalart, P.and Filho, J.Speech enhancement based on a priori sig-nal to noise estimation[J].Proc.IEEE Int.Conf.Acoust.Speech, Signal Processing, 1996.

[4]S.Mallat and W.L.Hwang.Singularity detection and processing with wavelets[J].IEEE Trans on information Theory, 1992 (2) .

[5]Pierre Moulin.Wavelet Thresholding Techniques for Power Spec-trum Estimation[J].IEEE Trans.on Signal Processing, 1993.

[6]A.T.Walden, D.B.Percival and E.J.McCoy.Spectrum Estima-tion by Wavelet[J].Thresholding of Multitaper Estimators.IEEE.

[7]Hu, Y.and Loizou, P.Speech enhancement based on wavelet thresholding the multitaper spectrum[J].IEEE Trans.on Speech and Audio Processing, 2004 (1) .

语音增强算法 篇3

关键词:谱减法,自适应,语音增强

语音增强的一个主要目标是从带噪信号中提取纯净的原始语音, 改进语音的质量, 减少背景噪声的同时提高语音的质量。由于宽带噪声无论从时域还是从频域上看均与语音信号重叠在一起, 实践中语音增强的难点是宽带噪声的抑制和消除。谱减法是最早被提出的去噪算法之一。它的基本原理是假设噪声是加性噪声, 通过从带噪语音谱中减去噪声谱的估计, 就可以得到纯净的语音信号谱。在不存在目标信号的期间, 可以对噪声谱进行估计和更新。但是谱减法虽然简单但是有很多缺点, 由于谱减法对噪声估计比较简单, 会出现错误, 进而导致了语音失真的现象, 使得语音可懂度下降。

(2) 功率谱减法基本原理。幅度谱减法可以扩展到功率谱领域, 为了得到带噪语音的功率谱, 我们将Y ( ) 于它的共轭Y* ( ) 相乘。带噪语音功率谱:

带噪语音的幅度谱通过FFT计算得到, 没有语音的时候对噪声谱进行估计, 然后从带噪语音幅度谱中减去噪声幅度谱, 最后通过对该差分谱进行逆傅立叶变换 (使用带噪语音相位) 来生成增强的语音信号。

1 谱减法用于语音增强的改进及具体实现

1.1 噪声谱估计

进行谱减法的关键是对噪声谱的估计, 得到噪声谱估计就可以谱减法语音增强, 噪声估计一般比较简单, 可以利用语音开始的非语音帧进行噪声估计。但是由于实际噪声都是时变的, 所以噪声必须根据实际情况而改变。这是需要对语音信号进行语音活动检测 (Voice Activity Detection, VAD) 来判断该帧是语音帧还是非语音帧, 如果是语音帧, 则进行谱减法语音增强;如果是非语音帧, 更新噪声谱估计。本文采用基于谱熵的进行语音活动检测。

1.2 谱减法存在问题及改进

噪声谱的估计可以通过无语音得到, 由于对噪声信号的估计不准确, 当从带噪语音谱中减去噪声谱估计时, 频谱中会残留一些隆起的部分或谱峰, 有些谱峰是宽带的 (包含较宽的频率范围) , 而有些谱峰带宽很窄, 看起来像是频谱上的一个脉冲。通过对噪声谱的过减处理, 实现减少宽带谱峰的幅度, 有时候可以完全消除。其技术具体形式:

其中ɑ为过减因子, 参数ɑ影响语音谱在谱减过程中的失真程度, 如果ɑ过大处理后的信号会严重失真导致语音可懂度受到影响。参数ɑ应该随每一帧变化, ɑ 是关于信噪比的公式。

谱减法由于谱估计的大范围变化以及增益函数的不同导致音乐噪声。针对谱估计的大范围变化, 将分析帧划分为更小的子帧以得到更低分辨率的频谱。子帧频谱通过连续平均以减少频谱波动。针对增益函数的不同使用自适应平均, 在时间上对增益函数做平滑。此外为避免因使用零相位增益函数导致的非因果滤波问题, 在增益函数中引入线性相位。

使用改进谱减法进行语音增强实现框图如下:

2 实验结果及仿真分析

本实验语音来自Sp EAR测试语音库, 语音库采集了一些真实的噪声, 包括白噪声、粉红噪声、工厂噪声、F16 飞机噪声、高速行驶汽车噪声和突发噪声。与人为加噪不同, 这些噪声的随机性大, 很多噪声不平稳, 统计特性复杂很难用精确模型描述, 现在使用改进的谱减法对不同噪声背景下的语音进行增强, 通过分析增强效果得到改进谱减法的稳健性。

2.1 分段信噪比 (SNRseg) 法

分段信噪比是计算一小段时间内语音信号与噪声的平均功率比, 由于语音信号是一种缓慢的短时平稳信号, 所以采用分段信噪比表征语音质量更接近主观值。表1 是对不同信噪比, 以及不同噪声用三种不同方法增强效果对比, 图1 给出其时域波形图。从实验中可以看出, 维纳滤波方法的消噪能力优于传统的谱减法, 改进谱减的语音增强方法的消噪能力优于维纳滤波法, 尤其当输入数据加大时, 改进谱减法不仅数据效果好, 而且可以消除非线性噪声, 提高语音的可懂度。

3 结语

本文介绍了一种新的语音去噪方法, 并将改进的谱减法应用到语音增强技术中。仿真结果表明, 该方法比传统的谱减法和维纳滤波法的语音增强效果要好, 在主观和客观的听觉上都有明显的改进, 能够改善语音质量, 有很好的应用前景。

参考文献

[1]洪晓芬.基于谱减法的改进语音增强[J].计算机工程与设计, 2007, 28 (22) :5453-5454, 5477

[2]徐耀华, 郭英, 范海宁.语音增强:使用burg谱先验信噪比估计消除“音乐噪声”[J].信号处理, 2009 (25) :141--146

语音增强算法 篇4

随着语音技术研究的深入和实际应用的增多,各种语音处理系统都面临着进一步提高性能的问题。语音增强是其中的关键技术之一。从20世纪60年代开始,语音增强的研究就一直没有停止。20世纪70年代由于数字信号处理理论的成熟,语音增强曾经形成了一个研究热潮,取得了一些基础性成果。20世纪80年代以后,VLSI技术的发展为语音增强的实时实现提供了可能。目前,除了基于信号处理理论研究外,针对人的听觉系统的生理特性研究、语言学中上下文联想智能的研究等,都在进一步推动着语音增强的发展[1]。

近年来随着数字技术的发展,出现了许多处理方法来解决这一问题。常用的方法有谱相减法、维纳滤波法、多带通滤波器法、自适应滤波器法等。本文对目前应用最为普遍的谱相减法作了系统的描述。

1 谱相减法

谱相减法总体上运算量较小,容易实时实现,增强效果也较好,是目前处理宽带噪声的最通用技术方法。即从带噪语音估值中减去噪声频谱估计,而得到纯净语音的频谱。由于人耳对语音频谱分量的相位不敏感,因而这种方法主要针对短时幅度谱[2]。原理如下:

假定语音为平稳信号,而噪声和语音为加性信号且彼此不相关。此时带噪语音信号可表示为

式中,s(t)为纯净语音信号,n(t)为噪声信号。而用Y(ω),S(ω)和N(ω)表示y(t),s(t)和n(t)的Fourier变换,则有下列关系存在

对功率谱则有

因为假定噪声为不相干的,所以不会出现语音与噪声的乘积项。只要从Y(ω)2中减去N(ω)2便可恢复S(ω)2。因为噪声是局部平稳的,可以认为语音前的噪声与语音期间的噪声功率谱相同,因而可以利用语音前的“寂静帧”来估计噪声[3]。

而语音是不平稳的,而且只处理一小段加窗信号,上式可写为

式中,下标W表示加窗信号,*表示复共轭。可以根据观测数据估计Y(ω)2,其余各项必须近似统计均值。由于s(t)和n(t)独立,则互相关谱的统计均值为0,所以原始语音的估值为

式中,^表示估计值,[NW(ω)]2为无语音时N(ω)2的统计均值。因为涉及到估值,实际中此值可能为负,而功率谱不能为负,故可令负值为0、改变其符号或平滑滤波。

为了IFFT再现语音,还需要S(ω)的相位,在此用Ph[S(ω)]表示。并用带噪语音的相位来近似。因而

则恢复的语音是估值的IFFT。谱减法的原理框图如图1。

图1中,的处理用以将功率转化为幅度。

2 谱相减法的C语言程序简介

实验中,用C语言做出谱相减法的程序。其程序的结构如图2示。

其中,main()函数为ssub.c。他提供了一个人机对话的界面。在运行程序时,会出现一个DOS界面窗口,提示输入:相应的参数(用”-?”表示)、待处理信号的文件名和处理后信号所存文件的文件名。这样它就会选择相应的算法去输入待处理信号文件中的数据,并存入处理后信号所存的文件中。本文选择的是Martin算法,所以要输入参数”-m”选择Martin算法。Ssub把输入文件9_!.dat读入,通过Martin算法,把处理结果存入输出文件out.bin中[4]。

在Martin算法开始时需要初始化,martin_init()来完成初始化。它对算法中所要用到的参数、帧长、标志位赋初值。并对累加缓冲、能量谱数组、常数π初始化,并构造宽度为256的Hanning窗,为执行Martin算法做准备[5]。

在Martin算法中,我们选用Hanning窗作为窗函数,因为它可以有效的降低吉布斯效应,减小旁瓣分散去的能量。实验过程中,窗的长度不同,帧与帧之间的重叠程度不同,消噪的效果也不一样。我们用长分别是256点、128点和64点的语音帧进行测试,发现不同帧长对噪声段的消噪效果影响不大;但语音段不同,窗口长度越长,听觉失真效果越小。原因是帧的长度取得比较短时,信号的频域分量变化比较快;而长窗时相邻两帧的差别较小。因此,我们取较长的256点作为一帧的长度。由试验可知,当3/4重叠时消噪效果最好。因此我们采用256点为一帧,窗函数75%重叠的滑动[6]。

martin_do()来完成算法的运行,它由预处理、调用martin_work()和输出结果三部分组成。开始时,用getfloat()从输入文件中读取一帧的数据读到inbuf数组中,计数f赋初值为0。调用martin_work(),f+1。而后,再向后移64点再读取一帧数据到inbuf中,调用martin_work()。如此重复操作。直到读完输入文件中的数据。最后把结果存入输出文件中。而martin_work()所作的是把Martin算法的过程一一理顺。martin_work()又要调用一些子程序来完成。这些子程序分别是:fft()、smooth()、noise()、filter()及ifft()。其中,fft()和ifft()是一个程序,由于输入参数的顺序不同,进行的运算也就不同。最后,martin_close()来关闭此算法[7]。

3 谱相减法的数字仿真

我们用Matlab作为工具进行仿真。在Matlab中读入带处理文件,并把它存入in.dat中,然后用C语言程序运行,结果存在out.bin中,最后在Matlab中把out.bin读出[8]。

试验中,我们选用-5 dB,0 d B,5 d B的信噪比语音信号进行试验,画出了原始纯净语音信号、-5 dB,0 dB,5 d B的信噪比下的带噪信号及谱减后的信号的时域波形图。如图3所示,图中横坐标是时间(t),单位是秒(s),纵坐标是信号幅度大小。

经过以上反复试验我们可以得出,谱减法有一定的去噪功能,且在低信噪比下效果明显,信噪比能提高6 dB以上,但主观试听留有较为明显的音乐噪声。

4 结论

由于在对语音信号进行数字处理研究时一般都是假设在理想情况下,因此当很多技术从实验室走向实际应用时,环境噪声所带来的问题越来越严重,特别是作为语音处理技术中最有效手段之一的线性预测,很容易受到噪声的影响。因此研究各种技术将“干净”语音从语音和噪声的混合体中提取出来是十分必要的[9]。本文通过谱相减法从带噪语音中尽可能提取纯净的原始语音,很大程度上消除了背景噪声,改进了语音质量。但由于噪声信号都是随机产生的,完全消噪几乎不可能,因此语音增强技术的研究将是一个长期探讨的课题。

参考文献

[1]蔡文龙.低信噪比下的语音增强技术研究.秦皇岛:燕山大学,2005;71—86

[2]胡钢,沈文轩.一种基于噪声动态检测的语音端点检测算法.鞍山科技大学学报,2004;(2):47—50

[3]张雄伟,陈亮,杨吉斌.现代语音处理技术及应用.北京:机械工业出版社,2003

[4]蒋海霞,成立新,陈显治.一种改进的谱减语音增强方法.解放军理工大学学报,2001;(1):41—44

[5]刘有恒.信号检测与估计.北京:人民邮电出版社,1989

[6]李宏伟,段艳丽,郭英.基于帧建重叠谱减法的语音增强算法及实现.空军工程大学学报,2001;(5):59—62

[7]刘波.语音转换的关键技术研究.长沙:国防科学技术大学,2005

[8]于哲舟,杨佳东,蒲东兵,等.多门限声纹识别方法.吉林大学学报(信息科学版),2005;(2):93—96

语音增强算法 篇5

1.时频结合的语音增强算法原理及Matlab和DSP实现的分析设计

最小均方误差算法 (LMS) 是时域语音增强的经典实现方法之一, 变步长自适应滤波包括Sigamoid函数变步长LMS算法等是改进型的归一化LMS自适应算法。谱减法是频域语音增强的经典实现方法之一, 其处理方法是通过估计含噪语音中噪声的频谱, 用含噪语音频谱减去噪声信号频谱达到去除噪声的目的。由于谱减之后, 加性噪声由背景噪声变成了音乐噪声, 因此, 谱相减的核心问题是滤除音乐噪声。从谱减法的算法思想出发, 如果能得到音乐噪声的估计帧, 那么基于与谱减法相同的原理就可以消除由于谱减带来的音乐噪声, 从而提高去噪效果, 这就是级联谱相减算法思想。级联谱相减的原理如图1所示。

实现时频结合进行语音增强的具体步骤是: (1) 对带噪语音进行自适应消噪处理, 可有效去除相关噪声; (2) 由于自适应消噪对噪声相关性要求较高, 对非相关噪声的消除有限, 因而可将自适应消噪的输出结果作为下一级的输入信号, 再进行级联谱减法的消噪处理, 以获取更好的语音增强效果。在具体实现过程中, 首先得到含噪语音的相关噪声作为参考信号, 将输入主信号与参考信号经过变步长的归一化LMS算法处理, 再经过级联谱相减处理 (见图2) 。

在Matlab平台下的仿真, 输入数据是经自适应滤波器处理后得到的增强语音信号。由于其增强效果较好, 噪声太小, 不易于观察谱减法效果, 故而在信号上又加入少量噪声, 以便观察效果。噪声是利用Matlab中的randn函数生成的高斯白噪声, 而后加噪声实现。对于自适应滤波的输出记做e2。对e2进行加汉宁窗, 加窗长度为256个样点, 有128点重叠, 经FFT变换, 减去噪声统计值, 再经功率谱平滑、半波整流、剩余噪声衰减, 最后借用含噪语音的相位进行IFFT变换, 这个操作亦即级联谱相减, 得到最终去噪输出结果。其Matlab仿真实现如图3所示。

经过自适应消噪系统后, 消除了大量噪声, 并且自适应消噪在时域增强, 故对语音的损伤较小, 即波形近似和纯语音完全一样。试听效果表明, 经过这种改进的变步长归一化LMS算法处理后, 已经可以恢复较纯净的原始语音信号, 然而语音信号中的环境噪声依然存在。

经过谱减法处理后, 语音中的环境噪声被消除了, 取而代之的是音乐噪声。经过8次级联谱减法运算后, 基本上完全消除了音乐噪声, 语音清晰。美中不足的是, 经过级联谱减法后, 语音信息有小部分损伤 (波形细节处与纯语音略有差别) , 这是由于在仿真的过程中使用了噪声谱, 当一段时间内噪声较小的时候, 就会损伤掉语音信息。

总之, 时频结合的语音增强算法同时处理了相关噪声和不相关噪声, 有效去除剩余的音乐噪声, 并保持良好的可懂度。性能较单独采用其中一种方法处理效果更加优异。

2.语音增强结果性能分析

设为纯净语音信号, 表示相对应的增强信号, 由信噪比定义公式评价增强语音的质量。采用Matlab程序语句sum (abs (out_SNR1-out_SNR2) ) /245分别对改进型变步长LMS算法实现的自适应消噪和级联谱减法消噪计算输入和输出信噪比。如图4、图5所示。

图4和图5中的每一点代表每一帧的信噪比, 在程序中按帧计算信噪比, 然后将所有帧的信噪比相加后除以总帧数。从2图中可以看出, 输出信噪比在每一点都大于输入信噪比, 说明语音信号中的噪声得到有效抑制。输出信噪比看似在有些帧段比较小, 这是因为级联谱减法有效的去除了音乐噪声, 使之变成近0的直线, 而用于参考的纯语音信号在这一段有环境噪声, 这使得直观输出信噪比小于输入信噪比。但事实上已经从主观方面改善了语音效果。算法成功提高了信噪比, 改进型变步长归一化LMS算法信噪比改善22.3dB;级联谱减法信噪比改善4.8dB。2种算法结合可以实现信噪比改善27.1dB。这正是时频结合的语音增强算法的优势所在。

结合Matlab时频结合的语音增强实现过程, 利用DSP硬件开发板上PCM3002编解码芯片实现模拟信号的输入、输出。编解码接口有2个通道, 一路数据, 一路控制。在开发板上的CPLD与主芯片TMS320VC5416的控制通道相连控制编解码的高位和低位寄存器, 同时CPLD还产生了所需的时钟, CPLD的输入是12.488MHz的时钟, 产生了PCM3002的3.0122MHz的时钟和采样频率48KHz的时钟, 这些时钟可以通过软件编辑修改。编解码的数据通道连接到TMS320VC5416的McBSP2接口。

对于PCM3002的数据采集实现, 可将采样率设置为8KHz, 利用硬件中断, 每隔125us中断一次, 时频结合的语音增强算法需要2路输入, 将参考信号按算法滤波, 用主通道信号减去滤波后的数据, 得到增强后的信号, 将此信号输出, 并修改滤波器的权系数。其流程如图6所示。

由于硬件实现不同于软件仿真, 其储存空间有限, 最大也只能查看2048个点, 再多取点就会引起数据溢出。而实际语音的采样频率为8KHz持续8秒, 所以在实现硬件时只是随机抓取其中很短的一段来观察效果。如图7所示, 上半部分为带噪语音的一小段, 下半部分为经过处理的带噪语音, 可以明显看出时频结合语音增强算法起到了较好的消噪作用。

3.总结

本文通过对实际语音信号的Matlab仿真处理, 进一步验证了改进型变步长归一化LMS算法的优越性以及级联谱减法在保持可懂度的基础上去除音乐噪声的有效性, 从而得出采用改进型变步长归一化LMS和级联谱减法即时频结合语音增强算法可实现高性能语音去噪系统的结论。并最终在DSP开发平台上成功实现了该种时频结合的语音增强算法, 取得了较好的语音去噪及语音增强效果, 为软硬结合实现高性能的语音增强系统提供重要依据。

参考文献

[1]陈新锐.基于小波语音去噪的FPGA系统设计与实现[D].桂林:广西师范大学, 2010.

[2]陈紫强, 黄冰, 刘庆华.高性能语音增强算法的研究[J].电声技术, 2002 (10) :4-5.

一种基于谱减的语音增强算法改进 篇6

语音去噪方法中, 谱减法去噪是较为常见的一种方法。该算法利用加性噪声与语音信号不相关的特点, 在假设噪声是统计平稳的前提下, 用无语音间隙计算得到的噪声频谱估计值取代有语音期间噪声的频谱, 与含噪语音频谱相减, 从而获得语音频谱的估计值。谱减法具有算法简单、运算量小的特点, 便于实现快速处理, 往往能够获得较高的输出信噪比, 所以被广泛采用。该算法经典形式的不足之处是处理后会产生具有一定的节奏性起伏、听上去类似音乐的“音乐噪声”。

为了降低“音乐噪声”, 本文采用阈值法对非平稳背景噪声信号进行估计, 得到还原的纯净语音信号。

1 传统的谱减法简要介绍

一般的谱相减直接从有噪信号中减去噪声谱得到“纯净”语音谱。假设s (n) , d (n) 和y (n) 分别代表语音、噪声和带噪语音, Ss (ω) , Sd (ω) 和Sy (ω) 分别表示其短时谱, 由于语音信号是短时平稳的, 所以在短时谱幅度估计中认为它是平稳随机信号。且假设噪声d (n) 是与语音s (n) 不相关的加性噪声。于是得到信号的加性模型:

若以Py (ω) , Ps (ω) 和Pd (ω) 分别代表y (n) , s (n) , d (n) 的能量密度谱, 则:

y (n) , s (n) 和d (n) 加窗处理后的信号分别以yw (n) , sw (n) 及dw (n) 表示, 而Yw (ω) , Sw (ω) 和Dw (ω) 分别对应yw (n) , sw (n) 及dw (n) 的傅立叶变换。则:

式中Sw* (ω) 和Dw* (ω) 分别为Sw (ω) 和Dw (ω) 的复共轭。|Sw (ω) |2及|Dw (ω) |2分别代表语音信号和噪声的短时能量谱。基于短时谱度估计的语音增强技术的目的就是设法得到|Sw (ω) |的估计, 并由此得到|Sw (n) |的估计, 即增强后的语音。

由含噪语音信号经加窗及傅立叶变换等运算可直接得到|Yw (ω) |2, 但|Dw (ω) |2, Sw (ω) Dw* (ω) 及Sw* (ω) Dw (ω) 无法精确得到, 因而分别以三者各自的系统平均能量, E[|Sw (ω) Dw* (ω) |]及E[|Sw* (ω) Dw (ω) |]来近似代替。由于s (n) 与d (n) 独立, 所以Sw (ω) 与Dw (ω) 独立, 因此均为0。这样, |Sw (ω) |2的估计估计由下式获得:

由于人耳对语音的感知是通过语音信号中各频谱分量的幅度获取的, 对各分量的相位则不敏感, 因此直接用带噪语音的相位作为增强以后的语音相位, 就可得到原始语音的估计值。

2 基于先验信噪比的谱减改进方法

接下来介绍一下基于先验信噪比的改进型谱减法的基本原理和算法实现。

2.1 带噪语音基于先验信噪比谱减法的计算理论

Cape在文献中证明:由于其在计算增益函数是引入了先验信噪比, 并采用了“Decision-Directed” (直接判决) 法, 进行先验信噪比的估计, 所以取得了较好的增强效果。我们同样可因将这种方法引入到谱减法中, 得到基于先验信噪比估计的改进型谱减法。先验信噪比SNRprio定义为:

将增益函数表示成先验信噪比的形式, 即利用SNRpost (ω, i) =1+SNRprio (ω, i) 。其中, i为帧数。于是, 得到下式:

其中, SNRprio (ω, i) 用“D-D”法进行估计, 即:

其中, i为当前帧, i-1为前一帧;为前一帧语音的估计结果;η为调节系数, 一般在0.8-1之间;max (., .) 为两者之中取较大的值。从式 (8) 可以看出, 先验信噪比SNRprio是通过非线性的递推估计得到的。

大家知道, 谱减法也可以用线性时变滤波器形式来表示, 即对|Y (ω) |乘以增益函数G (ω) 将式 (5) 变为乘积形式:

将上面式 (7) 所得到的增益函数G (ω) 代入式 (9) , 我们就得到了。在谱减法中, 利用人耳对语言的幅度比较敏感, 而对语言的相位不敏感这特性, 以带噪语音的相位∠Y (ω) 代替纯净语音相位∠S (ω) , 得:

为经过谱减语音增强后并还原至时域的语音信号。

2.2 基于先验信噪比的谱减改进方法的算法实现

(1) 带噪语音输入, 计算输入信噪比。

(2) 将带噪语音进行分帧, 计算各帧能量。

(3) 取一门限值, 对各帧进行有声/无声判断。

(4) 对各帧进行傅立叶变换, 若为寂静帧则将该帧判为零, 否则利用式 (8) 估计出该帧的信噪比。

(5) 用先验信噪比计算出滤波函数, 最终计算增强后语音的频谱函数。

(6) 对各帧的谱函数进行逆傅立叶变换, 得到增强后语音。

3 实验仿真结果

本文所采用语音原始波形、普通谱减法以及改进谱减后的增强语音波形MATLAB仿真如下:

通过计算, 原始语音的信噪比为4.584dB, 普通的谱减法增强语音信噪比为15.653dB, 改进的谱减法增强语音信噪比为23.264dB。

4 结论

与传统的谱减法进行语音去噪相比, 文中提出的语音去噪方法使得噪声得到很明显的抑制, 提高了语音质量。实验表明, 特别是在输入信噪比较低的情况下, 采用文中算法, 更好地提高了带噪语音的输出信噪比, 明显削弱了谱减法所带来的“音乐”噪声, 抑制加性噪声效果最好、运算量小、系统简单。但语音的可懂度等主观性能指标却受到一定的损失, 存在失真现象, 这个不足笔者目前还在研究之中。

参考文献

[1]金学骥.语音增强算法的研究与实现[D].杭州:浙江大学, 2005.

[2]付强, 易克初, 田斌.语音信号处理[M].北京:国防工业出版社, 2000.

[3]王永红.“谱相减技术中”音乐噪声的“抑制”[J].桂林电子工业学院学报, 1998 (1) .

[4]M.BEROUTI, R.SCHWARTZ, J.MAKHOUL, Enhancement of speechcorrupted by acoustic noise[J].IEEE ICASSP, 1979.

[5]B.LIM SIM, Y.C.TONG, A parametric formulation of the generalizedspectral subtraction method[J].IEEE Transaction on Speech andAudio Processing, 1998 (6) .

语音增强算法 篇7

在实际应用环境中, 话音总会收到各种噪音的干扰, 而这种带噪话音会影响话音的使用。为了从带噪话音中还原出原始话音, 人们提出了各种各样的话音增强算法。而谱减算法、VAD算法、维纳滤波算法等是最常用的话音增强算法[1]。其中, 谱减算法具有复杂度低、实现简单等特点而得到了广泛地使用。但是, 在低信噪比条件下, 谱减算法存在着音乐噪声问题和低清晰度问题, 从而限制了其应用[2]。针对谱减算法的问题, 本文提出了基于倒谱距离和谱减算法的话音增强算法 (Speech Enhancement based on Cepstral Distance and Spectral Subtraction method, SECDSSM) 。

二、相关理论介绍

2.1谱减算法

在谱减算法中, 原始语音信号为s (t) , 接收信号为y (t) , 加性高斯白噪声为n (t) , 并且s (t) 与n (t) 是相互独立的, 那么y (t) =s (t) +n (t) 。s (t) 、n (t) 和y (t) 的傅立叶变换分别为S (ω) 、N (ω) 和Y (ω) , 那么s (t) 估计值S (t) 的幅度, 其中, α和β分别为功率因子和噪声因子。增加α的值可以改善信噪比, 但是可能会造成语音的失真;同样, 增加β的值能够抑制音乐噪声, 但是可能引起语音失真, 因此, 在设置α和β值的时候, 需要根据实际情况, 从而实现去噪以及提高语音清晰度的目的。由于人耳对语音相位不敏感, 因此, 在谱减算法中, 使用y (t) 的相位作为s (t) 的相位, 从而最终得到增强后的语音信号s (t) 。

2.2倒谱距离

噪声对信号的短时能量或者其它特征参数影响比较大, 因此它们并不能够用于语音段与非语音段的区分, 而倒谱系数受噪声影响比较小, 因而其可以被用于端点检测。信号的倒谱的计算公式为:, 其中, Cn是倒谱系数, 并且Cn=C-n, Cn为实数。而。

假设S (ω) 和S’ (ω) 是一对谱密度函数, 那么根据Parsavel定理, S (ω) 和S’ (ω) 的可用倒谱距离为:, 其中Cn与C’n分别为S (ω) 和S’ (ω) 的倒谱系数。dcep可用于表示S (ω) 和S’ (ω) 区别。如果语音信号的前几帧为加性噪声, 那么可以根据前几帧倒谱矢量的均值来估算加性噪声的倒谱矢量, 其计算公式为:, 其中, p是调节因子, 分别为噪声的倒谱矢量的估计值以及当前测试帧的倒谱矢量。则相应的倒谱距离

三、SECDSSM算法实现

虽然谱减算法能够对语音进行增强, 但是其存在着两个方面的不足: (1) 增强后的话音的清晰度较差; (2) 引入了音乐噪声。针对上述问题, SECDSSM算法对谱减算法进行了改进。SECDSSM算法根据噪声和语音信号的倒谱距离来动态地调整α和β, 从而实现了去噪以及提高语音清晰度的目的。该算法的实现流程为:

(1) 噪声估计。首先根据前十个无话音的信号帧得到初始噪声的倒谱距离均值d, 同时记录倒谱距离的最大值dmax;

(2) 噪声更新。当收到新的信号帧i后, 计算其倒谱距离dcep (i) 。如果, 则认为新收到的信号帧是噪声帧。那么对d进行更新, 更新公式为。如果dmax<dc'ep (i) , 那么

(3) 谱减。根据dcep (i) 和d的值, 动态调整功率因子α和噪声因子β, 得到增强后的信号频谱与相位, 其中, α与β的调整公式分别为

(4) 消减音乐噪声。谱减后的信号中带有少量的音乐噪声, 为了提升语音信号的质量, 必须消减音乐噪声。之所以叫音乐噪声, 这是因为, 谱减后的语音信号中含有未被消除的噪声, 并且该噪声的频谱含有随机的尖峰, 听起来像有节奏的音乐, 所以叫作音乐噪声。为了消减音乐噪声, SECDSSM算法使用了以下三种方法来消减音乐噪声:

1) 使用相邻三帧的均值来替换谱减前的信号频谱, 已达到消除噪音毛刺以及保持信号连续的目的;2) 使用相邻帧的最小值替换谱减后的语音信号的频谱, 以消除频谱中的突变点;3) 使用滤波器抑制谱减后信号中的音乐噪声。

四、仿真分析

为了验证SECDSSM算法的性能, 本文所采用的仿真环境:原始语音信号是在静室中进行采集, 而采样频率和采样精度分别为8k Hz和16bit, 同时原始语音与噪声的信噪比为-5d B, 此外, 利用汉明窗来对加噪后的语音进行分帧, 其中帧长与帧移分别为256点和128点。

五、结论

针对谱减算法在话音增强方面存在的音乐噪声问题和低清晰度问题, 本文提出了SECDSSM算法。SECDSSM算法不仅使用倒谱距离来区分话音段与噪音段, 而且还根据噪声帧与当前帧的倒谱距离来动态地调整功率因子α和噪声因子β, 此外其还使用三种办法来进一步地消除音乐噪声, 从而有效地抑制了噪声, 提高了信噪比和话音的清晰度, 实现了话音增强的目的。

参考文献

[1]Loizou P C.Speech enhancement:theory and practice[M].CRC press, 2013.

上一篇:IPTV系统下一篇:涪陵城市发展新区