你有没有看过那种数字人视频?一个人端坐在镜头前,开口说话,声音清晰,内容也许还不错,但不知为什么,你盯着看了三秒钟就觉得浑身不对劲。仔细再看,问题就出在那张嘴上:嘴巴在动,可动作跟发出的声音完全没关系。该闭上嘴的时候它还张着,发出“呜”的声音时,嘴型却做成了“衣”的形状。一句话已经说完了,嘴唇还在匀速一开一合,像一条上了发条的玩具鱼。

这种视频看得越多,一种死循环就越明显。你已经知道哪里不对,但不知道该怎么修。想换个工具试试,发现同类产品出来的效果差不多,嘴还是歪的。想靠后期剪辑遮过去,比如切个画中画,或用字幕条挡住嘴部,结果越遮越假,观众反而更会盯着那个区域看。
这就是我做AI口播内容卡得最久的一道关。不是文案不行,不是画面不行,是那一张嘴,把整个视频的真实感全出卖了。后来我发现,这个问题没办法靠某一个神奇的工具一次性解决,而是要像排雷一样,一步一步把流程上的坑填平。
为什么口型这么难对准
要想解决问题,得先弄清楚问题到底出在哪里。中文口播里的对嘴问题,比英文要复杂得多,主要有三个原因。
第一个原因是中文本身的声韵母特别多,口型变化极其丰富。我们平常说话,看似嘴皮子轻轻一碰,实际上口腔内部、嘴唇、舌头、下颚都在做精密配合。拿“巴”和“啪”来说,两个字看着口型差不多,都是双唇先闭合再打开,但“巴”是不送气音,嘴唇肌肉相对松弛,“啪”是送气音,闭唇时双唇更紧,打开的瞬间有明显气流冲出。这种肌肉松紧的微妙差异,AI算法很难捕捉。再比如,“鸡”“七”“西”三个音,舌尖位置、舌面拱起的高度和嘴唇的展平程度都不同,发“安”和“昂”时,一个舌尖抵住下齿龈、软腭下降,一个舌根抬高、鼻腔通路打开。这些丰富的变化,意味着驱动数字人口型所需要的控制精度要足够高。可很多AI方案的基础模型是在英文语料上训练出来的,英文的单元音相对规整,双元音虽也有滑动,但整体口型区分的颗粒度比中文粗。直接把英文那一套口型映射逻辑搬到中文上,精度自然就掉了一档。
第二个原因是,AI生成嘴部动作的本质并不是真“懂”你在说什么,而是依靠音频的频谱特征去“猜”。它会把音频转换成梅尔频谱图,然后通过卷积网络一类结构,预测出一系列嘴部关键点的位移参数,再把预测出来的位移套到数字人的脸上。这整个过程是统计学意义上的映射,不是基于语义理解的驱动。遇到短句子、单个词,效果还行,可一旦碰上长句子,一连串密集的音节快速切换,比如“四是四十是十,十四是十四”,声母、韵母疯狂交替,算法就容易跟不上。哪里该闭嘴、哪里该张到最大、哪里是过渡口型,它开始含混,然后就会出现那种“嘴在匀速开合”的机械感。
第三个原因,在于大多数工具的生成流程是后处理模式。也就是说,先有了数字人的面部画面,可能是用真人视频替换了脸部,或者用图形引擎渲染出来的静态面部,然后单独在上面对嘴部区域进行驱动。嘴部动作是贴上去的,而不是和整个面部从同一个源头生成出来的。这就导致嘴巴动的时候,面部的其他地方完全不参与。正常人说话,嘴巴发音的同时,苹果肌会轻微提起,下巴的肌肉会随着重音收紧,咽喉部位会有吞咽和换气的微动,鼻翼也可能随着呼吸轻微翕动。缺失了这些联动,嘴巴就变成一个独立的部件,哪怕口型动作看起来是“对的”,也依然像蜡像在说话。
不在工具里死磕,在流程里解决
明白了这些底层原因之后,我逐渐意识到,想靠某一个“对口型工具”单独把效果拉到一百分,几乎不可能。工具的上限是八十多分,剩下的那十几二十分,得靠流程设计把它补回来。于是我在实际制作中,设置了三道防线。
第一道防线:音频前置处理
这一道工序发生在任何AI工具介入之前。核心思想是做一遍“口型友好化”,把录音调整得更适合算法去跟踪和识别。
具体怎么操作呢?先看语速。很多人录音时,因为情绪上来或者紧张,语速会忽快忽慢,一段话前半段缓缓道来,后半段突然紧凑。这种不稳定的语速会给口型预测带来很大麻烦。我的做法是,在音频软件里把语速统一到一个相对稳定的区间,比如每秒四到五个字左右,让每个音节的时长尽量均匀。
接着是断句和停顿。人说话有自然的停顿,但AI更需要。如果在很长的句子中间不给任何空隙,音节之间边界模糊,算法就很容易在连续预测中产生累积误差。我会有意识地在句子之间留出稳定而清晰的停顿间隙,哪怕只有零点三到零点五秒,也能给口型切换提供一个明确的“复位”机会。

最后是重音处理。句子中那些需要强调的关键词,我会稍微把它们拉长一点点,同时提高音量。这样做,在频谱上会形成一个更容易被算法捕获的显著特征,相当于给算法一个更容易识别的锚点。音频一旦平稳、干净、特征清晰,口型识别就已经稳了一半。
第二道防线:分段生成,不贪整段
刚开始的时候,我也习惯把一整段音频丢进工具里,让它一次性生成全片,觉得这样省事。结果往往是视频开头十几秒还算正常,越到后面嘴就越歪,甚至会出现嘴巴完全对不上、乱动一气的状态。
原因在于,长时间连续驱动,预测误差会逐帧累积,就像沿着一条直线走,每一步歪一毫米,走到一百步就歪到了十厘米外。而且很多模型在长序列中保持时间一致性方面做得并不好。
后来我改变了策略,把整段音频拆成十五到二十秒一段,逐段生成。每一段开始之前,设定一个相同的口型基准帧,通常选择嘴唇自然闭合、面部放松的状态。这样一来,每一段都是从同一个起点出发,误差在短距离内被限制住,不会无限传播。逐段生成之后,在剪辑软件里拼合起来,观感上的一致性反而比重头到尾生成一遍要好得多。特别是那些句子非常密集的段落,分段之后,口型动作中那种仓促追赶的感觉明显减弱,节奏变得从容了。
第三道防线:关键帧手动微调
完全依靠AI生成,总会在一些地方留下破绽。现在有一些工具已经支持对口型的关键帧参数进行手动修正,虽然还不是所有软件都开放这一功能,但只要能干预,就值得去做。我们不需要逐帧去修,那既不现实也没必要。需要盯住的,只是最容易出bug的那几处:嘴唇应该闭合的帧、嘴巴张到最大的帧,还有音节切换最密集的帧。
做法上,可以在时间线上找到这些关键位置,对嘴唇张开高度、宽度之类的参数设下确切的值。比如“巴”声母成阻阶段嘴巴闭合,就强行把张嘴参数设为零,不让它有缝;到了音节核心“a”的位置,把开口度拉到预设的最大值。中间的大部分帧交给AI自动补间,一般只要两头被锁定了,中间平滑过渡的概率就高得多。就像在两棵树之间拉起一根绳子,只要把绳子两头紧紧拴住,中间自然就绷直了,不会乱晃。
还有一个很容易被漏掉的点
就算口型本身已经做得相对准了,很多人还是会觉得数字人不自然,问题出在更根本的地方:面部其他地方完全不参与说话这个动作。
你可以观察一下身边任何一个正在说话的人,不光是嘴唇在动。额头的皮肤会随着语气微微起伏,眉毛会跟着挑一下或皱一下,下巴的肌肉会在说重音时同步收紧,眼睛周围会泛起一点点细微的纹路变化,甚至鼻翼和脖子上的肌肉都在参与。说话是整张脸的事情,而不是只有嘴唇那一小块区域在工作。
但很多AI数字人默认的状态,是一张面部其他地方完全纹丝不动的脸,只有嘴部在孤零零地开合。这种对比一出来,恐怖谷效应立刻拉满,就算你的口型同步率做到百分之百,观感依然很假。
所以我在流程里加了一个前置步骤:在做口型驱动之前,先在画面生成阶段给角色预设一些轻度的“说话前奏”。比如眉头稍稍抬起,有一点点对话感;嘴角微微上提,像正要开口说话的状态;眼神里带上一点点聚焦感,而不是空洞地看着远方。这些变化不需要很大,肉眼几乎看不出来具体的“表情”,但能打破完全僵硬的状态。
这一步通常不是对口型工具本身完成的,而是在人物形象生成或者面部绑定阶段就做进去的。我会利用一些支持微表情调节的工具,设置几个轻微的脸部姿态参数,让脸部在平静状态中带有一丝动态预兆。做完这一步之后,再把对口型的结果叠加上去,嘴唇动起来的时候,旁边的肌肉仿佛也跟着有了呼应。虽然技术上它们并没有真正联动,但视觉上,人的大脑会倾向于认为这张脸是活的。
笨功夫才是真功夫
AI数字人能不能在商业场景里真正站稳脚跟,不是看你特写镜头有多炫,也不是看皮肤渲染得有多逼真。观众可能在第一眼被画质吸引,但只要让他们连续看上半分钟,所有注意力都会转移到那些最基础、最原始的地方:这个人在说话的时候,嘴有没有露馅。
口型就是那个最基础的环节。它不需要做到让人惊叹,只需要做到不让人分心。当观众不再注意到嘴,而是专注于你讲的内容时,这个口型才算是真正做对了。而当它被人忽视,正是说明我们下对了功夫。
做到这一步,靠的并不是某一个全能的神奇工具,而是愿意在流程上一环一环地排查、一点一点地加防线。这种笨功夫,恰恰是做出能用的AI口播内容最可靠的路子。