Communitygithub.com

sticker-explainer-video(贴纸科普讲解视频)

把中文口播稿和配音自动制作成「调查板」风格的横屏讲解视频(1080p,5–20分钟):蓝灰底板上的人物贴纸、照片贴纸、卡片和线条图标,镜头沿橙色虚线线索平移,配合单行字幕、章节进度条和自动混音。

sticker-explainer-video(贴纸科普讲解视频) とは?

这个 AI Agent Skill 是一个专门用于从口播稿和配音生成「贴纸科普 / 调查板」风格长视频的工具。它基于 motion-showreel 框架,能自动完成从项目搭建、多段配音拼接、Whisper 转写与对齐、节奏剪辑(插入章节停顿、变速)、字幕拆分(≤14 字/行,保护专有名词)、场景编写(关键帧确认后写全片)到音效合成与最终渲染的全流程。适用于 B 站、抖音等平台的新闻解读、调查类讲解内容,即使未明确提到「贴纸」也应当激活。Skill 强调查事实准确性(联网核实、标注未证实信息、只使用公有领域/CC 授权素材)和版权合规,并能自动检测磁盘空间、管理中间文件。输出的视频包含章节思维导图、底部进度条、橙色虚线线索平移转场,以及经过响度优化(人声 −15 LUFS、音乐 −26 LUFS)的自动混音。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/qic034-collab/sticker-explainer-video/tree/HEAD

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

贴纸科普讲解视频(Sticker Explainer)

把口播稿和配音做成一支「调查板」式的讲解视频。画面骨架:一块很大的深蓝灰底板,每个场景是板上的一个区域(panel),镜头沿一条橙色虚线线索从一个区域滑到下一个;人物是带白边的抠图贴纸,地点和物件是照片贴纸,信息是纸片卡片和带图标的标签;每到新章节,画面停一下,弹出思维导图点亮下一条线索。

本 skill 建立在 motion-showreel(ConardLi/garden-skills)之上:它提供 render(t) 页面约定、逐帧渲染、音效合成和成片检查。先确认它已安装(npx skills add ConardLi/garden-skills,或复制到 ~/.claude/skills/motion-showreel)。本 skill 只加风格、流程和中文长片工具,不复制它的代码。

完整示例:examples/huang-resignation/(13 分 43 秒的成片,见仓库 Release)。每一步的命令见 references/workflow.md;画面函数见 references/engine-api.md;视觉规则见 references/style.md。

开工前问清(一次问完,最多 4 个问题)

  1. 配音:用户自己用 ElevenLabs 生成(推荐;稿子里的 [serious] [short pause] 是 v3 的标签),还是先做无声版。多段配音要问清怎么拼(例如「开头用短的,后面按字幕接长的」)。
  2. 画幅:默认 16:9、1920×1080。
  3. 人物:默认只用公有领域或 CC 授权的照片抠图(美国政府官员的官方照属于公有领域);没有授权照片的人只用名牌卡片。
  4. 字幕:默认中文、单行、每行 ≤ 14 字。

用户说「有任何不确定的向我提问」时,把真正会改变结果的分歧问出来;能从录音、代码或常识里定下来的不要问。

流程

以录音为准,不以稿子为准。 录音常和贴来的稿子不一样(漏句、改词、换顺序)。字幕和画面跟录音走,并在 brief 里列出差异告诉用户。章节等位置如果按稿子找不到对应句子,选录音里最接近的位置,说明调整了哪里。

  1. 建项目:export MOTION_SHOWREEL=$(realpath <motion-showreel 目录>),然后 sh scripts/new_project.sh <dir>,把配音放进 audio/src/,填 video.config.json。所有命令都写项目的绝对路径。
  2. 拼配音(多段时):先用 transcribe.py <dir> --take <file> 看每段的句子和时间,在句间停顿里选下刀点,写进 voice.splice,再 splice.py。
  3. 转写和对齐:transcribe.py,然后 align.py。whisper.cpp 整段转写的时间戳几分钟后会漂移,所以脚本按停顿切成约 40 秒的小段重转一遍拿准确时间。whisper 偶尔会输出繁体字,脚本用 opencc 统一转成简体。读一遍 timeline/segments.json,把听错的人名、他/她/它等加进 fixes,重跑。
  4. 剪节奏:voedit.py。章节停顿(第一章前做总览时 7.5 秒,其余 4 秒)和整段变速(如开头 1.1×)都在这里做。它只插静音、只变速,从不剪掉或调换语句。输出 vomap.json,后面的时间都经过它换算,所以改节奏不会让画面错位。
  5. 字幕和时间轴:timeline.py 生成 timeline.js。字幕一屏一行、≤ 14 字(拉丁字母算 0.55 字),只在词与词之间换屏,人名、机构、金额、书名号标题都放进 subtitles.protect,不会被拆开。
  6. 关键帧:先做 3 张关键帧 给用户确认风格,再写全片。
  7. 写场景:在 episode.js 里写 PANELS,元素出现时间都写成 V(句子号, 偏移)。每写完一批场景,出一张联系表(render.mjs --still … --sheet)自查遮挡。
  8. 声音:events.mjs 读出页面登记的音效时间;用 motion-showreel 的 audio.mjs build score.mjs --raw --out audio/sfx.wav 合成音效;mix.py 混音。
  9. 渲染:build.sh 依次做确定性检查、逐帧渲染和成片检查(13 分钟 1080p 约 10 分钟)。渲染完抽帧检查思维导图、字幕和照片有没有遮挡。

用户反复提过的要求(默认就这样做)

  • 转场要丝滑:所有场景都在一块板上,镜头沿线索平移,主角贴纸作为 actors 跟着镜头滑进下一个场景,不切掉重来。
  • 章节导图:章节分界时口播停顿,底板压暗,连线画出,节点变橙并出现扫描框,已完成的打勾。第一次出现时做「总览」:分支逐个弹出,再点亮第一章,之后才出现下一个场景的内容。
  • 进度条放在字幕下方,章节之间的每一段写章节名。
  • 多用图标和图片:标签和卡片带线条图标;地点和机构用照片贴纸。示意性的照片标「示意」。
  • 元素不能挡字幕和左上角的章节标题:屏幕下方约 200 px 留给字幕,左上角(约 x < 700、y < 120)留给标题,大字也不要放进这两块区域。
  • 音效不能盖过口播和配乐。思维导图用温和的马林巴「板块」音(总览时每个分支一个五声音阶音),点亮时保留一声点击。不要用 riser、glitch 这类「科技感」音效。
  • 配乐:最后一首选有自然结尾的曲子,让结尾正好落在片尾,开头在某个章节停顿处淡入。章节停顿时音乐压低 6 dB。
  • 音量:只用线性增益。默认人声 −15 LUFS、音乐 −26 LUFS(人声比音乐高约 11 dB),音效比人声低约 12 dB,峰值限制 −1.5 dBFS,这样整片能通过 −14 ± 1.5 的响度检查。用户说「口播下调 / bgm 上升」时按 dB 改 levels 和 music.lufs;如果整体因此低于检查标准,告诉用户这是预期的(示例片就是按作者要求用的 −19.3 / −30)。

事实、版权与安全

  • 新闻类内容的事件常常发生在模型的知识截止之后:要联网核实,把来源写进片尾;找不到原文的数字列进 brief 的「待核对清单」交给用户。
  • 未证实的指控在画面上标明(「仍在调查」「某部门否认」「示意」);关联不等于证据。不在任何人的照片旁贴「间谍」之类的标签。
  • 照片只用公有领域或 CC 授权的,许可信息记在 assets/credits.json 并写进片尾。Pixabay 等配乐可以用在成片里,但不能把曲子文件本身再分发。
  • 磁盘:渲染、音频中间文件和成片合计约需 1 GB。先查空间;不够时只删可重建的中间文件。删用户的文件或下载的模型前先问。

文件

sticker-explainer-video/
├── SKILL.md
├── scripts/
│   ├── new_project.sh       建项目(motion-showreel scaffold + 本模板)
│   ├── cfg.py               公共函数(读 video.config.json、ffmpeg、响度、停顿检测)
│   ├── splice.py            多段配音拼接
│   ├── transcribe.py        whisper.cpp 两遍转写 → 句子文本 + 逐字时间 + 停顿
│   ├── align.py             对齐 → timeline/sentences.json
│   ├── voedit.py            章节停顿、变速 → audio/vo-edit.wav + vomap.json
│   ├── timeline.py          时间映射 + 字幕切分 → timeline.js
│   ├── events.mjs           从页面读出音效时间
│   ├── mix.py               人声 + 配乐 + 音效 → audio/final.wav
│   └── cutout.swift         Apple Vision 人像抠图(macOS)
├── assets/template/         index.html、engine.js、episode.js(示例场景)、score.mjs、video.config.json、fonts
├── references/
│   ├── workflow.md          每一步的命令和检查点
│   ├── engine-api.md        engine.js 的绘图函数与 start() 参数
│   └── style.md             配色、版式、转场和声音规则
└── examples/huang-resignation/   完整示例(代码、配置、时间轴、照片、配音)

関連スキル