用 AI 做视频,最容易卡住的地方通常不在某个工具会不会用,而在几个工具之间怎样交接。一份旁白改了,旧音频还在使用。字幕已经更新,画面时间轴却停在上一版。数字人生成完了,才发现视频长度跟主体画面对不上。
解决这些问题,需要先定一条稳定的制作顺序。Codex 负责安排任务和检查结果,IndexTTS2 生成旁白,HeyGen 根据旁白制作数字人,HyperFrames 负责主体画面、字幕和最终渲染。
整条流程跑通以后,你只需要提交选题、资料和审核过的文稿,Codex 就能接着完成配音、数字人、画面、合成与归档。
先把四个工具放到正确的位置TOOLS · 工具分工
Codex 是主控。它读取项目文件,编写和修改代码,调用本地命令,整理素材,也负责在每一步结束后检查输出。整个过程中,你主要和 Codex 沟通。
IndexTTS2 负责旁白。它可以根据一段参考音频克隆声线,在本地生成 WAV 文件。相同参考音频和相近参数可以让不同视频保持较为一致的声音。
HeyGen 负责数字人。它接收已经确认的旁白音频,让 Digital Twin 按照音频说话,最后返回一段带有嘴型和人物动作的视频。
HyperFrames 负责主体画面。它使用 HTML、CSS 和 JavaScript 描述文字、图片与动画,再按照时间轴渲染成视频。Codex 擅长修改网页代码,所以字幕位置、页面样式和动画节奏都比较容易调整。
四个工具沿着同一份旁白往下工作。旁白一旦变化,后面的配音、数字人、字幕和画面时间都要跟着重做。
建一个能够长期使用的项目目录FILES · 目录与版本
每条视频单独建一个目录,所有文件使用同一个视频编号。
video-001/brief.md
script/voice-v1.md
references/speaker.wav
audio/voice-v1.wav
transcript/voice-v1.json
transcript/voice-v1.srt
assets/
heygen/avatar-v1.mp4
hyperframes/
preview/
output/
report.md
brief.md 保存平台、时长、画面比例和本期选题。script 放旁白文稿,references 保存 IndexTTS2 使用的声线参考。生成的音频、字幕、数字人和成片分别进入固定目录。
版本号必须贯穿整条流程。文稿改成第二版,后续文件也全部升到第二版。Codex 在执行前先检查版本,发现混用就停止。
让 Codex 处理选题和旁白SCRIPT · 文稿确认
以知识类竖屏视频为例,可以定为九十秒、1080 × 1920、中文旁白,数字人放在左下角,字幕位于底部安全区。主体画面用于展示关键词、截图和步骤说明。
把本期资料放进项目,让 Codex 写一份适合朗读的旁白。文稿长度要服从视频时长。中文旁白可以先按自己的语速估算,随后用 IndexTTS2 生成测试音频,再根据实际长度增删。
人工审核旁白时,先处理事实和发音。英文缩写、数字与多音字要写成 TTS 能稳定读对的形式。长句需要拆开,标点也会影响停顿。文稿确认后保存版本,后续工具只读取这一份文件。
✦ 保留人工确认后面的工具能够把文稿做成完整视频,却无法替你判断选题是否值得讲,观点有没有依据,开头能不能留下观众。
用 IndexTTS2 生成固定声线VOICE · 本地配音
准备一段干净的参考音频。录音里尽量只有一个人说话,环境噪声和背景音乐越少越好。语气要接近日常视频中的状态,因为参考音频会影响后续生成效果。
把参考文件保存为references/speaker.wav,再记录文件哈希。参考音频一旦被替换,后续视频的声线可能发生变化,文件名相同也不容易察觉。
让 Codex 调用 IndexTTS2,输入最终旁白和参考音频,生成audio/voice-v1.wav。第一遍重点听读音、停顿和情绪。语速需要调整时,可以重新设置生成参数,也可以让 Codex 使用 FFmpeg 的atempo调整速度。atempo=1.12表示把语速提高到 1.12 倍,同时尽量保持原有音高。
最终音频确认以后,不再单独修改它。让 Codex 从这份 WAV 转写字幕,生成带时间戳的 JSON 或 SRT。字幕时间必须来自最终音频,因为 IndexTTS2 的停顿不会完全按照文字长度平均分布。
把音频交给 HeyGen 生成数字人AVATAR · 数字人
第一次使用 HeyGen,需要先创建 Digital Twin。准备训练素材时,按照 HeyGen 当前页面的要求录制,保持清楚的面部、稳定的光线和干净的声音。训练完成后,记录数字人的 ID,方便 Codex 后续重复调用。
让 Codex 提交voice-v1.wav,选择对应的 Digital Twin,创建数字人任务。画面背景可以使用纯色,或者选择方便后续抠像的形式。人物在画面中的大小和姿态要稳定,方便放进 HyperFrames 的固定区域。
HeyGen 返回视频后,保存为heygen/avatar-v1.mp4。先检查嘴型、人物动作和视频长度。开头或结尾多出的空白可以由 Codex 裁掉。嘴型明显错位时,应先检查上传音频和 HeyGen 输出,暂时不要进入合成阶段。
✦ 画面安排数字人无需从头到尾占据大面积画面。教程和知识视频可以让人物保持在角落,重点内容出现时缩小或隐藏。
让 Codex 创建 HyperFrames 工程VISUAL · 动态画面
Codex 现在已经拿到三份关键文件。审核后的文稿、最终旁白和带时间戳的字幕。
每个段落只承担一个明确任务。介绍问题时显示标题,讲到案例时切换截图,出现数字或步骤时使用信息卡片。画面变化要跟随旁白,不要为了热闹频繁切换。
HyperFrames 使用 HTML 和 CSS 组织画面,时间信息写在data-start、data-duration和data-track-index等属性中。需要动画时,可以加入 GSAP。Codex 根据 transcript 填入每段的开始时间和持续时间,字幕也从同一份时间数据生成。
第一版只检查结构。确认标题能否读清、素材是否变形、字幕有没有超出安全区,再调整字体、配色和动画。
HyperFrames 的优势会在返工时体现出来。字幕整体太低,只需改一处 CSS。某个镜头停留太短,只改相应时间属性。需要换图或改标题,也不用重新建立传统剪辑工程。
合成数字人、画面和声音COMPOSE · 视频合成
HyperFrames 生成主体视频后,Codex 开始合成。把数字人视频裁成预定尺寸,放到主体画面的固定位置。数字人带背景时,先抠像或使用蒙版,再叠加到画面上。
最终成片只保留一条主旁白音轨。可以使用原始的voice-v1.wav,删除数字人视频里重复的声音。背景音乐随后加入,响度要低于旁白,开头和结尾可以做短暂淡入淡出。
合成完成后先输出低清预览。预览文件进入 preview,正式成片暂时不要生成。渲染速度越快,修改起来越轻松。
让 Codex 做一轮能够落地的质检QUALITY · 成片检
Codex 可以先读取音视频信息,检查分辨率、帧率、时长和音轨数量。随后按固定间隔抽帧,查看字幕位置、数字人遮挡和图片比例。
字幕不同步时,回到 transcript 调整时间。画面切换太早,就修改 HyperFrames 对应段落。数字人嘴型正常但人物挡住内容,只需要移动或缩小数字人图层,不必重新调用 HeyGen。
检查开头是否出现黑帧,结尾有没有被截断,背景音乐是否盖住人声。
这些问题确认完,再让 Codex 渲染正式 MP4,并把检查结果写进report.md。正式成片、文稿、音频、字幕和工程文件要一起归档。下一次发现错字或平台需要不同尺寸时,可以回到对应步骤修改,不必重新生成全部内容。
把流程写成 Codex 能反复执行的任务AUTOMATION · 固定任务
第一条视频跑通后,把下面这类任务写进项目说明。
读取 brief.md 和最新版本旁白。
检查旁白是否已经人工确认。
调用 IndexTTS2 生成 WAV,并检查时长与响度。
从最终 WAV 生成带时间戳字幕。
把 WAV 提交给 HeyGen,下载数字人视频。
根据字幕时间创建 HyperFrames 主体画面。
合成主体画面、数字人、字幕和背景音乐。
输出低清预览并执行抽帧检查。
等待人工确认后渲染正式 MP4。
归档全部文件并生成检查报告。
任务中还要写明停止条件。旁白没有确认就不生成音频,IndexTTS2 出现读音错误就不提交 HeyGen,数字人嘴型异常就不进入合成。Codex 遇到这些情况时列出问题,等人工处理后再继续。
一开始保留两次人工确认就够了。第一次审旁白,第二次看最终预览。其他步骤交给 Codex 执行。等流程连续跑过几条视频,再把经常出现的修改写回项目规范,下一条视频会少返工很多。