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

use*_*947 16 pulseaudio realtek alsa

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

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

显示噪声抑制选项的图像

我的问题是如何在 ALSA/PulseAudio 中启用背景噪声抑制?有没有我可以安装的模块,或者可能有一个可以在配置文件中启用的设置?

我找不到它的解决方案,这是唯一阻止我完全切换到 Linux 的事情——因为我经常使用麦克风说话,而在 Windows 上,Realtek 软件完全消除了背景噪音,而 PulseAudio 没有消除它,这意味着在 Linux 上录制的声音非常糟糕。

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

这也在 Unix StackExchange 上交叉发布

小智 17

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


小智 15

当天有点晚,但我最近在笔记本电脑的内置麦克风上遇到了类似的静态背景噪音问题(我相信与 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
Run Code Online (Sandbox Code Playgroud)

编辑 debian/rules 文件后,转到第 57 行并添加“ --enable-webrtc-aecDEB_CONFIGURE_EXTRA_FLAGS(在--disable-hal-compat选项后面说)

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

如果您还需要脉冲PulseaAudio System-Wide Equalizer,请编辑debian/pulseaudio-utils.install并添加:/usr/bin/qpaeq

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

您应该安装所产生的deb包中的PulseAudio,的pulseaudio-utils的和libpulse包(例如,对于忠实的64位版本,或薄荷17 64: 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
Run Code Online (Sandbox Code Playgroud)

如果您愿意,您也可以启用均衡器,如上面 webupd8 链接中所述。

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