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


我不知道低通前置滤波器是否会干扰其余的语音处理。即使人耳只能检测到低于20 kHz的声音,我也不想冒消除处理语音所需的任何高次谐波的风险(尽管我不知道是否是这种情况。但是我不想冒险。
我知道某些辅音(例如f,h和s)的激发几乎完全是白噪声。可以这么说,我不想实现一种可以消除良好噪声的噪声滤波器。

理想情况下,我只想让讲话者对着麦克风讲话。如果您有任何想法,或者有什么我想念的,请告诉我。非常感谢!

评论

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

例如:stackoverflow.com/questions/6452926/…

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

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

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

#1 楼

在电话中使用的语音通信信道通常具有300 Hz至3 kHz的频率响应。尽管这会浪费很多正常语音的能量,但清晰度仍然相当不错-主要问题似乎是某些重读辅音,例如如果没有较高的频率成分,“ p”和“ t”可能很难区分。通常在消费者音频中使用的kHz带宽以及用于语音通信的最激进的过滤器(请参见上文)。我建议从50 Hz至8 kHz的带通滤波器开始。它最多只能将SNR最多提高几dB,但可能会有所帮助,尤其是在您有很多高频背景噪声的情况下。

评论


$ \ begingroup $
谢谢!我的一个朋友实际上建议了语音通道,但我怀疑它会衰减某些辅音中的过多能量。我将尝试50 Hz至8 kHz,看看它是如何工作的!
$ \ endgroup $
– Zetta Suro
2012年7月31日下午14:50

$ \ begingroup $
之所以选择此答案,仅仅是因为这是我一直在寻找的“快速”解决方案。其余的答案将需要我进行更多的研究,因为它们从长远来看会有所帮助,但这是我最初寻找的简单过滤器解决方案。
$ \ endgroup $
– Zetta Suro
2012年8月2日在23:11

#2 楼

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

如果您有多个麦克风(例如现在的手机),那么会有很多类似ICA的方法可以利用以下方法:那-但您的问题提示我您只有一个输入。

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

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

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

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

#3 楼

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

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

评论


$ \ begingroup $
ICA需要的输入信号与要分离的信号源一样多。在语音去噪中,我们只剩下一个信号,因此ICA毫无帮助。
$ \ endgroup $
–小食
2012年8月1日14:36