Skills

Audiocut Keyword

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

Install

npx skills add wlzh/skills --skill audiocut-keyword -g -a claude-code -y
Repository
wlzh/skills694
Category
Engineering
Updated
8d ago
License
MIT
Context cost
Lightabout 1,278 tokens
Runs scripts
Yes, review before use

What it does

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

音频关键字过滤工具

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

功能特性

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

使用场景

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

快速开始

基本用法

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

指定输出文件

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

使用自定义关键字配置

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

调整缓冲时间

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

{
  "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 进行无损剪辑:

Read the whole SKILL.md on GitHub

More in Engineering