人类语音噪声过滤器


17

有人知道一个可以减弱非语音的滤波器吗?我正在写语音识别软件,想过滤掉人类语音以外的所有内容。这将包括背景噪音,microphone脚的麦克风产生的噪音,甚至是背景音乐。我已经实现了可补偿功率谱6 dB滚降的一阶滤波器,但是我仍然听到噪音(尽管语音听起来更加清晰)。我曾经考虑过使用低通滤波器,但由于两个原因,我对此并不满意:

  1. 我不知道低通前置滤波器是否会干扰其余的语音处理。即使人耳只能检测到低于20 kHz的声音,我也不想冒消除处理语音所需的任何高次谐波的风险(尽管我不知道是否是这种情况。但是我不想冒险)。

  2. 我了解某些辅音(例如f,h和s)的激发几乎完全是白噪声。可以这么说,我不想实现一个可以消除良好噪声的噪声滤波器。

理想情况下,我只想听麦克风里那个人的讲话。如果您有任何想法,或者我缺少什么,请告诉我。非常感激!


我想。我将其保持打开状态,只是因为我在这里看到了类似的问题(滤波器和声学处理),这些问题都得到了很好的回答。
Zetta Suro


经验法则:如果您想知道如何以特定语言或特定平台实现给定的DSP算法,那么SO就是主题。如果是关于DSP算法/技术的问题,没有特定的编程角度,则几乎可以肯定它属于DSP.SE(在那里它也往往会获得更好的质量答案)。
Paul R

知道了 您将其迁移到这里了吗?如果是这样,谢谢。我不知道如何迁移它,所以我最终在这里重新提出了它。
Zetta Suro

不是我-我确实做了举报,并询问主持人是否可以移动它,所以我猜想TPTB中的一个做到了(这要感谢那个!)。
Paul R

Answers:


8

在电话中使用的语音通信信道通常具有300 Hz至3 kHz的频率响应。尽管这会拒绝正常语音中的许多能量,但清晰度仍然很好-主要问题似乎是某些语音辅音(例如“ p”和“ t”)在没有较高频率分量的情况下可能很难辨别。

因此,您可能正在寻找通常在消费者音频中使用的20 Hz-20 kHz完整带宽与用于语音通信的最激进过滤之间的“最佳位置”(请参见上文)。我建议从50 Hz至8 kHz的带通滤波器开始。它最多只能将SNR最多提高几dB,但可能会有所帮助,尤其是在您有大量高频背景噪声的情况下。


谢谢!我的一个朋友实际上建议了语音通道,但我怀疑它会削弱某些辅音中的过多能量。我将尝试50 Hz至8 kHz,看看它是如何工作的!
Zetta Suro

2
选择此答案仅是因为它是我一直在寻找的“快速”解决方案。其余的答案将需要我进行更多的研究,因为它们从长远来看会有所帮助,但这是我最初寻找的一种简单的过滤器解决方案。
Zetta Suro

5

使用与语音带宽匹配的通带滤波器会有所帮助。

如果您有多个麦克风(就像现在的手机一样),则有很多类似ICA的方法可以利用它-但是您的问题提示我只有一个输入。

您想要做的是“单麦克风源分离”(名称来自Roweis的开创性论文),也称为“单传感器”。警告:这远不是一个解决的问题,并且该领域的所有研究都是最近的,没有任何算法或方法是“明显的赢家”(与高斯混合模型+ FST不同的是用于语音识别)。

一个好的框架是通过维纳过滤。参见Benaroya等。“基于维纳滤波和多窗口STFT的单传感器源分离”(请阅读第1和2节,除非您确实需要多分辨率,否则请不要理会)。简而言之,您可以计算信号的STFT,并针对每个STFT帧尝试获取语音频谱和噪声频谱的估计,然后使用维纳滤波从中恢复语音频谱的最佳估计(这是类似于“软掩盖”频谱)。

现在,您的问题如下:给定STFT帧,从中估计语音和噪声分量。Benaroya在论文中描述的最简单的方法是通过矢量量化-让许多说话者花费几个小时的语音,计算STFT,对其运行LBG来找到512或1024个典型语音帧的密码本;为噪音做同样的事情。现在,在给定输入信号帧的情况下,将其非负投影(本文描述了乘法梯度更新过程)到语音和噪声基数上,就可以得到语音和噪声估计值。如果您不想处理非负投影,只需使用最近的邻居即可。这实际上是在“单传感器源分离”部门中可能适用的最简单的方法。

注意,语音识别系统确实可以为分离系统提供一些输入。使用您的语音识别系统进行解码的第一遍。对于每一帧,取得分最高的高斯平均MFCC向量。将其转换回频谱。动臂,您有一个遮罩,可为您提供类似语音的位的最可能频谱位置,您可以将其用作维纳滤波的输入。这听起来有点像在挥手,但精神上,要分离一个信号源,您需要一个好的模型,而向后采用的语音识别系统则是语音信号生成模型的地狱。


1

您可能应该考虑进行独立成分分析(ICA),因为您的问题与通常用来描述ICA的“鸡尾酒会”问题非常相似。简而言之,ICA可以找到彼此独立的信号成分。这假定环境中的其他噪声(洗碗机,白噪声,风扇嗡嗡声)将独立于语音信号源并且可以分离。

ICA与PCA(原理成分分析)相似,但是它没有最大化原理轴上的方差,而是最大化了独立性。ICA的许多实现都应插入您正在使用的任何编码环境中。


4
ICA需要的输入信号与要分离的源一样多。在语音去噪中,我们只剩下一个信号,因此ICA毫无帮助。
pichenettes 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.