音频降噪
SkillMediaAudio denoising: removes background noise, electrical hum, wind noise, and buzzing from recordings using an ffmpeg filter chain (afftdn/highpass/lowpass). Use when the user says "降噪" (denoise), "去噪", "去杂音", "消除背景噪声" (remove background noise), "电流声" (electrical hum), "风噪" (wind noise), "录音有杂音" (recor
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the 音频降噪 skill
What this skill tells your AI
The instructions your AI receives, as published by zju-real/easel in skills/openclaw/audio-denoise/SKILL.md and read by ahel’s review.
清理录音中的背景噪声。降噪专项 SKILL——通过共享脚本 skills/shared/scripts/audio_ops.py denoise 封装 ffmpeg 降噪滤镜,提供三级方案(从基础滤波到 RNN 神经网络),参数确定、可复现,不现场手拼命令。
通用音频操作(裁剪/转码/音量/提取/拼接/淡入淡出/变速)见 audio-editing。本 SKILL 专注降噪。
输入
| 字段 | 必填 | 说明 |
|---|---|---|
| input_file | 是 | 音频或视频文件路径 |
| tier | 否 | 1 / 2 / 3(默认 2) |
| output_file | 否 | 默认 outputs/主题名/{filename}-clean.{ext} |
| mix | 否 | 降噪强度 0.0-1.0(默认 0.8,仅 tier3 RNNoise) |
| preserve_original | 否 | 保留原始文件(默认 true) |
支持格式:wav, mp3, flac, aac, m4a, mp4, mkv, mov。
输出
- 降噪后的音频文件(放入
outputs/主题名/) - 处理报告:原始文件信息、所用 tier 与滤镜链、输出文件信息、大小对比
三级降噪方案(对应脚本 --tier)
脚本按 tier 自动选滤镜链并打印实际执行的 ffmpeg 命令。
Tier 1 — 基础降噪(ffmpeg 内置滤波)
切除低频隆隆声、高频嘶嘶声 + FFT 降噪,纯 ffmpeg 无外部依赖。
滤镜:highpass=f=80,lowpass=f=8000,afftdn=nr=12:nf=-40:tn=1
适用:轻度噪声、无需模型的快速处理。
Tier 2 — 加强降噪(更强 FFT + 非局部均值)
更激进的 FFT 降噪叠加 anlmdn,仍纯 ffmpeg。
滤镜:highpass=f=70,afftdn=nr=24:nf=-30:tn=1,anlmdn=s=0.0005
适用:中度噪声、稳态背景噪声(空调/风扇/底噪)。默认档。
Tier 3 — RNN 神经网络降噪(arnndn + 后处理)
RNNoise 针对人声优化 + 高通预处理 + 动态压缩 + 响度归一化。
滤镜:highpass=f=60,arnndn=m=<model>:mix=<mix>,acompressor=...,loudnorm=...
适用:人声录音、播客、访谈、复杂噪声环境。
需要 RNNoise 模型 sh.rnnn;缺失时脚本自动降级 Tier2 并打印下载提示。
执行步骤
脚本路径(相对项目根):skills/shared/scripts/audio_ops.py。
1. 探测输入文件
python skills/shared/scripts/audio_ops.py info input_file
脚本自身检查 ffmpeg/ffprobe,缺失时给安装提示。向用户展示时长/码率/声道,判断音频还是视频。
2. 准备 RNN 模型(仅 Tier3)
检查脚本旁 skills/shared/scripts/models/sh.rnnn 是否存在。不存在则下载:
mkdir -p skills/shared/scripts/models
curl -L https://github.com/GregorR/rnnoise-models/raw/master/somnolent-hogwash-2018-09-01/sh.rnnn \
-o skills/shared/scripts/models/sh.rnnn
不下载也可——脚本会自动降级 Tier2。也可用 --model <path> 指定其它模型。
3. 执行降噪
# 默认 Tier2
python skills/shared/scripts/audio_ops.py denoise input.wav -o outputs/主题名/input-clean.wav --tier 2
# Tier3(RNNoise,人声)
python skills/shared/scripts/audio_ops.py denoise input.wav -o outputs/主题名/input-clean.wav --tier 3 --mix 0.8
- 脚本会打印实际运行的 ffmpeg 命令(透明执行)。
- 视频输入自动
-c:v copy:只处理音轨,视频轨原样保留。
4. 验证输出 + 报告
脚本处理完自动打印输出文件的时长/码率/声道/采样率。如需完整对比:
python skills/shared/scripts/audio_ops.py info outputs/主题名/input-clean.wav
报告内容:原始 vs 输出(格式/时长/大小/采样率)、所用 tier 与滤镜链、大小变化。
规则
- 绝不删除原始文件 — 即使用户未指定
preserve_original。 - 先探测再处理 — 始终先
info展示文件信息。 - 视频输入只动音频 — 脚本自动
-c:v copy。 - 透明执行 — 脚本打印实际 ffmpeg 命令。
- 降噪过度时 — 建议降低 tier 或
--mix(如 0.8→0.5)。 - 无 Profile 依赖 — 音频处理不需要账号画像。
自研参考
- FFmpeg afftdn/arnndn/anlmdn 滤镜文档
- xiph/rnnoise — RNN 噪声抑制
- GregorR/rnnoise-models — 预训练模型
- timsainb/noisereduce — Python 频谱门控(备选方案)
Signals
- GitHub stars
- 1k
- Forks
- 143
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
audio-denoise- Source
- github.com/zju-real/easel