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标志禁用不需要的格式。
如何使用
- Windows – 安装VST2/3 DLL,并在Equalizer APO、Carla或任何DAW等宿主中加载。将麦克风采样率设置为48 kHz。
- Linux(PipeWire) – 通过PipeWire filter-chain配置加载提供的
librnnoise_ladspa.so(参见README中的现成配置文件)。在control块中调整VAD控制。 - Linux(PulseAudio) – 创建null sink,使用
module-ladspa-sink加载LADSPA插件,并将麦克风回环到sink。将相关行添加到~/.config/pulse/default.pa以自动启动。 - 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)中。
相关
- 项目
- 项目
- 项目
- 项目