Communitygithub.com

notasimrazzaq/AI-Video-Editor

为动态图形视频添加音效:包括 UI 套件中的点击音效(pop、tick、counter、chime、snap、star、switch、fill、success)以及纸张/定格动画套件中的音效(paper-flip、paper-drop、paper-rustle、tape-rip、marker-tick、marker-scribble、stamp、paper-slide、thump)。提示 13。适用于用户要求添加音效、SFX、点击声、滴答声、叮当声、清脆声音、翻页声、纸张声音或“让声音更好听”的场景。

AI-Video-Editor 是什么?

该 AI 视频编辑技能是一个专门用于为动态图形视频添加高质量音效的工具集。它提供了一套预生成的音效文件,分为 UI 套件和纸张/定格动画套件,所有音效均由代码生成,无许可问题。用户可以通过在 `sfx.json` 文件中精确指定时间、音效名称和音量来为视频中的特定视觉事件(如卡片出现、列表勾选、翻页等)同步添加音效。该技能支持两种工作流程:一是将音效直接嵌入 HTML 文件,适合快速预览;二是通过 FFmpeg 将音效混合到已渲染的视频文件中,无需重新渲染整个视频,效率极高。此外,它还提供了“清脆 UI/玻璃”音效包,用于响应“更清脆”的用户需求。该技能主要适用于 Hyperframes 项目,支持通过 `node tools/sfx.mjs` 命令行工具进行操作,并包含严格的规则(如同步到视觉事件发生的帧、默认无滑入/滑出音效、音量约为语音的 20 dB 以下)以及针对特定模板(如 Paper Cut)的预定义音效偏移量。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/notasimrazzaq/AI-Video-Editor/tree/HEAD/.agents/skills/mg-sound

在你喜欢的 AI 中提问

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

文档

音效

所有音效文件位于 kit/sfx/(会被复制到每个项目的 sfx/ 文件夹中)。这些音效由代码生成,无许可问题。 纸张音效集通过 tools/make-paper-sfx.ps1 生成(基于 FFmpeg 合成技术;重新运行该脚本可调整某个音效)。

文件使用场景
tick.wav每个列表项 / 勾选出现时(干净样式)
counter.wav数字滚动时(计数开始的瞬间)
chime.wav最后一张卡片 / 结束卡片
pop.wav药丸形标签、徽章、贴纸、日历芯片弹出时
snap.wav截图或卡片到位时
star.wav · switch.wav · fill.wav · success.wav高亮显示 · 从之前到之后切换 · 进度条填充 · 达成目标
paper-flip.wav翻页:切换出入场景,场景变换
paper-drop.wav纸质卡片落下时
tape-rip.wav胶带固定卡片时(每张卡片一个,而不是每条胶带一个)
paper-rustle.wav赎金风格字母 / 许多芯片爆发时
marker-tick.wav马克笔在列表行上打勾时
marker-scribble.wav连续多个叉号或涂鸦(约 0.85 秒)
stamp.wav橡皮图章、"VS" 拍击、计数器卡片拍击
paper-slide.wav卡片从侧面滑入时
thump.wav重音强调关键行时

清脆 UI / 玻璃音效集(tools/make-crisp-sfx.ps1 [-Project projects\<n>])—— 当用户要求“更清脆”时使用

文件使用场景
crisp-click卡片 / 面板落下时
crisp-pop药丸形标签、芯片、徽章、播放按钮
crisp-tick列表行、小型揭示效果、进度条开始
glass-tap液态玻璃瓷砖 / 应用 Logo 出现时
type-burst打字效果(0.6 秒)
count-roll计数增加(1 秒)
whoosh切换出入场景,大幅缩放
hit重音强调
alert · switch-on · send · sparkle · ding限制/错误 · 切换/开关 · 发送按钮 · 星星/高亮 · 成功 / 结束卡片

规则

  • 套件默认(创作者风格):滑入/滑出无音效,无“嗖嗖”声,音量比人声低约 20 dB,音效数量少。
  • 纸张剪裁风格(用户要求清脆的纸张音效):每次落下、胶带、勾选、印章、翻页都有音效;标题或退出时仍无音效。
  • 音效必须与视觉事件发生的画面帧同步,而非动画开始的帧。

纸张剪裁模板偏移量(来自 kit/templates/paper-cut-vertical.html)

组件音效
headline(t0)paper-drop t0+0.35 · tape-rip t0+0.42
ransom(t0)paper-rustle t0
checklist(items)paper-drop items[0].t−0.10 · tape-rip items[0].t−0.05 · marker-tick 每个 item.t+0.08
counter(t0)stamp t0+0.17 (音量 0.25) · counter t0+0.2 · tape-rip t0+0.25
versus(t0, right.t)paper-slide t0 · paper-slide right.t · stamp right.t+0.52
calendar(t0, crossAt, glowAt, stamp)paper-drop t0+0.35 · tape-rip t0+0.42 · marker-scribble crossAt · pop glowAt+0/0.12/0.24 · stamp stamp.t
reframe(t0, t1)paper-flip t0 · paper-flip t1
punch(t0)thump t0
最后一张卡片chime 在卡片落下约 0.5 秒后

操作步骤(一个列表 → HTML + 快速混音)

  1. 编写 projects/<name>/sfx.json:[[时间, "音效名称", 音量?], ...](音量可选;默认值在 tools/sfx.mjs 中)。
  2. node tools/sfx.mjs projects/<name> → 将 <audio> 标签(唯一 ID、实际时长、不重叠的音轨)写入 <!-- sfx:start --> / <!-- sfx:end --> 之间的 index.html 中,这样未来每次渲染都会包含它们。
  3. 已渲染完成?不要再重新渲染(渲染很慢): node tools/sfx.mjs projects/<name> --mix renders/with-cards.mp4 renders/with-sfx.mp4 使用 FFmpeg 将音效混入现有音频,并复制视频流(对于 3 分钟的短片大约需要 10 秒)。限制器可防止削波。
  4. npx hyperframes lint(期望 0 错误)。检查电平:ffmpeg -ss <时间> -t 1 -i out.mp4 -af volumedetect -f null NUL。
  5. 将结果复制到 exports/ 目录。通过编辑 sfx.json 并重新运行步骤 3(几秒钟)进行调整。

切勿触碰 <video> 的音频。VS Code 的内置播放器无法播放 AAC;请在 VLC 或默认播放器中预览完成的视频。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

相关技能