结论:AI 真人短剧的台词要想口型自然,问题主要出在切分,而非模型。正确做法是“一句一音频、单条时长 2~6 秒、切点只落在语义完整的气口上、句尾用闭口音或轻辅音收、句间留 150~300ms 静音”。单条超过 8 秒,或切在词组中间,口型必然偏移。
为什么口型不自然,大多是因为切分没做好?
主流口型驱动(用音频驱动人像嘴部动作、生成对口型视频)按视频帧对齐,25fps 下每帧 40ms。音频越长,音素时间戳累积误差越大,到句尾就会明显偏移;人眼对音画不同步的察觉阈值约为 80~100ms,也就是 2~3 帧。一条 10 秒长音频只要偏 2 帧,观众看到的就是“声音已经结束、嘴还在动”。切在词组中间,模型缺少完整音素上下文,韵母预测出错,于是出现“半张嘴”“嘴型猜错”的僵硬感。句尾拖长音,比如“我们走吧——”的“啊”尾音,模型会一直维持张口状态收不回来,形成俗称的“僵尸嘴”。
一条台词切多长最合适?
单条音频控制在 2~6 秒、8~22 个汉字,3~5 秒是最稳的区间。超过 8 秒必须再切。
中文短剧正常语速是每秒 4.5~5.5 字,一条 5 秒台词约 22~27 字,刚好是一个完整情绪句的容量。实操上建议按“一个气口一条音频”来切:演员换气的地方,就是切分点。同时把同一角色的多条音频语速差控制在 ±10% 以内,否则模型学到的嘴部运动节奏会忽快忽慢,跨镜头剪辑时非常明显;观众一看就知道是分段生成的。
切分点应该落在哪里?
只切在句号、问号、感叹号后面,逗号不切。
逗号处用 120~180ms 的停顿处理,让模型“闭嘴一瞬再开口”,比切成两条更自然。另外三条硬规则要遵守:第一,不在“的、了、着、吗、呢”这类助词前切,切了就是半截词组,模型必错;第二,不在动宾之间切,比如“拿起/手机”这种切法会让两个音频都丢失动作语义;第三,句尾优先收在闭口音或轻辅音,前鼻音 -n、后鼻音 -ng、-i 以及 s、sh、x 收尾都很好,尽量避开 b、p、m 和长韵母 a、o、e 拖尾;b、p、m 是闭唇音,切在这里,模型下一帧就要张嘴,容易出现抖动。
如果台词本身收在拖长音上,比如“真的假的——”,处理办法是在音频末尾补 100ms 绝对静音,强制模型进入闭嘴态。
切完之后还要做哪几步处理?
切分只是第一步,音频还要统一规格,否则不同条目的嘴型幅度会对不上。
- 统一导出 48kHz、16bit、单声道 WAV;采样率不统一会导致时间戳换算出现毫秒级偏差。
- 每条音频首尾各加 10ms,做淡入淡出,防止爆音被模型识别成一次张嘴动作。
- 句间静音用绝对静音,长度 150~300ms;不要保留底噪,超过 300ms 模型会判定为“这句话结束了”,重新起口型。
- 响度统一归一到 -16 LUFS 左右;音量忽大忽小会让口型开合幅度跟着跳。
- 数字、英文缩写、多音字单独拎出来重录或改写,比如把“2024 年”念成“二零二四年”,避免 TTS 与对齐工具断错音素。
- 生成后按 25fps 逐帧抽查,误差超过 2 帧(80ms)就重新切。
怎么快速自检切分是否合格?
用下面 5 条做快速判断,每条都能直接对着素材核对:
- 每条音频时长是否在 2~6 秒之间?
- 切点是否都是标点处的气口,而不是词组中间?
- 句尾是否落在闭口音或轻辅音上?
- 音频前后是否各留了 50~300ms 静音?
- 同一角色跨条目的语速差是否在 ±10% 以内?
这 5 条全过,口型自然度基本能提升一个档次,剩下的才是模型调参的问题。反过来,切分不合格时,再怎么调驱动强度、换模型,也只能修补表面问题。GJ 站长论坛里有不少做 AI 短剧和数字人的同行,把切分规范整理成模板固定在团队里,比每次临时救火划算得多。