我想知道如何从语音记录中去除环境噪音。
我做了一些研究,我注意到大多数提出的方法都使用快速傅里叶变换。但是为什么不能使用经典的电子滤波器来去除噪声频率呢?为什么要费心做 FFT?
我想知道如何从语音记录中去除环境噪音。
我做了一些研究,我注意到大多数提出的方法都使用快速傅里叶变换。但是为什么不能使用经典的电子滤波器来去除噪声频率呢?为什么要费心做 FFT?
我想知道如何从语音记录中去除环境噪音。
那么它现在以数字方式存储,对吧?那么您是否打算在模拟滤波器之后将麦克风放在扬声器旁边以重新录制它?
玩够了,我会认真的。
为了使滤波器在更小的频率范围内衰减更多,也就是使频率响应曲线更垂直,那么你只需要增加滤波器的阶数。
这在 Matlab 中是相当容易做到的。这也是可以进行后处理的事情。这也与可重复性有关,如果您在今天阳光明媚的日子应用过滤器,那么您希望它在下雨时与明天一样工作。您希望它的工作方式完全相同,对吗?
在模拟电路中,您拥有所有这些“5% 电阻器”、“1% 电容器”和所有其他东西。因此,如果您想做出精确的事情,您肯定需要事后修整电路,使其完美匹配您所需的过滤器。如果你想增加过滤器的阶数......那么可悲的是......它会使过滤器在物理上变得更大。而不是占用信用卡的大小,它会占用我不知道的大小,这取决于过滤器顺序和您可以接受的内容。
关于可重复性,今天做一些事情..温暖..明天..更冷......电阻会发生微小的变化,频率响应会改变,那里有几赫兹,那里有一些,你电路中的组件越多,您的组件更有可能更改其值。然后你有湿度,氧化......
这是我应该首先说的妙语,除非你有盒式磁带,否则你不能真正对它进行后期处理。我不是 100% 确定用于轻松录制/删除的模拟音乐媒体。LP光盘将是一场噩梦......
我们不要忘记价格。一个是软件,如果你自己写,那么它基本上是免费的,另一个需要组件,物理部件。
但不要认为模拟滤波器不好,它们有其用途,例如消除大型直流电机中的有害谐波,或通过平滑电流为 3D 打印机制造超静音步进电机。还有很多其他用途。- 此外,如果您使用模拟滤波器解决它,没有人会认为这是一个糟糕的解决方案。
我相信我间接回答了为什么 FFT 是一种更好的处理方式,后处理明智。最重要的是,这样做要便宜得多。如果您知道噪声的频率,您也可以只应用陷波滤波器。或者更宽的,也就是带阻滤波器。
我想补充的最后一件事......哇,这个答案太长了,对不起。但是,如果您使用模拟过滤器并且您...弄乱了您的计算,然后认为这一切都很好而且花花公子,并在一些严肃的事件中使用它,例如采访瑞典国王 (Knugen)。而且你搞砸了电容器的大小,而不是过滤 16kHz 的噪声,而是过滤掉 4kHz 的“噪声”。如果您改为以数字方式处理它,那么只需更改一些变量即可,您无需拆焊 -> 焊接另一个组件。面试也毁了。
但是为什么不能使用经典的电子滤波器来去除噪声频率呢?
谁说你不能?在数字信号处理之前的日子里,这就是这样做的。问题在于,过滤噪声始终是在保持所需信号(语音、音乐)不受影响和降低噪声之间的折衷方案。
对于盒式磁带和其他模拟磁带录音系统,如 DNL 和 Dolby,它们仅在信号较弱时进行过滤,这意味着噪音更容易被听到。然后,当信号更强时,滤波器会逐渐消失。参见:关于降噪的维基百科文章
语音可以限制在 300 Hz 到 3 kHz 这样的窄频带内,但仍然可以完全理解。您可以为该频段制作一个简单的模拟滤波器,但这会限制噪声被抑制的程度。为了更有效地滤除该频带之外的频率,需要一个复杂的模拟滤波器。这种过滤器难以设计、制造和制造。
这就是数字信号处理的用武之地。在数字域中,实现具有许多极点和零点的复杂滤波器要容易得多。此外,由于这些极点和零点的位置(在频域中)与 DSP(数字信号处理器)的时钟相关联,这是一个精确的(晶体)时钟,因此与模拟实现相比,滤波器将更加精确.
嗯,了解我们为什么需要 FFT 的第一步是了解数字滤波的工作原理。
所以基本上,你有一个结构,比如一个移位寄存器,有许多存储元件,一个输入和一个输出。样本值进入输入,通过寄存器移动并移动到输出。在寄存器的每个阶段,它都乘以一个称为滤波器系数的数字。
当您有一个快速寄存器进行快速乘法并且您有一个一个缓慢地进入的样本时,这个想法很有效。
在现实生活中,您很可能会得到一个由多个样本组成的帧。当您想要对其进行过滤时,您会将样本与过滤器系数进行卷积。这与前面的方法相同,但看起来有点不同。
现在是 FFT 部分。事实证明,卷积的数值复杂性随着样本数量的增加而迅速增长。另一方面,FFT 一开始在数值上很复杂,但与卷积相比,随着滤波器系数的增加,所需操作的数量增长得慢得多。
上面的意思是,在一定数量的样本之上,使用 FFT 将信号转换到频域,在频域中过滤信号,然后使用 IFFT 将其转换回来会快得多。我们使用的技巧是卷积的属性之一,即时域中的卷积在某些情况下可以建模为频域中的乘法。
综上所述,如果您拥有的滤波器系数数量足够大,则 FFT 会更快。“大”可以小到一百左右。
基于 FFT 的方法(您仍然必须使用加窗和重叠添加或重叠移位修改)的主要优点是设计牢固地在频域中,以及 Wiener 滤波器或频谱减法或许多其他依赖信号统计和模型的系统实际上在频域中基本工作。
相比之下,回声消除和各种变体不依赖于噪声模型,而是依赖于与噪声高度相关的不完美记录。这些是使用不同的滤波器(通常是 FIR)从信号中减去噪声估计并更新滤波器来完成的,以保持剩余信号与噪声通道的相关性最小。对于这些技术,FFT 并不是那么有用(当结果信号和滤波器更新的相当大的延迟是允许的时,出于性能原因,它们可以用作黑盒 FIR 中的一个组件,但对于它们来说并不是真正有用的。频域表示能力)。