/video-voiceover
把带时间戳的 narration.json 合成为中文解说音频。使用 MiMo TTS(mimo-v2.5-tts)逐段生成语音, 按时间窗动态适配语速并处理响度;输入输出时间线上的旁白,产出 tts_segments 与 tts_meta.json。 旧版直接剪辑路径也可显式传入 narration_mapped.json。触发词:配音、语音合成、TTS、解说配音、 voiceover、text to speech、旁白配音。
$ npx -y skills add worldwonderer/video-recap-skills --skill video-voiceover --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/video-voiceover
Context preview
The summary Claude sees to decide when to auto-load this skill.
把带时间戳的 narration.json 合成为中文解说音频。使用 MiMo TTS(mimo-v2.5-tts)逐段生成语音, 按时间窗动态适配语速并处理响度;输入输出时间线上的旁白,产出 tts_segments 与 tts_meta.json。 旧版直接剪辑路径也可显式传入 narration_mapped.json。触发词:配音、语音合成、TTS、解说配音、 voiceover、text to speech、旁白配音。
SKILL.md
video-voiceover.SKILL.mdname: video-voiceover
user-invocable: false
description: >
把带时间戳的 narration.json 合成为中文解说音频。使用 MiMo TTS(mimo-v2.5-tts)逐段生成语音,
按时间窗动态适配语速并处理响度;输入输出时间线上的旁白,产出 tts_segments 与 tts_meta.json。
旧版直接剪辑路径也可显式传入 narration_mapped.json。触发词:配音、语音合成、TTS、解说配音、
voiceover、text to speech、旁白配音。
1. 定位
本技能读取带时间戳的旁白稿,为每一段生成独立音频,并把语音适配到对应时间窗,随后记录下游合成所需的放置元数据。 当前唯一引擎是 MiMo TTS(`mimo-v2.5-tts`)。
2. 环境要求
export MIMO_API_KEY=*** # 也可使用仅供 TTS 的 MIMO_TTS_API_KEY
下面的 `scripts/...` 均相对于本技能目录。若执行器从仓库根目录启动,请给脚本路径加上本技能的绝对目录。 脚本不从其他技能目录读取文件;外部输入仅限命令显式传入的稿件、音频、参数与 `work_dir` 产物。
3. 输入契约
默认输入为 `work_dir/narration.json`。每段必须包含 `start`、`end` 与 `narration`,可选字段包括 `pause_after_ms` 和 `overlaps_speech`。时间统一表示音频最终放置的**输出时间线秒数**。
编排式 cut 流程直接使用输出时间的 `narration.json`。只有旧版直接剪辑路径需要显式传入 `narration_mapped.json`。
4. 运行命令
python3 scripts/voiceover.py --work-dir <work_dir> --narration <narration.json> \
[--mimo-voice 冰糖 | --voice-ref <reference-audio>]
单独运行且省略 `--narration` 时,默认读取 `work_dir/narration.json`。旧版路径如需映射后的稿件,必须显式传入:
python3 scripts/voiceover.py --work-dir <work_dir> \
--narration <work_dir/narration_mapped.json>
5. 输出契约
- `tts_segments/*.wav`:每段旁白对应一个音频文件。
- `tts_meta.json`:包含 `segments`、`engine` 与 `narration`。每段记录 `audio_path`、时间、
`pause_after_ms` 和放置字段。
- 干净运行写入 `partial: false` 与 `failures: []`。
- 使用 `--allow-partial-tts` 跳过失败段时,写入 `partial: true` 和
`failures: [{index,start,end,text,error}]`,让缺失语音保持可见。
6. 运行规则
- 重跑只复用内容与 TTS 设置均匹配的分段音频;修改旁白或合成参数后,只重生成受影响的 WAV。
- `--voice-ref` 仅用于 full/cut 解说克隆,切换到 `mimo-v2.5-tts-voiceclone`。仅在确需新合成时惰性规范化一次;
- dub voiceclone 原始 WAV 也会用模型、提示、台词和参考音频指纹缓存;匹配重跑不再重复请求或计费,`dub_manifest.json` 逐行记录 `tts_cache=hit|miss`;
参考音频内容或预处理指纹变化会使旧缓存失效。仅在获得授权后使用,参考音频会发送到 MiMo。
- `TTS_WORKERS`、`TTS_TIMEOUT`、`TTS_RETRIES`、`ALLOW_PARTIAL_TTS` 用于调整并发、超时、重试与部分成功策略。
- dub 模式有独立的确定性门禁:`dub_lint.json` 会在语音克隆前阻止空行、重叠或越界译文;
`dub_review.json` 用于记录忠实度、语气、时长和平台适配复核。可通过 `dub.py --stage lint|review` 或 `dub.py --print-schema` 单独调用。
7. 能力边界
- 不撰写或修改旁白文本。
- 不混流、不压低原声、不渲染字幕。
- 不分析视频,也不选择时间点;只为输入稿件中的既定分段配音。
Read more
name: video-voiceover user-invocable: false description: > 把带时间戳的 narration.json 合成为中文解说音频。使用 MiMo TTS(mimo-v2.5-tts)逐段生成语音, 按时间窗动态适配语速并处理响度;输入输出时间线上的旁白,产出 tts_segments 与 tts_meta.json。 旧版直接剪辑路径也可显式传入 narration_mapped.json。触发词:配音、语音合成、TTS、解说配音、 voiceover、text to speech、旁白配音。
1. 定位
本技能读取带时间戳的旁白稿,为每一段生成独立音频,并把语音适配到对应时间窗,随后记录下游合成所需的放置元数据。 当前唯一引擎是 MiMo TTS(`mimo-v2.5-tts`)。
2. 环境要求
export MIMO_API_KEY=*** # 也可使用仅供 TTS 的 MIMO_TTS_API_KEY
下面的 `scripts/...` 均相对于本技能目录。若执行器从仓库根目录启动,请给脚本路径加上本技能的绝对目录。 脚本不从其他技能目录读取文件;外部输入仅限命令显式传入的稿件、音频、参数与 `work_dir` 产物。
3. 输入契约
默认输入为 `work_dir/narration.json`。每段必须包含 `start`、`end` 与 `narration`,可选字段包括 `pause_after_ms` 和 `overlaps_speech`。时间统一表示音频最终放置的**输出时间线秒数**。
编排式 cut 流程直接使用输出时间的 `narration.json`。只有旧版直接剪辑路径需要显式传入 `narration_mapped.json`。
4. 运行命令
python3 scripts/voiceover.py --work-dir <work_dir> --narration <narration.json> \ [--mimo-voice 冰糖 | --voice-ref <reference-audio>]
单独运行且省略 `--narration` 时,默认读取 `work_dir/narration.json`。旧版路径如需映射后的稿件,必须显式传入:
python3 scripts/voiceover.py --work-dir <work_dir> \ --narration <work_dir/narration_mapped.json>
5. 输出契约
- `tts_segments/*.wav`:每段旁白对应一个音频文件。
- `tts_meta.json`:包含 `segments`、`engine` 与 `narration`。每段记录 `audio_path`、时间、
`pause_after_ms` 和放置字段。
- 干净运行写入 `partial: false` 与 `failures: []`。
- 使用 `--allow-partial-tts` 跳过失败段时,写入 `partial: true` 和
`failures: [{index,start,end,text,error}]`,让缺失语音保持可见。
6. 运行规则
- 重跑只复用内容与 TTS 设置均匹配的分段音频;修改旁白或合成参数后,只重生成受影响的 WAV。
- `--voice-ref` 仅用于 full/cut 解说克隆,切换到 `mimo-v2.5-tts-voiceclone`。仅在确需新合成时惰性规范化一次;
- dub voiceclone 原始 WAV 也会用模型、提示、台词和参考音频指纹缓存;匹配重跑不再重复请求或计费,`dub_manifest.json` 逐行记录 `tts_cache=hit|miss`;
参考音频内容或预处理指纹变化会使旧缓存失效。仅在获得授权后使用,参考音频会发送到 MiMo。
- `TTS_WORKERS`、`TTS_TIMEOUT`、`TTS_RETRIES`、`ALLOW_PARTIAL_TTS` 用于调整并发、超时、重试与部分成功策略。
- dub 模式有独立的确定性门禁:`dub_lint.json` 会在语音克隆前阻止空行、重叠或越界译文;
`dub_review.json` 用于记录忠实度、语气、时长和平台适配复核。可通过 `dub.py --stage lint|review` 或 `dub.py --print-schema` 单独调用。
7. 能力边界
- 不撰写或修改旁白文本。
- 不混流、不压低原声、不渲染字幕。
- 不分析视频,也不选择时间点;只为输入稿件中的既定分段配音。
在 Claude Code、Codex CLI、OpenCode 或 OpenClaw 里,用一句自然语言把视频变成中文解说成片。 本地只需要 Python、ffmpeg 和一个小米 MiMo API Key;不用 GPU,不用下载模型,macOS / Linux / Windows 均可运行。
Repo: worldwonderer/video-recap-skills
Other skills on video-recap-skills.
- /video-assemble
合成视频解说最终成片:把旁白音频铺到源视频上,按旁白窗口压低原声,生成 SRT / ASS 字幕并可烧录, 最后做响度标准化。作为最终合成阶段使用。输入源视频、tts_meta.json 与旁白位置; 输出 recap 成片和字幕。触发词:视频合成、混音、字幕、压字幕、assemble video、mux、ducking、subtitles、成片。
Open skill - /video-cut
把长视频按 Agent 选择的原片区间剪成短片。作为两阶段创作流程中的剪辑环节,读取 clip_plan.json 与源视频, 输出 edited_source.mp4;随后 Agent 按输出时间线写 narration.json。单独调用且未传 --no-narration-map 时, 仍支持旧版单阶段路径,把原片时间的 narration.json 映射为 narration_mapped.json。 触发词:视频剪辑、剪辑式解说、video cut、clip plan、拼剪。
Open skill - /video-recap
从输入视频端到端生成中文解说成片。用户提供 .mp4 / .mov / .mkv / .webm,并要求添加旁白、 配音、总结、短剧/电视剧/电影/纪录片/科普解说时使用。负责编排 video-* 技能链:视频理解 → Agent 制定故事与视听方案 → 剪辑 → 配音 → 合成。触发词:视频解说、视频旁白、生成解说、 视频 recap、video recap、voiceover、narration、auto-dub、recap。
Open skill - /video-script
对已完成分析的视频进行导演与剪辑策划,再写带时间戳的中文解说并校验。work_dir 已包含 agent_narration_brief.md 与 vlm_analysis.json 时使用。适用于故事方向、片段选择、画面/原声/旁白分工、 解说写作与复核。输入 work_dir 中的理解索引;输出 recap_story_plan.json、visual_audio_board.json、 cut 模式需要的 clip_plan.json,以及通过校验的 narration.json。触发词:解说词、写解说、视频旁白、 narration
Open skill - /video-understanding
把视频分析为结构化理解索引:场景检测、ASR 转写、逐场景 VLM 观察、静音窗口、融合时间线和写作 brief。 用于理解、索引或总结视频,也作为后续创作前的分析阶段。输入视频文件;输出 scenes.json、 asr_result.json、vlm_analysis.json、silence_periods.json、timeline_fusion.json、agent_narration_brief.md。 触发词:视频理解、视频分析、视频索引、video understanding、analyze video、看懂视频。
Open skill

