Skip to content
Marketing
Skill

/audio-denoise

音频降噪:去除录音中的背景噪声、电流声、风噪、嗡嗡声,基于 ffmpeg 滤镜链(afftdn/highpass/lowpass)。 当用户说"降噪""去噪""去杂音""消除背景噪声""电流声""风噪""录音有杂音""音频降噪"时使用。 和 audio-editing 的区别:audio-editing 做剪辑/转码/音量等通用音频操作(内置 denoise 兜底),本 SKILL 专做降噪调参。

BOOST
From plugin
easel
3.2k114 skills
Install
$ npx -y skills add zju-real/easel --skill audio-denoise --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/audio-denoise

Context preview

The summary Claude sees to decide when to auto-load this skill.

音频降噪:去除录音中的背景噪声、电流声、风噪、嗡嗡声,基于 ffmpeg 滤镜链(afftdn/highpass/lowpass)。 当用户说"降噪""去噪""去杂音""消除背景噪声""电流声""风噪""录音有杂音""音频降噪"时使用。 和 audio-editing 的区别:audio-editing 做剪辑/转码/音量等通用音频操作(内置 denoise 兜底),本 SKILL 专做降噪调参。

SKILL.md

audio-denoise.SKILL.md
name: audio-denoise
description: >-
  音频降噪:去除录音中的背景噪声、电流声、风噪、嗡嗡声,基于 ffmpeg 滤镜链(afftdn/highpass/lowpass)。
  当用户说"降噪""去噪""去杂音""消除背景噪声""电流声""风噪""录音有杂音""音频降噪"时使用。
  和 audio-editing 的区别:audio-editing 做剪辑/转码/音量等通用音频操作(内置 denoise 兜底),本 SKILL 专做降噪调参。
layer: produce

音频降噪

清理录音中的背景噪声。降噪专项 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 与滤镜链、大小变化。

规则

1. **绝不删除原始文件** — 即使用户未指定 `preserve_original`。 2. **先探测再处理** — 始终先 `info` 展示文件信息。 3. **视频输入只动音频** — 脚本自动 `-c:v copy`。 4. **透明执行** — 脚本打印实际 ffmpeg 命令。 5. **降噪过度时** — 建议降低 tier 或 `--mix`(如 0.8→0.5)。 6. **无 Profile 依赖** — 音频处理不需要账号画像。

自研参考

  • FFmpeg afftdn/arnndn/anlmdn 滤镜文档
  • [xiph/rnnoise](https://github.com/xiph/rnnoise) — RNN 噪声抑制
  • [GregorR/rnnoise-models](https://github.com/GregorR/rnnoise-models) — 预训练模型
  • [timsainb/noisereduce](https://github.com/timsainb/noisereduce) — Python 频谱门控(备选方案)
Read more
Ships witheasel

An open-source AI agent for social media — discover trends, create content, publish everywhere, and learn what works across Xiaohongshu, Douyin, Zhihu, Bilibili, and more.🎨一个开源的 AI 社交媒体智能体——发现热点趋势、创作内容、一键发布至各大平台,并学习分析哪些内容真正有效,覆盖小红书、抖音、知乎、哔哩哔哩等平台。

Get the whole plugin
Stats
3,208
Stars
492
Forks
Active
Maintenance
Python
Language
Apache-2.0
License
16h ago
Last commit
1mo ago
Created
9h ago
Added

Repo: zju-real/easel

Other skills on easel.

asset-manager
Skill

asset-manager

outputs/ 目录下的产物管理:按日期/平台/类型归档、打标签、搜索历史内容、生成素材清单。 当用户说"整理素材"、"归档"、"找之前的内容"、"搜索历史"、"素材管理"、…

@zju-real@zju-realView Skill
audio-editing
Skill

audio-editing

通用音频处理:音频剪辑/裁剪、格式转码(mp3/wav/m4a/aac)、音量归一化、从视频提取音轨、多段拼接、淡入淡出、变速(保音高)。当用户说“剪音频”“裁一段”“转成…

@zju-real@zju-realView Skill
audio-mix
Skill

audio-mix

音频混合 / 混音:把旁白口播 + 背景音乐 + 音效混成一轨,BGM 自动循环补足并可闪避(旁白说话时自动压低 BGM 保证人声清晰)。当用户说…

@zju-real@zju-realView Skill