使用pulseaudio,可以轻松加载麦克风降噪模块。这个链接解释得很清楚: https://askubuntu.com/questions/18958/realtime-noise-removal-with-pulseaudio
我想添加 rnnoise 作为 pipelinewire 的插件来为所有用户消除麦克风的噪音。
我正在寻找一种简约的解决方案,并希望避免应用程序。像这个: https://github.com/noisetorch/NoiseTorch?tab=readme-ov-file
答案1
答案2
我找到了一种为所有用户加载插件的rnnoise
方法。pipewire
步骤1:
在本页您可以下载rnnoise
为 X86 linux 编译的驱动程序。这不是 的最后一个版本rnnoise
。如果你想要最新版本,我认为你必须自己进行编译官方 github 仓库。
第2步:
在下载的存档中,您将找到所需的 Linux 库。始终采用单声道库。您可能只有一个麦克风!我建议将它们存储在/usr/lib/audio/
所以你必须创建文件夹音频。当我重命名这些文件时,我现在在此文件夹中:
- 拉德斯帕.so
- lv2.so
- vst3.so
- VSt.so
步骤3
创建 2 个pipewire
文件夹以获取此路径:
/etc/pipewire/pipewire.conf.d/
步骤4
在此文件夹中创建文件99-mic-denoising.conf
。在此文件中粘贴以下内容:
context.modules = [
{name = libpipewire-module-filter-chain
args = {
node.description = "Noise Canceling source"
media.name = "Noise Canceling source"
filter.graph = {
nodes = [
{
type = ladspa
name = rnnoise
plugin = /usr/lib/audio/ladspa.so
label = noise_suppressor_mono
control = {
"VAD Threshold (%)" = 90.0
"VAD Grace Period (ms)" = 200
"Retroactive VAD Grace (ms)" = 0
}
}
]
}
capture.props = {
node.name = "capture.rnnoise_source"
node.passive = true
audio.rate = 48000
}
playback.props = {
node.name = "rnnoise_source"
media.class = Audio/Source
audio.rate = 48000
}
}
}
]
步骤5
重新启动 Pipewire 守护进程:
systemctl restart --user pipewire.service
现在,在 gnome 设置中,您可以选择消除噪音的麦克风。
评论
- 我们因此使用 pipelinewire 过滤器链模块。查看文档,非常有用。
- 每个应用程序(使用音频)都被设计为使用一个标准(称为音频插件 API):
- ladspa:开放标准......但它不是最新的
- lv2:开放标准...最新的
- vst3:专有标准(您不应该在开源程序中看到它)
- vst:专有标准(你不应该......)
因此,我提供的解决方案不涵盖使用 lv2 音频插件的应用程序(我不关心专有标准)。欢迎任何对 lv2 的帮助。