使用管道线模块降低麦克风噪音

使用管道线模块降低麦克风噪音

使用pulseaudio,可以轻松加载麦克风降噪模块。这个链接解释得很清楚: https://askubuntu.com/questions/18958/realtime-noise-removal-with-pulseaudio

我想添加 rnnoise 作为 pipelinewire 的插件来为所有用户消除麦克风的噪音。

我正在寻找一种简约的解决方案,并希望避免应用程序。像这个: https://github.com/noisetorch/NoiseTorch?tab=readme-ov-file

答案1

安装语音噪声抑制。截至 2024 年 4 月,没有 Ubuntu 软件包,请参阅这个悬而未决的问题获取安装说明。不过,它是为 Arch、Alpine、Gentoo 和 openSUSE 打包的。请参阅其自述文件以了解可以调整的设置。

答案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 设置中,您可以选择消除噪音的麦克风。

评论

  1. 我们因此使用 pipelinewire 过滤器链模块。查看文档,非常有用。
  2. 每个应用程序(使用音频)都被设计为使用一个标准(称为音频插件 API):
    • ladspa:开放标准......但它不是最新的
    • lv2:开放标准...最新的
    • vst3:专有标准(您不应该在开源程序中看到它)
    • vst:专有标准(你不应该......)

因此,我提供的解决方案不涵盖使用 lv2 音频插件的应用程序(我不关心专有标准)。欢迎任何对 lv2 的帮助。

相关内容