06 - 噪声门与降噪
06 - 噪声门与降噪
掌握 EasyEffects 中噪声门、RNNoise AI 降噪和噪声抑制的原理与配置,消除各类背景噪声。
6.1 噪声问题概述
在音频处理中,噪声是最常见的问题之一。不同类型的噪声需要不同的处理方式。
噪声分类
| 噪声类型 | 来源 | 特性 | 典型场景 |
|---|---|---|---|
| 稳态噪声 | 风扇、空调、电脑机箱 | 持续不变 | 办公室、家庭 |
| 脉冲噪声 | 键盘、鼠标点击 | 间歇性出现 | 远程办公、游戏 |
| 环境噪声 | 街道、人群 | 持续但有变化 | 咖啡厅、户外 |
| 电气噪声 | 电源嗡嗡声、接地环路 | 固定频率 | 老旧设备 |
| 电磁干扰 | 手机、无线设备 | 随机出现 | 任何环境 |
噪声处理工具选择
噪声类型诊断:
│
├── 持续性稳态噪声(风扇、空调)
│ └── RNNoise AI 降噪 ✅(最佳选择)
│
├── 间歇性噪声(键盘、偶尔的声响)
│ └── 噪声门 ✅(最佳选择)
│
├── 两者兼有
│ └── RNNoise + 噪声门组合 ✅
│
├── 固定频率干扰(50/60Hz 嗡嗡声)
│ └── 陷波滤波器(参见第 4 章)
│
└── 极端噪声环境
└── RNNoise + 噪声门 + 压缩器组合
6.2 噪声门(Noise Gate)
噪声门是最基础的噪声抑制工具。当信号电平低于设定阈值时,噪声门关闭(静音);当信号电平高于阈值时,噪声门打开(通过)。
工作原理
输入信号:
▃▅▇█▇▅▃ ▁▁▃▅▇█▇▅▃▁▁ ▃▅▇█▇▅▃
(说话) (安静+噪声) (说话)
噪声门阈值: ───────────────────────── (如 -40 dB)
噪声门状态:
[ 开 ] [ 关 ] [ 开 ]
输出信号:
▃▅▇█▇▅▃ 静音 ▃▅▇█▇▅▃
(说话) (噪声被消除) (说话)
添加噪声门
- 在输入效果页面点击 「+ 添加效果」
- 搜索 「噪声门」 或 「Gate」
- 点击添加
界面与参数
┌──────────────────────────────────────────────────────────┐
│ 噪声门 (Gate) [开关: ON] │
├──────────────────────────────────────────────────────────┤
│ │
│ ┌─── 信号电平 ────────────────────────────────────────┐ │
│ │ 输入: ▇▇▇▅▃▁ -35.2 dB │ │
│ │ 输出: ▇▇▇▅▃▁ -35.2 dB │ │
│ │ 门状态: ████████▁▁▁▁▁▁▁▁████████ │ │
│ └────────────────────────────────────────────────────┘ │
│ │
│ 阈值 (Threshold): [-40.0 dB] │
│ 迟滞 (Hysteresis): [-6.0 dB] │
│ 启动时间 (Attack): [20 ms] │
│ 保持时间 (Hold): [200 ms] │
│ 释放时间 (Release): [400 ms] │
│ 范围 (Range): [-60.0 dB] │
│ │
│ 侧链输入: [本通道 ▼] │
│ 侧链滤波器: │
│ 类型: [关闭 ▼] 频率: [1000 Hz] Q: [1.0] │
│ │
└──────────────────────────────────────────────────────────┘
核心参数详解
阈值(Threshold)
| 阈值 | 效果 | 适用场景 |
|---|---|---|
| -20 dB | 只对很响的信号开门 | 安静环境,强信号 |
| -30 dB | 适中的门控 | 一般录音环境 |
| -40 dB | 敏感的门控 | 较吵的环境 |
| -50 dB | 非常敏感 | 很吵的环境,但可能误触发 |
设置方法:
- 先保持安静,观察输入电平(噪声电平)
- 将阈值设在噪声电平之上 3-6 dB
- 说话测试,确认门能正常开启
噪声电平: -50 dB
阈值建议: -44 ~ -47 dB
迟滞(Hysteresis)
迟滞防止噪声门在阈值附近反复开关(“抖动”)。
无迟滞: 有迟滞:
信号在阈值附近波动 开门阈值和关门阈值不同
│ │ │ │ │
门: 开关开关开关 门: 开────────关
↑ 不稳定 ↑ 稳定
| 迟滞值 | 效果 |
|---|---|
| -3 dB | 较小的迟滞窗口 |
| -6 dB | 适中的迟滞(推荐) |
| -10 dB | 较大的迟滞窗口 |
启动时间(Attack)
信号超过阈值后,门从关闭到完全打开的时间。
| 启动时间 | 效果 | 适用场景 |
|---|---|---|
| 0.1-5 ms | 极快开启 | 打击乐器 |
| 5-50 ms | 快速开启 | 语音(推荐) |
| 50-100 ms | 较慢开启 | 避免"切头" |
提示: 启动时间太短可能导致"咔嗒"声(Click),太长可能"切掉"语音的起始部分。
保持时间(Hold)
信号低于阈值后,门保持开启状态的时间。
| 保持时间 | 效果 |
|---|---|
| 0-100 ms | 门迅速关闭 |
| 100-500 ms | 适中保持(推荐) |
| 500ms-1s | 较长保持 |
作用: 在句子中间的短暂停顿期间,保持门开启,避免句子中间出现"断裂"。
释放时间(Release)
门从开启到完全关闭的过渡时间。
| 释放时间 | 效果 |
|---|---|
| 50-200 ms | 快速关闭 |
| 200-500 ms | 平滑关闭(推荐) |
| 500ms-1s | 缓慢关闭 |
提示: 释放时间太短会导致语音尾部被"切掉",太长会让噪声在语音结束后继续通过。
范围(Range)
门关闭时信号衰减的幅度。
| 范围值 | 效果 |
|---|---|
| -60 dB | 完全静音(推荐) |
| -30 dB | 大幅衰减但不完全静音 |
| -10 dB | 轻微衰减 |
6.3 噪声门最佳配置
语音通话噪声门
阈值: -40 dB
迟滞: -6 dB
启动时间: 10 ms
保持时间: 300 ms
释放时间: 300 ms
范围: -60 dB
场景: 在线会议、语音通话。消除键盘声和环境噪声,但说话时门迅速开启。
播客录音噪声门
阈值: -45 dB
迟滞: -6 dB
启动时间: 5 ms
保持时间: 500 ms
释放时间: 500 ms
范围: -60 dB
场景: 播客录音。保持时间和释放时间较长,确保语音的自然过渡。
直播噪声门
阈值: -35 dB
迟滞: -8 dB
启动时间: 5 ms
保持时间: 200 ms
释放时间: 200 ms
范围: -60 dB
场景: 游戏直播。阈值相对较高,只消除安静间隙的噪声。
6.4 侧链滤波器
侧链滤波器允许你对噪声门的检测信号进行频率过滤,使门只响应特定频率的信号。
工作原理
┌─── 侧链路径 ────────┐
│ │
输入信号 ──────┤ 带通滤波器 门控检测 ──┐
│ (只听特定频率) │ │
└─────────────────────┘ │
▼
┌─────────────────────────────┐
│ 噪声门(门控信号) │
└─────────────────────────────┘
应用场景
| 场景 | 侧链滤波器设置 | 说明 |
|---|---|---|
| 人声门控 | 带通 300-3000 Hz | 只响应人声频率范围 |
| 鼓声门控 | 带通 60-200 Hz | 只响应踢鼓/低鼓 |
| 防止键盘触发 | 高通 200 Hz | 忽略键盘的高频噪声 |
人声侧链配置示例
侧链滤波器:
类型: 带通 (Band Pass)
低频截止: 300 Hz
高频截止: 3000 Hz
Q 值: 0.7
效果: 噪声门只"听" 300-3000 Hz 频率范围内的信号来判断开门/关门。键盘声(高频为主)不会触发开门,只有人声(中频为主)才能开门。
6.5 RNNoise AI 降噪
RNNoise 是基于深度学习的噪声抑制技术,由 Mozilla 开发。它能智能识别和消除背景噪声,保留人声。
工作原理
┌──────────────────────────────────────────────────┐
│ RNNoise 处理流程 │
│ │
│ 输入音频 ──▶ 频谱分析 ──▶ 神经网络推理 ──▶ 输出音频│
│ (STFT) (判断噪声/人声) (IFST) │
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ 神经网络 (RNN): │ │
│ │ │ │
│ │ 频谱帧 ──▶ 特征提取 ──▶ GRU 层 ──▶ 掩码 │ │
│ │ │ │ │
│ │ ┌──────────────────────┘ │ │
│ │ ▼ │ │
│ │ 输出掩码 × 输入频谱 = 降噪频谱 │ │
│ └─────────────────────────────────────────┘ │
└──────────────────────────────────────────────────┘
添加 RNNoise
EasyEffects 内置 RNNoise 降噪效果器:
- 在输入效果页面点击 「+ 添加效果」
- 搜索 「RNNoise」 或 「降噪」
- 点击添加
RNNoise 界面
┌──────────────────────────────────────────────────────────┐
│ RNNoise 降噪 (Deep Noise Remover) [开关: ON] │
├──────────────────────────────────────────────────────────┤
│ │
│ ┌─── 信号可视化 ──────────────────────────────────────┐ │
│ │ 输入: ▇▇▇▇▇▅▃▁ -15.3 dB │ │
│ │ 输出: ▇▇▇▇▅▃▁ -17.8 dB │ │
│ │ 噪声: ▁▁▁▁▁▁▁▁ -60.0 dB │ │
│ └────────────────────────────────────────────────────┘ │
│ │
│ 降噪级别 (Amount): [0.50] │
│ 延迟 (Latency): [10 ms] │
│ 模型: [标准 ▼] │
│ │
└──────────────────────────────────────────────────────────┘
参数说明
| 参数 | 说明 | 范围 | 建议值 |
|---|---|---|---|
| 降噪级别 | 降噪的强度 | 0.0 ~ 1.0 | 0.3 ~ 0.7 |
| 延迟 | 处理延迟 | 自动 | 不可调 |
降噪级别选择
| 级别 | 效果 | 适用场景 |
|---|---|---|
| 0.1-0.3 | 轻微降噪 | 安静环境,微调 |
| 0.3-0.5 | 中等降噪 | 一般办公环境(推荐) |
| 0.5-0.7 | 强降噪 | 较吵的环境 |
| 0.7-1.0 | 极强降噪 | 极端噪声环境 |
注意: 降噪级别过高(>0.7)可能导致人声出现"水下"效果或金属感。建议从 0.5 开始调整。
RNNoise 的优势与局限
| 优势 | 局限 |
|---|---|
| 智能识别噪声和人声 | CPU 占用较高 |
| 无需手动调参 | 可能引入伪影(artifact) |
| 对稳态噪声效果极好 | 对突发噪声效果有限 |
| 实时处理 | 对音乐信号可能损失细节 |
| 开源免费 | 模型针对语音优化 |
6.6 RNNoise 预训练模型
RNNoise 使用预训练模型来识别噪声。默认模型已能处理大多数场景,但社区也提供了一些专用模型。
默认模型
EasyEffects 内置的 RNNoise 模型基于大量语音数据训练,适合一般噪声环境。
社区模型
一些社区成员训练了专用模型:
| 模型 | 特点 | 适用场景 |
|---|---|---|
| 标准模型 | 通用降噪 | 大多数场景 |
| 高保真模型 | 保留更多细节 | 音乐相关 |
| 强降噪模型 | 更激进的降噪 | 极端噪声 |
替换模型文件
# Flatpak 版模型位置
~/.var/app/com.github.wwmm.easyeffects/config/easyeffects/rnnoise/
# 原生版模型位置
~/.config/easyeffects/rnnoise/
# 下载社区模型
wget https://github.com/werman/noise-suppression-for-voice/releases/latest/download/rnnoise-linux-amd64.zip
unzip rnnoise-linux-amd64.zip -d ~/.config/easyeffects/rnnoise/
6.7 其他降噪工具
LSP 噪声抑制器
LSP 插件包提供了专业的噪声抑制器:
# 安装 LSP 插件
# Fedora
sudo dnf install lsp-plugins
# Ubuntu
sudo apt install lsp-plugins-ladspa
在 EasyEffects 中搜索 「LSP」 可找到其提供的效果器。
Speex 降噪
Speex 是一个开源的语音编解码器,内置噪声抑制功能。部分 EasyEffects 版本通过 GStreamer 集成了 Speex 降噪。
6.8 降噪组合方案
轻度噪声环境
输入效果链:
RNNoise (降噪级别: 0.3)
中度噪声环境
输入效果链:
① RNNoise (降噪级别: 0.5)
② 噪声门 (阈值: -40 dB)
重度噪声环境
输入效果链:
① RNNoise (降噪级别: 0.7)
② 噪声门 (阈值: -35 dB, 侧链: 人声带通)
③ 压缩器 (阈值: -20 dB, 比率: 4:1)
④ 限制器 (阈值: -1 dB)
噪声门与 RNNoise 的配合
┌──────────────────────────────────────┐
│ 处理流程 │
│ │
原始信号 ──▶ [RNNoise] ──▶ [噪声门] ──▶ 输出
│ │
│ └── 先降噪,再门控
│ RNNoise 去除持续噪声
│ 噪声门消除静默间隙
└──────────────────────────────────────┘
为什么先降噪再门控?
- RNNoise 降低持续性噪声的电平
- 降噪后,噪声电平更接近安静环境
- 噪声门可以设置更低的阈值
- 避免噪声门被降噪前的高噪声电平持续开启
6.9 降噪效果评估
主观评估方法
- A/B 对比: 开关降噪效果器,对比听感
- 噪声残留: 安静时是否能听到残余噪声
- 人声质量: 人声是否自然,有无伪影
- 频谱检查: 使用频谱分析仪检查降噪效果
常见问题诊断
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 人声有"水下"效果 | RNNoise 级别过高 | 降低降噪级别到 0.3-0.5 |
| 语音被切断 | 噪声门阈值过高 | 降低阈值或增大保持时间 |
| 仍有背景噪声残留 | 降噪级别不够 | 适当提高级别或叠加噪声门 |
| 语音出现金属感 | RNNoise 过度处理 | 降低级别或更换模型 |
| 键盘声仍然通过 | 未配置侧链滤波器 | 添加人声带通侧链滤波器 |
| 语音开头被切掉 | 噪声门启动时间太短 | 增大启动时间 |
6.10 实战:消除键盘声
键盘声是远程办公中最常见的噪声问题。以下是完整的处理方案:
方案一:噪声门 + 侧链滤波器
输入效果链:
① RNNoise (降噪级别: 0.4)
② 噪声门:
阈值: -38 dB
迟滞: -6 dB
启动时间: 5 ms
保持时间: 400 ms
释放时间: 300 ms
侧链滤波:
类型: 带通
低频: 300 Hz
高频: 3000 Hz
Q: 0.7
原理: 侧链滤波器让噪声门只"听" 300-3000 Hz 的人声频率。键盘声主要是高频(2-8 kHz),不会触发噪声门开启。
方案二:仅 RNNoise
输入效果链:
① RNNoise (降噪级别: 0.6)
原理: RNNoise 的神经网络能识别键盘声为噪声并消除。对于机械键盘效果较好,但薄膜键盘效果可能有限。
6.11 要点回顾
- 噪声门用于消除间歇性噪声,RNNoise 用于消除持续性噪声
- 噪声门的阈值应设在噪声电平之上 3-6 dB
- 侧链滤波器可让噪声门只响应特定频率
- RNNoise 降噪级别建议从 0.5 开始,避免过度处理
- 推荐先降噪(RNNoise)再门控(噪声门)
- 键盘声可通过侧链滤波器 + 噪声门组合消除
6.12 注意事项
过度降噪: RNNoise 级别过高会让人声出现伪影(“水下"效果、金属感)。建议在 0.3-0.5 范围内调整。
模型局限: RNNoise 针对语音优化,对音乐信号可能损失细节。不建议对音乐播放使用 RNNoise。
噪声门的"切头”: 如果说话的第一个字被切掉,说明启动时间太短或阈值太高。适当增大启动时间或降低阈值。
CPU 占用: RNNoise 基于深度学习推理,CPU 占用不可忽略。在低性能设备上可能影响其他任务。