05 · 时序内容:时间轴倒推法
来源:橘鸦《我的 AI 实践》「视频版制作」段
原则(一句话)
做语音 + 画面 + 字幕同步的内容时,时间轴从合成音频反推,不预设。
为什么
橘鸦的做法:
AI 根据正文生成口播稿,口播稿本身按新闻事件分段,在合成语音时,会额外再按标点符号拆分句子,每个短句作为一个请求,通过计算每一个合成音频的时长,就可以确定下来整个视频的时间轴。
为什么这么干?因为 TTS 合成音频的实际时长永远和预估不一致(语速、停顿、语气)。预设时间轴 = 画面和字幕永远对不上口播。
倒推法:先把每句真实时长拿到,加起来就是总时长。所有视觉元素挂在真实时间轴上,而不是猜出来的时间轴上。
这套思路优雅在 —— 合成即定义。音频合成的过程就是时间轴定义的过程,没二次劳动。
何时调用
- 视频脚本 + 配音同步
- 字幕文件生成
- 任何”语音流驱动视觉流”的场景
- 数字人 / 虚拟主播
- 播客 + 字幕
- 视障辅助音轨 + 文字层
- 互动文游的 NPC 对话
怎么做(流程)
口播稿(带标点的完整文本) ↓按标点拆短句(句号 / 问号 / 感叹 / 段落) ↓每句独立 TTS 请求 → 收集每个合成音频的真实时长 ↓累加 = 总时长(这就是视频的总长度,不预设) ↓根据真实时长映射: ├─ 字幕时间戳(SRT) ├─ 画面切换点 ├─ 转场音 └─ 进度条 / 高潮区 ↓最终合成关键决策:
| 决策点 | 错误做法 | 正确做法 |
|---|---|---|
| 标点切分 | 按字数切(每 30 字一段) | 按句号 / 问号 / 段落切 |
| 单段时长 | 估算(“约 3 秒”) | 用合成实际时长 |
| 总时长 | 预设视频长度 | 累加真值 |
| 字幕锚点 | 一句字幕对应固定时间 | 字幕起点 = 音频起点 |
反例 / 边界
- 配音稿反复大幅修改时,时间轴要全量重算(缓存失效)
- 多人配音 + 不同音色,长度差异可能让节奏散——> 需要在 prompt 层统一风格
- 实时互动场景(直播)——> 没有”稿件”,需要降级为节拍卡尺
关联原则
- 02-Workflow编排:TTS 任务拆短句是「窄 AI + 宽人工」里窄 AI 的典型
- 04-跨平台分发:视频载体是分发第三档的入口;时间轴法让多平台视频分发变得可控