我的声卡是 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 上也有这样的选项。
答案1
我使用 lubuntu,并且已经安装了 pulseaudio 和 pavucontrol。我已设法通过从终端启动 skype 来解决麦克风噪音问题:
PULSE_PROP="filter.want=echo-cancel" skype
答案2
有点晚了,但我最近遇到了类似的静态背景噪音问题,我的笔记本电脑的内置麦克风(我相信是相同的 Realtek 芯片组,但解决方案应该适用于所有声卡)。经过一番寻找,确实有一种方法可以使用 webrtc echo-cancel 插件在 pulseaudio 中实时减少噪音(Ubuntu/Mint 中默认的 speex echo-cancel 对我来说效果不好)。我看到有人提到了这一点PulseAudio Gentoo 维基,但花了一段时间才弄清楚如何在 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
您应该在生成的 deb 中安装 pulseaudio、pulseaudio-utils 和 libpulse 包(例如 Trusty 64 位版本或 Mint 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
如果您愿意,您还可以启用均衡器,如上面的 webupd8 链接中所述。
重启 pulseaudio ( pulseaudio -k && pulseaudio --start
) 或注销并重新登录,或重启后应能启用 pulseaudio 中的噪音/回声消除插件。不知怎的,我发现在完全重启后它工作得很好,但重新登录后就不行了。