麦克风 – 静态背景噪音抑制

我的声卡是Realtek ALC 892.在Windows 7上我使用官方的Realtek驱动程序,在Linux上我使用PulseAudio(在Ubuntu 13.10上)。 在Windows和Linux上,当我启用麦克风增强+ 30db(因为我的麦克风安静而需要)时,我会产生非常烦人和大声的背景噪音(我也确认了两个系统上Audacity的背景噪音)。

但是,Windows Realtek驱动程序具有噪音抑制选项,可以使用(启用后,Audacity不显示背景噪音,我的耳朵也确认没有背景噪音)。

Image showing noise suppression option

我的问题是如何在ALSA / PulseAudio中启用背景噪音抑制? 我可以安装任何模块,或者可以在配置文件中启用它的设置吗?

我无法找到它的解决方案,这是唯一阻止我完全切换到Linux的东西 – 因为我经常使用麦克风,而在Windows上,Realtek软件完全消除了背景噪音,PulseAudio不会将其删除,意味着Linux上录制的语音非常糟糕。

我知道我可以购买更好的声卡和麦克风,但正如我所说,Windows Realtek驱动程序实时消除软件级别的噪音(即在TeamSpeak3 / Steam /任何voip程序上谈话时没有噪音)所以我希望有这样的选择在Linux上也是如此。

这也是在Unix StackExchange上交叉发布的

我使用lubuntu已经安装了pulseaudio和pavucontrol。 我已设法通过从终端启动Skype来解决我的麦克风噪音问题: PULSE_PROP="filter.want=echo-cancel" skype

有点晚了,但我最近在笔记本电脑的内部麦克风上出现了类似的静态背景噪音问题(我相信Realtek芯片组相同,但解决方案适用于所有声卡)。 在环顾四周之后,确实有一种方法可以使用webrtc echo-cancel插件在pulseaudio中实时降低噪声(Ubuntu / Mint中的默认speex echo-cancel对我来说效果不佳)。 我在PulseAudio Gentoo wiki上看到了这一点,但花了一些时间来弄清楚如何在Ubuntu中启用。 这给我带来了很大的不同,Skype的背景​​噪音现在几乎全部消失了。

幸运的是,Ubuntu已经打包了这个所需的webrtc库。 我们可以从应用最小更改的官方源代码编译以启用插件,然后安装更新的包:

在软件源中启用源代码库,然后:

 sudo apt install build-essential # do this if like me you have libjack-jackd2-0 installed and not libjack0 sudo apt install libjack-jackd2-dev # for jack dependency problem accept the second solution of not installing libjack-dev, libjack0 since we already have installed required dev package above sudo apt build-dep pulseaudio # also install webrtc sudo apt install libwebrtc-audio-processing-dev # get the pulse source package apt source pulseaudio cd pulseaudio-4.0 

在编辑debian / rules文件之后,转到〜第57行并将“ --enable-webrtc-aec ”添加到DEB_CONFIGURE_EXTRA_FLAGS (比如在--disable-hal-compat选项之后)

接下来编辑debian / pulseaudio.install文件并添加:usr / lib / pulse – * / modules / libwebrtc-util.so

如果你还想要脉冲PulseaAudio系统范围均衡器 ,那么编辑debian/pulseaudio-utils.install并添加: /usr/bin/qpaeq

然后构建包以获得新的debs: dpkg-buildpackage -d -us -uc -nc

你应该在生成的debs中安装pulseaudio,pulseaudio-utils和libpulse软件包(例如,对于Trusty 64bit版本,或者Mint 17 64bit: sudo dpkg -i pulseaudio_4.0-0ubuntu11_amd64.deb pulseaudio-utils_4.0-0ubuntu11_amd64.deb libpulse0_4.0-0ubuntu11_amd64.deb libpulsedsp_4.0-0ubuntu11_amd64.deb libpulse-mainloop-glib0_4.0-0ubuntu11_amd64.deb

最后在/etc/pulse/default.pa中启用webrtc插件: sudo gedit /etc/pulse/default.pa

在文件末尾添加以下内容:

 ### Load echo cancellation module load-module module-echo-cancel source_name=echosource aec_method=webrtc set-default-source echosource 

如果您需要,您也可以启用上面webupd8链接中提到的均衡器。

在重新启动pulseaudio( pulseaudio -k && pulseaudio --start )或logoff + relogin或者reboot之后,应启用pulseaudio中的噪声/回声消除插件。 不知何故,我发现它在完全重启后运行良好,但在重新登录后没有那么多。