werman/noise-suppression-for-voice

Noise suppression plugin based on Xiph's RNNoise

werman/noise-suppression-for-voice

这是什么 – 一个实时音频插件,使用Xiph的RNNoise神经网络模型减少麦克风中的背景噪声。它提供VST2、VST3、LV2、LADSPA、AU和AUv3插件格式,因此可用于大多数DAW和系统级音频管道。

主要特性

  • 基于RNNoise的降噪(循环神经网络,在多种噪声上训练)。
  • 支持16位、48 kHz单声道或立体声流。
  • 极简GUI,显示参数和诊断统计。
  • 可调节的语音活动检测(VAD)设置:
    • VAD阈值(%) – 模型在通过音频前必须对语音存在的置信度。
    • VAD宽限期(毫秒) – 语音结束后保持输出可听一小段时间,避免切断单词。
    • 追溯VAD宽限期(毫秒) – 增加延迟以在检测滞后时保留语音开头。
  • 可为Windows、Linux和macOS构建(macOS上的AU/AUv3计划中)。
  • 为每种插件格式提供单独构建;可通过CMake标志禁用不需要的格式。

如何使用

  1. Windows – 安装VST2/3 DLL,并在Equalizer APO、Carla或任何DAW等宿主中加载。将麦克风采样率设置为48 kHz。
  2. Linux(PipeWire) – 通过PipeWire filter-chain配置加载提供的librnnoise_ladspa.so(参见README中的现成配置文件)。在control块中调整VAD控制。
  3. Linux(PulseAudio) – 创建null sink,使用module-ladspa-sink加载LADSPA插件,并将麦克风回环到sink。将相关行添加到~/.config/pulse/default.pa以自动启动。
  4. macOS – 源代码中支持AU/AUv3;欢迎贡献以完成构建脚本。

构建

# 64位发布构建
cmake -Bbuild-x64 -H. -GNinja -DCMAKE_BUILD_TYPE=Release
ninja -C build-x64

您可以编译32位,或使用提供的MinGW工具链交叉编译Windows。使用CMake标志如-DBUILD_VST_PLUGIN=OFF跳过不需要的格式。

依赖 – 项目通过git-subrepo引入外部代码:

  • JUCE (GPLv3) – GUI和插件包装框架。
  • FST – 音频处理工具。
  • catch2 – 单元测试库。

许可证 – GPL-3.0(与RNNoise和JUCE相同)。任何人可以在相同许可证下使用、修改和重新分发该插件。

适用人群 – 任何需要低延迟、设备端降噪用于语音聊天、直播或录音,且不想支付商业DSP解决方案的人。特别适合远程工作场景,可集成到系统级音频(Equalizer APO、PipeWire、PulseAudio)中。

相关

  • 项目
  • 项目
  • 项目
  • 项目