use*_*947 13 linux drivers alsa audio pulseaudio
我的声卡是 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 上也是如此。
这也在Ask Ubuntu上交叉发布,而这里已经回答了。
小智 5
根据Realtek 规范,
- 用于语音应用的麦克风回声消除 (AEC)、噪声抑制 (NS) 和波束成形 (BF) 技术
列在软件功能列表中。我还查看了ALC892 芯片组数据表,它实际上不是芯片组的功能。因此可以确认此功能仅是一个软件功能,由您的 Windows ALC892 驱动程序处理。
因此,我将努力在 linux 上更通用的噪声抑制解决方案,而不是绑定到这个特定的驱动程序:
如果这是设备的一个功能,而不仅仅是它附带的软件(可能是前者),那么它必须在内核驱动程序中实现。1 在我看来,通常情况下,Realtek PCI 声卡实际上使用带有补丁的 Intel HDA 驱动程序来支持 ALC 编解码器(对于任何感兴趣的人:)[src]/sound/pci/hda/patch_realtek.c
。
搜索内核源文档,没有提到与这些设备相关的“噪声抑制”或“回声消除”。搜索驱动程序源本身,也没有明确提及。我认为如果它被实现,这几乎肯定会通过用户空间软件可以使用的接口/proc
或/sys
驱动程序模块的选项来记录。
当然,问题在于 Realtek 与大多数硬件制造商一样,认为其驱动程序源代码是秘密的,这使得第三方很难或不可能为 Realtek 不完全支持的系统(例如 Linux)创建驱动程序。Realtek 确实有一个列出 Linux 驱动程序的页面,但是链接似乎已失效。如果你运气好的话,有人可以在这里找到安装它的说明(这是一个面向 Mint 的网站,但对于任何发行版来说,该过程都是相同的)。2
但是,即使您可以在某处找到副本,我也非常怀疑该驱动程序是否实现了您想要的功能,因为我找不到任何提及这一点的内容。最有可能的是,它或多或少与您已有的相同;它可能会稍微好一些(Mint 页面提到内核驱动程序交换了侧面和后置扬声器),但最终也可能会更糟,或者完全不起作用,因为树外驱动程序没有经过内核开发人员的审查并且可能包含作者不知道的与内核相关的问题(请注意,树内 hda 补丁的作者有@realtek.com.tw
电子邮件地址)。
因此,除非您听到任何不同的声音,否则您可能不走运。你可以四处寻找软件解决方案,这些功能显然是由 Linux 上的 Skype 实现的,因此它们显然可以单独使用软件实时工作。也有人写了一篇论文,哈哈。不幸的是,我没有任何进一步的运气四处寻找。
这里有一些关于使用 的功能alsamixer
来实现降噪的讨论。我认为你必须禁用pulseaudio才能做到这一点。
1. Pulseaudio 实际上是一个建立在 ALSA 之上的用户空间工具,ALSA 是内核的声音子系统(意思是:pulseaudio 不实现硬件访问,它只适用于来自/去往内核驱动程序的流)。
2. 如果您找到了,您需要的是 3.0 版本,而不是 2.6 版本。这些数字指的是它们兼容的 Linux 内核版本,并且您使用的是 3.x 内核。然而,再次强调,如果您的声音在其他方面还不错,我强烈建议您不要为此烦恼,因为它不太可能对您有任何帮助。
归档时间: |
|
查看次数: |
19568 次 |
最近记录: |