强曰为道

与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

06 - 噪声门与降噪

06 - 噪声门与降噪

掌握 EasyEffects 中噪声门、RNNoise AI 降噪和噪声抑制的原理与配置,消除各类背景噪声。


6.1 噪声问题概述

在音频处理中,噪声是最常见的问题之一。不同类型的噪声需要不同的处理方式。

噪声分类

噪声类型来源特性典型场景
稳态噪声风扇、空调、电脑机箱持续不变办公室、家庭
脉冲噪声键盘、鼠标点击间歇性出现远程办公、游戏
环境噪声街道、人群持续但有变化咖啡厅、户外
电气噪声电源嗡嗡声、接地环路固定频率老旧设备
电磁干扰手机、无线设备随机出现任何环境

噪声处理工具选择

噪声类型诊断:
├── 持续性稳态噪声(风扇、空调)
│   └── RNNoise AI 降噪 ✅(最佳选择)
├── 间歇性噪声(键盘、偶尔的声响)
│   └── 噪声门 ✅(最佳选择)
├── 两者兼有
│   └── RNNoise + 噪声门组合 ✅
├── 固定频率干扰(50/60Hz 嗡嗡声)
│   └── 陷波滤波器(参见第 4 章)
└── 极端噪声环境
    └── RNNoise + 噪声门 + 压缩器组合

6.2 噪声门(Noise Gate)

噪声门是最基础的噪声抑制工具。当信号电平低于设定阈值时,噪声门关闭(静音);当信号电平高于阈值时,噪声门打开(通过)。

工作原理

输入信号:
  ▃▅▇█▇▅▃  ▁▁▃▅▇█▇▅▃▁▁  ▃▅▇█▇▅▃
  (说话)    (安静+噪声)    (说话)

噪声门阈值: ───────────────────────── (如 -40 dB)

噪声门状态:
  [ 开 ]    [  关  ]    [ 开 ]

输出信号:
  ▃▅▇█▇▅▃   静音        ▃▅▇█▇▅▃
  (说话)    (噪声被消除)   (说话)

添加噪声门

  1. 在输入效果页面点击 「+ 添加效果」
  2. 搜索 「噪声门」「Gate」
  3. 点击添加

界面与参数

┌──────────────────────────────────────────────────────────┐
│  噪声门 (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非常敏感很吵的环境,但可能误触发

设置方法:

  1. 先保持安静,观察输入电平(噪声电平)
  2. 将阈值设在噪声电平之上 3-6 dB
  3. 说话测试,确认门能正常开启
噪声电平: -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 降噪效果器:

  1. 输入效果页面点击 「+ 添加效果」
  2. 搜索 「RNNoise」「降噪」
  3. 点击添加

RNNoise 界面

┌──────────────────────────────────────────────────────────┐
│  RNNoise 降噪 (Deep Noise Remover)           [开关: ON]   │
├──────────────────────────────────────────────────────────┤
│                                                          │
│  ┌─── 信号可视化 ──────────────────────────────────────┐ │
│  │  输入:  ▇▇▇▇▇▅▃▁                      -15.3 dB    │ │
│  │  输出:  ▇▇▇▇▅▃▁                       -17.8 dB    │ │
│  │  噪声:  ▁▁▁▁▁▁▁▁                       -60.0 dB    │ │
│  └────────────────────────────────────────────────────┘ │
│                                                          │
│  降噪级别 (Amount):      [0.50]                          │
│  延迟 (Latency):         [10 ms]                        │
│  模型:                   [标准 ▼]                        │
│                                                          │
└──────────────────────────────────────────────────────────┘

参数说明

参数说明范围建议值
降噪级别降噪的强度0.0 ~ 1.00.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 去除持续噪声
                │                  噪声门消除静默间隙
                └──────────────────────────────────────┘

为什么先降噪再门控?

  1. RNNoise 降低持续性噪声的电平
  2. 降噪后,噪声电平更接近安静环境
  3. 噪声门可以设置更低的阈值
  4. 避免噪声门被降噪前的高噪声电平持续开启

6.9 降噪效果评估

主观评估方法

  1. A/B 对比: 开关降噪效果器,对比听感
  2. 噪声残留: 安静时是否能听到残余噪声
  3. 人声质量: 人声是否自然,有无伪影
  4. 频谱检查: 使用频谱分析仪检查降噪效果

常见问题诊断

问题可能原因解决方案
人声有"水下"效果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 占用不可忽略。在低性能设备上可能影响其他任务。


6.13 扩展阅读