SuperAPI AI 工具集

video-add-captions

设计与创作

查看项目

更新于 10-16 02:24

技能介绍

用途

video-add-captions 用于为 Open Recut 节目添加逐词时间对齐的字幕。它把规范转录通过 timeline.json 映射到节目时间线,生成字幕计划、SRT 文件、样式审核页面和透明字幕轨道。该技能不负责转录、剪辑、重定时、调色、重新构图或选择交付音频策略。

依赖与前置条件

/video-understand 是前置技能,必须先运行,以便字幕使用经过验证的词级转录和规范时间线。开始前需确认其已安装;若未安装,应警告用户缺少前置条件并在处理媒体前停止。

需要 ffmpeg/ffprobe 在 PATH 中、带 Pillow 的 Python,以及 Node.js >= 22(用于 .mjs 脚本和按需获取的 npx hyperframes)。hyperframes render/snapshot 驱动无头 Chrome,它管理自己的 chrome-headless-shell,当缓存不可用时回退到系统 Chrome(可通过设置 CHROME 覆盖)。处理媒体前需检查这些条件。

主要能力

  • 字幕分组、样式选择、审核和透明字幕轨道生成。
  • 使用 work/timeline.json 作为唯一的源到节目映射;所有范围为半开区间 [start_s, end_s)。
  • 丢弃的源范围中的词会消失,保留的词移动到节目时间,提示始终在剪辑边界处断开。
  • 维护的预设样式:clean、minimal、social-bold、pill、boxed、stroked、shorts。画廊组合 ID 添加维护主题,例如 pill-yellow、stroked-blue、shorts-green。Karaoke 是选项而非独立预设。
  • 默认委托选择:clean,Karaoke 关闭。
  • 支持 Standard(默认)和 Expressive 两种呈现模式。Expressive 仅支持 bottom-standard 和 center-emphasis。
  • Expressive 提示可定义一个连续的短语级 hero_line,使用规范 level: hero,以 1.5 倍渲染金色短语。维护的词角色 keyword、number、contrast 各使用 1.22 倍;normal 保持 1.0 倍。
  • 支持人工和智能体两种决策模式,共享同一哈希绑定状态机。
  • 当存在活跃且审核批准的 B-roll 操作包含已批准或已验证的说话人内嵌合成时,字幕可派生 caption-spatial-context.json。

使用方式

从仓库根目录运行。设置项目路径后,在构建字幕计划前,除非当前请求已明确选择呈现模式,否则需询问用户选择呈现模式(Standard 或 Expressive)。用户明确委托选择时,选择 Standard。

构建节目时间提示和审核 SRT:

python "$SkillRoot\scripts\build_captions.py" `
  "$Work\understand\transcript.json" `
  $Plan `
  "$Review\captions.srt" `
  --timeline "$Work\timeline.json" `
  --source-transcript "understand/transcript.json" `
  --max-chars 42 --max-lines 2 --max-dur 6 --gap 0.6

用户选择 Expressive 后,使用相同命令并添加 --presentation-mode expressive。

Expressive 需在预览生成前一次性规划整个节目:读取转录、理解产物、规范时间线、生成的字幕提示和真实源帧证据;填充所有 presentation.layout_beats,标注特殊词 semantic_role 值,必要时添加至多一个连续 hero_line,为每个 beat/hero line 写一条理由,并写整体 presentation.planner.rationale。仅当每个提示恰好覆盖一次后,将 presentation.planning_status 设为 complete。

验证完成的计划:

python "$SkillRoot\scripts\build_captions.py" --validate-plan $Plan

启动决策模式。人工模式下,将维护的离线画廊发布到项目审核目录:

$StartOutput = node "$SkillRoot\scripts\caption_interaction.mjs" start `
  --state $Receipt --source $SourceVideo --captions $Plan `
  --review-dir $Review --no-open true @SpatialArgs
$StartOutput | Write-Host

start 打印权威的 captions-style-review-<UUID>.html 项目页面路径和固定问题。Agent 必须取 Caption style review: 后打印的 UUID 路径,赋给 $StyleReviewPage,并用宿主 OS 的原生命令打开。用户从页面复制结构化摘要后,原样传递给 select --response。

智能体模式下,创建单独的 Agent 模式收据,使用 --decision-mode agent 和 --delegation-note,检查绑定的画廊后使用 agent-select 并记录真实理由。

适用场景

适用于需要为 Open Recut 节目添加逐词时间对齐字幕的视频制作流程,尤其是需要样式审核、透明字幕轨道或 Expressive 语义强调的场景。

限制

  • 必须先运行 /video-understand。
  • 需要 ffmpeg/ffprobe、带 Pillow 的 Python、Node.js >= 22。
  • 不负责转录、剪辑、重定时、调色、重新构图或选择交付音频策略。
  • Expressive 仅支持 bottom-standard 和 center-emphasis。
  • 人工命令在智能体模式下失败,智能体命令在人工模式下失败。
  • 源、计划、时间线、样式、覆盖、项目元数据、审核页面或证据的更改会使批准失效;空间上下文、上游 B-roll 修订或绑定合成更改同样如此。
  • 具体收费、价格、平台支持范围等事实暂未提供。