# Audiocut Keyword

音频关键字过滤工具 - 根据关键字配置自动识别并删除音频中的指定内容

- Repository: https://github.com/wlzh/skills (694 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-27
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add wlzh/skills --skill audiocut-keyword -g -a claude-code -y`
Codex: `npx skills add wlzh/skills --skill audiocut-keyword -g -a codex -y`
Cursor: `npx skills add wlzh/skills --skill audiocut-keyword -g -a cursor -y`
Gemini CLI: `npx skills add wlzh/skills --skill audiocut-keyword -g -a gemini-cli -y`

## Description

音频关键字过滤工具 - 根据关键字配置自动识别并删除音频中的指定内容

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 音频关键字过滤工具

> 基于 FunASR 语音识别和 FFmpeg 剪辑的音频关键字过滤 Skill

## 功能特性

- **精确转录**: 使用 FunASR Paraformer 进行 30s 分段转录，获取字符级时间戳
- **关键字识别**: 根据配置文件自动识别音频中的关键字
- **智能剪辑**: 使用 FFmpeg 精确删除关键字片段并合成最终音频
- **可配置**: 支持自定义关键字列表和缓冲时间

## 使用场景

1. **YouTube 转播客**: 删除视频中的"关注"、"订阅"、"点赞"等引导语
2. **广告过滤**: 自动删除音频中的广告和推广内容
3. **内容清理**: 批量处理音频，删除不需要的关键字片段

## 快速开始

### 基本用法

```bash
python3 ~/.claude/skills/audiocut-keyword/scripts/audiocut_keyword.py <音频文件>
```

### 指定输出文件

```bash
python3 ~/.claude/skills/audiocut-keyword/scripts/audiocut_keyword.py \
  input.mp3 \
  -o output.mp3
```

### 使用自定义关键字配置

```bash
python3 ~/.claude/skills/audiocut-keyword/scripts/audiocut_keyword.py \
  input.mp3 \
  -k my_keywords.json
```

### 调整缓冲时间

```bash
python3 ~/.claude/skills/audiocut-keyword/scripts/audiocut_keyword.py \
  input.mp3 \
  --buffer-before 1.0 \
  --buffer-after 1.0
```

## 工作流程

```
1. 音频转录（FunASR 30s 分段）
   ↓
2. 加载关键字配置
   ↓
3. 查找关键字位置（字符级时间戳）
   ↓
4. 生成删除计划（合并重叠片段）
   ↓
5. FFmpeg 剪辑并合成
   ↓
6. 输出处理后的音频
```

## 关键字配置文件

配置文件位于: `~/.claude/skills/audiocut-keyword/config/keywords.json`

```json
{
  "keywords": [
    "广告",
    "赞助",
    "推广",
    "关注",
    "订阅",
    "点赞",
    "转发",
    "分享",
    "评论区",
    "链接在简介",
    "微信公众号",
    "小程序"
  ],
  "buffer_before": 0.5,
  "buffer_after": 0.5,
  "description": "关键字配置文件"
}
```

### 配置说明

- `keywords`: 关键字列表，支持中文和英文
- `buffer_before`: 删除前缓冲时间（秒），避免删除不完整
- `buffer_after`: 删除后缓冲时间（秒），避免删除不完整

## 技术实现

### 1. 音频转录

使用 FunASR Paraformer 模型进行 30s 分段转录：

- **模型**: `paraformer-zh` (中文语音识别)
- **分段策略**: 30s 一段，避免长音频时间戳漂移
- **时间戳精度**: 字符级（毫秒级）
- **输出格式**: JSON（包含每个字符的 start/end 时间戳）

### 2. 关键字识别

- 在转录文本中使用正则表达式查找关键字
- 根据字符位置获取对应的时间戳
- 记录上下文信息，便于审查

### 3. 删除计划生成

- 为每个关键字添加前后缓冲时间
- 合并重叠的时间段，避免重复删除
- 生成最终的删除片段列表

### 4. 音频剪辑

使用 FFmpeg filter_complex 进行无损剪辑：

The rest: https://github.com/wlzh/skills/blob/HEAD/audiocut-keyword/SKILL.md
