我知道消除噪音的最佳选择是给自己买一副消除噪音的耳机……
但是是否有任何软件可以使用电脑麦克风和耳机来阻挡背景噪音?
答案1
抑制噪声的方法基本上有两种
- 噪声抑制维纳滤波器或其他估计和减法方案。不过,为了让这些方案听起来不错,需要大量的优化和脑力劳动。对于您的应用程序来说,这可能不是一个好的解决方案,因为 PC 不是为实时音频处理而构建的,而且所涉及的算法远非微不足道。
- 播放延迟校正、相位反转的背景噪音和可用信号。这对耳机来说效果很好,尽管它通常会在低音中引入一些模糊。但是,这也不能离线工作,因为它需要来自周围环境的实际背景噪音信号。而且它对 PC 来说不太好用,因为它们会引入太多的音频延迟。不过,您可以使用一些最小的实时 Linux 内核来尝试这个。
根据我对音频处理和各种噪音消除技术的经验,我会推荐一些隔音效果好的耳机。通常,这些耳机可以产生更好的声音,而无需任何效果不佳的信号处理技巧。
答案2
由于物理/硬件原因,不可能。
降噪耳机的工作原理是,先录制声音,然后播放反相声音来抵消声音。使用笔记本电脑时,麦克风首先很差,而且麦克风就在你面前,这意味着从你身后传来的声音在到达麦克风之前会先到达你的耳朵。然后,它必须通过计算机到达慢速声卡(可能需要 0.1 秒或更长时间)才能到达扬声器播放。这个延迟时间太长了,无法处理。
所以主要归结为:
你和麦克风听到的声音不同(在耳机中,它们在你的耳朵里)。
标准笔记本电脑声卡的延迟时间很大,因此,你通常甚至无法让吉他放大器在计算机上正常工作(在耳机中接近 0)。
无论如何优化,这都会导致糟糕的体验。
答案3
请参阅此文章:软件中有降噪功能吗?。
很有趣,但是没有解决方案。
答案4
使用 MATLAB 和本指南/示例代码:
http://www.mathworks.com/help/dsp/examples/acoustic-noise-cancellation-lms-.html
您可以录制要消除的噪音(以 wav 格式录制),然后构建一个可以消除噪音的音频输出。您还可以修改代码,将麦克风输入作为噪音,并让其自适应地生成输出并播放出来。
请记住,噪音消除对低频“机械”类噪音最有效。高音调(高频)噪音更难消除。