Communitygithub.com

sfx-library

834个音效文件(63个分类,约1GB)的视频音效库——支持中英文按意图搜索、按时长筛选、并通过ffmpeg混入视频。在用户需要“找音效”、“添加声音效果”、“转场SFX”、“叮/嗖/砰/通知声”、“给视频加音效”或制作视频需要声音效果时激活。

sfx-library 是什么?

sfx-library是一个大型音效库(834个文件,63个分类,约1GB),专为视频制作中的音效设计而优化。用户可以通过单一脚本`sfx`按意图搜索音效,支持中英文关键词(包括带调或不带调的越南语,以及英语),并可按时长(`--min-dur`/`--max-dur`)和分组(如`transition`、`impact`、`ui`等10个意图组)进行筛选。该技能不仅提供音效查找,还集成了`sfx mix`命令,可直接将选中的音效混入视频(基于ffmpeg),并保留原始音频(如配音),使用`amix`和`alimiter`确保音量平衡。数据通过Google Drive(优先)或备用URL下载,支持断点续传。该库适用于Claude Code、Cursor等AI代理工具,旨在为视频编辑、内容创作和AI生成视频提供高效、专业的音效集成方案。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tinhthanh/sfx-library-skill/tree/HEAD

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

音效库

834 个文件 / 63 个分类 / 约 1 GB。 唯一入口:脚本 sfx 位于与此 SKILL.md 文件相同的目录。脚本会自动确定自身路径,因此可以从任何位置通过完整路径调用——以下示例均简写为 sfx。

步骤 0 — 检查数据是否已存在

仓库仅包含代码和目录;音频文件位于 data/(未提交)。

sfx status

如果提示“未找到数据”,则下载数据——一次性操作,约 1 GB,下载前请告知用户:

sfx setup

setup 会按正确的优先级顺序自动执行,请勿打乱:

  1. 优先使用 Google Drive — 下载一个 .zip 文件(约 880 MB,约 1 分钟),校验 sha256 后解压。
  2. 目录中已有的 URL 作为备用 — 仅在 Drive 失败时使用(404、文件未公开共享、下载配额超限、sha256 不匹配)。此时 setup 会自动切换到从 catalog/source/*.json 中的 URL 逐个下载文件(按顺序,约 18 分钟),并校验 sha256 与 catalog/meta.json。

只需要 python3(≥ 3.8),无需额外安装。如果中途中断,重新运行 sfx setup — 它会继续下载,不会从头开始。备用步骤较慢:建议后台运行并告知用户预计等待时间。

仅当用户明确要求时,才直接调用 sfx setup --source(跳过 Drive)。

如果 setup 提示“两个源都失败”,则运行 sfx doctor 并告知用户——不要自行寻找替代音频源。

搜索 SFX — 只需记住这一个命令

sfx find "<关键词>"

输入带调、不带调的越南语或英语,结果相同 —— 搜索前会去除音调,且每个分类都预制了双语关键词。

sfx find "转场"              # 按意图
sfx find "通知" --max-dur 2
sfx find whoosh --group transition
sfx find --group impact --max-dur 1.5
sfx find riser --min-dur 3 --max-dur 5

结果会显示时长(秒)—— 这是匹配 SFX 到时间轴时最重要的信息。

选项使用场景
--max-dur N / --min-dur N根据时间轴上的时段限制时长
--group <组名>浏览整个意图组(见下方分组表)
--category <slug>已知确切的分类
--ext wav仅获取 wav(或 mp3)格式
--paths仅输出文件路径,每行一个——可直接导入其他命令
--json机器可读的输出,包含 duration、sha256、score
--abs绝对路径——当从其他目录调用 sfx 时使用
-n N / --all结果数量(默认为 20)

多词查询默认使用 AND 逻辑;如果没有文件匹配所有词,则自动放宽为 OR 并在 stderr 中明确说明。

不确定用什么 → sfx list 可打印所有分类及其适用场景和关键词。

10 个意图分组

先选择分组,再筛选——比猜测分类名称更快。

分组用途典型分类
transition连接两个场景fast-whoosh swoosh-swish whip zoom reverse
impact强化观点、展示数据hit boom impacts slam bass
ui文字出现、按钮点击、键盘打字pop click typing ui-mini tick shine
alert通知、提醒notification ding bell alarm
tension高潮前的铺垫riser builder braam tension trailer
ambience场景背景音ambience environment
foley真实物体声paper doors footsteps liquid draw camera-shutter
comedy幽默效果comedy-cartoon memes
scifi科技、奇幻效果technology glitch laser magic data
horror恐怖效果horror jumpscare

选择前先试听

仅凭 slug 名称不足以判断音频的实际听感。 whoosh-fast-05 和 whoosh-fast-06 的音色可能截然不同。

afplay "$(sfx find whoosh --paths --abs -n 1)"     # macOS;Linux:ffplay -nodisp -autoexit

如果无法播放(如在无头服务器上运行),则提供 2–3 个选项及其时长供用户选择,不要自行决定并断言合适。

将 SFX 混入视频

sfx mix video.mp4 -o 带音效.mp4 \
    2.4:fast-whoosh/whoosh-fast-05.wav \
    5.0:ding/[email protected]

每个 cue 的格式为 <秒数>:<路径>[@音量]。路径相对于 data/sfx/ 或直接写文件名(不会冲突时)。默认音量为 0.6。需要 ffmpeg。

  • 视频中已有的音频会被保留并混音,不会被覆盖——在添加配音之后运行 sfx mix 是安全的。
  • 使用 amix=normalize=0 + alimiter:添加 cue 不会降低原始音量,且多个源叠加时不会失真。
  • --dry-run 可输出 ffmpeg 命令,方便集成到其他脚本中。

从 HTML 生成的视频(使用 Playwright/Puppeteer/Remotion 录屏):页面中的 <audio> 标签或 new Audio().play() 仅在浏览器中播放时有效——它们不会被录制到 MP4 文件中。应通过 sfx mix 在 ffmpeg 阶段混入 SFX,时间点从动画时间轴中获取。

决定视频听感是否专业的三个要点:

  1. SFX 必须比时间轴上的时段短——从一开始就用 --max-dur 筛选,而不是之后裁剪。
  2. 将 SFX 放在动作发生的具体帧上,而不是场景开头——whoosh 必须在物体开始移动的瞬间响起。
  3. 不要让 SFX 覆盖对白。 如果有配音,请将音量降至 @0.3 或使用 ui-mini 分类。

三个容易出错的地方

  1. 不要提交 data/ — 约 1 GB,已加入 gitignore,通过 sfx setup 重新获取。
  2. 不要修改 data/sfx/ 中的文件。 那些是原始文件;裁剪或标准化音量应输出到其他位置。
  3. 首次获取数据时不要直接调用 sfx download。 它会逐个下载 834 个文件,速度慢,且只是备用方案。始终使用 sfx setup,以便优先尝试 Google Drive。

当怀疑存在问题时,运行以下命令检查:sfx doctor(工具 + 数据源检查)、sfx verify --hash(重新计算每个文件的 sha256)。

库维护(添加分类、重新打包、更改 Drive 链接):请参阅 README.md。

相关技能