# Audio Denoise

> >-

- **Type:** Skill
- **Install:** `agentstack add skill-zju-real-easel-audio-denoise`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [ZJU-REAL](https://agentstack.voostack.com/s/zju-real)
- **Installs:** 0
- **Category:** [Content & Media](https://agentstack.voostack.com/c/content-and-media)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [ZJU-REAL](https://github.com/ZJU-REAL)
- **Source:** https://github.com/ZJU-REAL/Easel/tree/main/skills/openclaw/audio-denoise
- **Website:** https://zju-real.github.io/Easel/

## Install

```sh
agentstack add skill-zju-real-easel-audio-denoise
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 音频降噪

清理录音中的背景噪声。降噪专项 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=:mix=,acompressor=...,loudnorm=...`
适用：人声录音、播客、访谈、复杂噪声环境。
**需要 RNNoise 模型 `sh.rnnn`；缺失时脚本自动降级 Tier2 并打印下载提示。**

## 执行步骤

脚本路径（相对项目根）：`skills/shared/scripts/audio_ops.py`。

### 1. 探测输入文件

```bash
python skills/shared/scripts/audio_ops.py info input_file
```

脚本自身检查 ffmpeg/ffprobe，缺失时给安装提示。向用户展示时长/码率/声道，判断音频还是视频。

### 2. 准备 RNN 模型（仅 Tier3）

检查脚本旁 `skills/shared/scripts/models/sh.rnnn` 是否存在。不存在则下载：

```bash
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 ` 指定其它模型。

### 3. 执行降噪

```bash
# 默认 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. 验证输出 + 报告

脚本处理完自动打印输出文件的时长/码率/声道/采样率。如需完整对比：

```bash
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 频谱门控（备选方案）

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [ZJU-REAL](https://github.com/ZJU-REAL)
- **Source:** [ZJU-REAL/Easel](https://github.com/ZJU-REAL/Easel)
- **License:** Apache-2.0
- **Homepage:** https://zju-real.github.io/Easel/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-zju-real-easel-audio-denoise
- Seller: https://agentstack.voostack.com/s/zju-real
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
