摘要:上次关于语音增强的原理讲说了噪声估计问题,这次打算说下增益因子如何确定,也就是当噪声已知后,如何进行去噪的问题(把增益因子与带噪语音相乘即可)。这里主要说下MMSE滤波,顺带说下谱减法、维纳滤波。当然也有其它方式来实现语音增强的,比如基于矩阵分解原理的子空间法、基于自适应滤波器的降噪,有的方法ico
阅读全文
摘要:语音增强的整个过程,通常假设噪声为加性随机平稳噪声,且语音短时平稳,下面的原理描述中,都是在这两个假设前提之下来做的。整个语音增强的流程大致可以分为两大部分 一、噪声估计 二、衰减因子(有的地方也叫做增益因子)的计算 最后,把衰减因子应用于带噪语音,就可以得到我们期望的“纯净语音”。语音增强最难的部
阅读全文
摘要:由于人耳对声音的感知(如:频率、音调)是非线性的,为了对声音的感知进行度量,产生了一系列的尺度(如:十二平均律),这里重点说下Bark尺度与Mel尺度。刚开始的时候,我自己也没弄明白这两个尺度的区别。后来才逐渐的明白他们的思考出发点,这里简单分享出来。 Bark(巴克)频率尺度是以Hz为单位,把频率
阅读全文
摘要:一、回声消除算法模型 先来分析下自适应回声消除的主要组成部分,大体上可以把回声消除模型分为两个部分 横向滤波器用脉冲响应w(n)【有的地方也称为回声路径】与远端说话者信号u(n)卷积得到回声估计,并用y(n)表示该估计。麦克风输出信号做为期望响应d(n),从期望响应d(n)中减去滤波器的”合成回声”
阅读全文
摘要:这里假设读者具有自适应滤波器的基础知识。Speex的AEC是以NLMS为基础,用MDF频域实现,最终推导出最优步长估计:残余回声与误差之比。最优步长等于残余回声方差与误差信号方差之比,这个结论可以记下,下面会用到的。 对于长度为N的NLMS滤波器,误差信号定义为期望信号与估计信号之差,表示如下: \
阅读全文
摘要:发现很多朋友想进入语音降噪处理的大门,却很容易被铺天盖地的理论弄的很迷惑,不知道从哪里开始比较好。网上给出的参考文章大多干说理论,没有代码实现。很不利于学习。于是打算写这篇语音降噪的文章,并给出相应的实现代码方便交流和进一步的学习。实现代码请到音视频算法讨论QQ群(374737122)中自行下载(T
阅读全文
摘要:介绍了混响的原理与混响时间如何计算,最后实现了Schroeder混响算法
阅读全文
摘要:先说明下,这里的代码流程是修改过的Speex流程,但与Speex代码差异不大,应该不影响阅读。 (1)用RemoveDCoffset函数进行去直流 (2)远端信号预加重后放入x[i+frame_size],近端信号预加重后放入input缓冲区 (3)前M-1帧的远端频域信号移位,为当前帧频域信号腾出
阅读全文
摘要:噪声抑制算法中,谱减算法用的是后验证信噪比,维纳滤波器使用的是先验信噪比,MMSE算法既用到了先验信噪比,也用到了后验信噪比,那么,自然提出一个问题,在降噪过程中,先验信噪比与后验信噪比到底那个作用比较大。这个结论其实通过验证可以得出,先验信噪比是影响噪声抑制的主要参数,后验信噪比是辅助参数。 那么
阅读全文
摘要:当有对语音的响度进行调整的需要时,就要做语音自动增益(AGC)算法处理,当你在跟远方的朋友进行语音交流时,背后都有这个算法在默默的工作,如大名鼎鼎的QQ聊天软件、做语音起家的YY等,语音聊天时都会用到这个算法。 最简单的硬性增益处理是对所有音频采样乘上一个增益因子,它也等同于在频域每个频率都同时乘上
阅读全文
摘要:什么是共振峰及共振峰的作用 前面讲过语音的激励模型,当声门周期脉冲激励信号通过声道时,会在声道内引起共振作用(这个过程在语音产生模型中叫做声道模型),从而产生一组共振频率,这组共振频率就被称为共振峰(频率),通常认为,语音谱包络中的几个极大值就是共振峰频率。准确的检测共振峰频率和带宽,有利于区分不同
阅读全文
摘要:先说下为什么要检测语音基音周期 (1)基音决定了语音的音调。汉语是一种有调的语音,同一句话,语调不同,意义差别非常大,准确的检测语音的基音周期,有利于“理解”话语中的意思。 (2)语音合成、声调控制等音效果制作的需要。 再说下什么是基音周期 按照经典的语音激励模型,声带周期性的张开和闭合所需要的时间
阅读全文
摘要:临界带宽的概念是在噪声对纯音的掩蔽效应中产生的,如果用一个中心频率用f,带宽为bf的白噪声来掩蔽一个频率为f的纯音,先将这个白噪声的强度调节到纯音恰好听不见为止,然后将bf由大到小逐渐减小(保持单位频率的噪声强度不变),起初纯音是听不见的,但当bf小到某一个临界值时,这个纯音就突然可以听见了,再继续
阅读全文
摘要:谱减算法利用了加性噪声的特点,在偏向于经验和直观意义上对语音做出增强处理。这种处理方式虽然简单、方便易懂,在数学上却显的不够严格。很难向大家证明它是某种最优的。下面我们关注下维纳滤波算法,它基于数学上易于处理的最优均方误差准则来得到增强的语音信号 维纳滤波算法假设滤波过程为线性的,就是把处理过程视为
阅读全文
摘要:非线性谱减 Berouti等人提出的谱减算法,假设了噪声对所有的频谱分量都有同等的影响,继而只用了一个过减因子来减去对噪声的过估计。现实世界中的噪声并非如此,这意味着可以用一个频率相关的减法因子来处理不同类型的噪声。 多带谱减法 在多带算法中,将语音频谱划分为N个互不重叠的子带,谱减法在每个子带独立
阅读全文
摘要:当使用谱减法时,如果带噪语音的幅度谱与估计出来的噪声谱相减出现负值时,说明对噪声的估计出现了过估计问题。对这种现象最简单的处理就是将负值重调为0。以保证非负的幅度谱。但是,这种对负值的非线性处理,会导致信号帧频谱的随机位置上出现小的、独立的峰值。转换到时域后,这些峰值听起来就像帧与帧之间频率随机变化
阅读全文
摘要:在用Matlab进行语音分析时,通常会用读入的数据进行分帧处理。在分帧中,往往设置在相邻两帧之间有一部分重叠。 其原因是:语音信号是时变的,在短时范围内特征变化较小,所以做为稳态来处理;但超出这短时范围语音信号就有变化了。在相邻两帧之间基音发生了变化,如正好是两个音节之间,或正好是声母向韵母过渡等等
阅读全文
摘要:声道的终端为口和唇。从声道输出的是速度波,而语音信号是声压波,二者之比的倒数称为辐射阻抗。它表征口和唇和辐射效应,也包括圆形头部的绕射效应等。 研究表明,口唇辐射在高频段比较明显,在低频段影响较小,辐射引起的能量损耗正比于辐射阻抗的实部,所以辐射模型R(z)应是一阶类高通滤波的形式,可以表示为:R(
阅读全文