Hello小伙伴们好啊!过去两个多月我一直投入在AI视频创作产品Videa上。用AI来完成创作,也就是AIGC,是过去两年的一个重大课题。随着模型能力的越来越强,我们现在已经比较容易的制作出基于AI的视频。但是,即使在今天,我们想要用AI来生成类似电视剧或电影一般的视频,还是很困难的。其中一个非常特殊的点,就是AI做的视频,特别是真人视频,口型对不上。
我在B站上看到了AI歌手出道的视频,效果非常不错,基于硅基的heygem开源数字人,确实可以做到口型和动作的一致,但是即使如此,AI歌手的MV也经过后期的处理,也就是传统MV的后期处理模式,AI直出还是比较麻烦,况且,我所指的场景,面向更常见的电视剧人物对话剧情。这也是为什么现在的AI视频给人“还不够味儿”的感觉。
现在我看到有很多AI视频,主要分为两种:1)动画类,由于动画不需要口型一致,只要嘴巴动和语音一致,就可以被接受,所以现在很多人做AI动画;2)旁白类,人物、场景都是真人真景,但是不能人物说话,一说话就露馅了。
一种理想的解决方案是,生成视频的模型支持在具体的时间点,人物可以根据创作者的输入说对应的话,也就是说,视频模型,还要把TTS的活也干了。这其实对视频模型厂商的要求非常高,因为TTS其实也是一个复杂的训练体系。就目前而言,即使强如google的voe3,也无法直接生成创作者可控的语音对白,它生成的视频中人物可以自由随机的说话,但是由创作者精确控制的,还做不到,不知道将来能否做到,还是有点期待。
另一种解决方案是,通过对口型视频生成模型,输入一段视频和一段语言音频,生成最终的口型一致的视频。这种方案成本低,控制精确,扩展性也很强。今天,我们就将详细的阐述这套解决方案。
1 生成剧情视频序列
一部有故事的短片,我们会用“分镜”方法论来获得镜头序列,并得到分镜视频。这些视频连起来,就是我们想要的剧情过程。
一组镜头的视频形成一个序列。按照时间顺序串联的镜头序列,经过合成,就得到了这组镜头的视频。
2 合成语音,插入字幕
同时,我们使用TTS技术,对每一个镜头中的人物赋予对话、声音。
以及每一段语音,如何是TTS生成的,则可以直接将其文本作为字幕。
需要注意的是,语音常常是不连续的,因为整个视频并不是时时刻刻都在说话。
3 口型同步
口型同步有3种方案:1)人物图片+语音;2)含有人物的视频+语音;3)数字人技术。基于人物图片+语音来同步口型,好处是简单方便,但是缺点很明显,大部分该类对口型的效果都是最多人的头动,无法做到整个人全身合理的动作,同时,图片内人物的背景也不会动,因此,可以说是一眼假。数字人技术不仅可以做到口型一致,而且人物说话时的表情、手势动作都能非常自然,然而在我们生成短视频时存在与短视频故事背景融合的问题,目前还无法在我们AI生成视频领域使用。
已生成好的视频+语音来实现口型同步,在目前来说是最稳妥的方案。
我们只需要把上图中红框内的视频和音频整合在一起,利用对口型的模型进行新视频的生成,就可以做到目前来说效果最好。
4 细节问题与解决
虽然我们只需要上传视频+音频,就可以让对口型的大模型生成新视频,听上去非常简单,然而在实际视频制作的场景下,还是有很多细节问题需要解决。
a.多人物
在同一视频中,可能存在多个人物,此时AI就无法区分到底是应该让哪一个人物来同步口型。目前我所知的,AI会挑选视频中出现的第一个人作为口型同步的人物。如果想控制口型同步的人物,我们可以向AI提交一张模板人物的画像,这样,AI就会通过画像去匹配视频画面中的人物,并且让该人物开口说话,而不会处理其他人物。
那么,如果我想让视频中的多个人物都开口说话呢?
此时,我们就要巧妙的引用人物参考图的功能。我们需要进行多次操作,第一次,上传原始视频,人物A的画像,人物A说话的语音,然后合成,之后,我们会得到人物A口型同步的视频,我们标记为视频A。接下来,我们进行第二次操作,这次,我们上车视频A,人物B的画像,人物B说话的语音,然后合成,之后,我们会得到人物B口型同步的视频,标记为视频B。此刻,由于视频A中,人物A的口型已经同步好了,所以,视频B中,人物AB的口型都对上了。如果还有更多人,则按此方法继续迭代。
b.音画不同步
当我们想让视频中的人物口型同步时,我们还需要注意人物开始说话的时间点。例如有一段视频,人物在一开始是不说话的,直到后面才开始说话,如下:
在这个视频中,人物一开始是表情变化,然后才开始说话。而我们使用TTS生成的语音,会直接上来就开始说话。此时就会音画不同步。
由于我们已经生成好了视频序列,我们已经在时间上,让视频获得了连续性,因此,我们最好不要去改变视频的时长,否则牵一发而动全身。那么,我们就需要对TTS生成的音频进行剪辑,在适当的时间点才开始说话,这样才能达到我们视频中先做表情后说话的效果。
而在Videa中,你完全不需要自己去做这件事,Videa会自己根据视频、音频在时间轴上的时间差,自动补上空音。
c.跨视频语音
有些特殊镜头,我们要使用多个视频才能把整个镜头表达完整。而如果在这个镜头内有人说话,且不同视频看到人物的角度不同。而由于该人物说话是连续的,所以我们只会生成一段TTS合成语音。此时,就会遇到跨视频语音的情况,也就是一段音频对应多段视频。
例如上面这个镜头,就是由两段视频组成的,但是音频却是连通的(有两段音频是因为两个人在同时说话)。
要解决这个问题有好几个方法,一种是把两段视频合成为一段视频后再来处理,另一种是把语音拆分为多段后处理。两种方法都可以,没有优劣。
结语
本文从原理层面,阐述了在AI视频制作中,如何实现人物口型同步的能力,以及在过程中可能存在的细节问题。不同的AI视频制作工具,它们各自在不同的功能点上各有不同,并没有绝对的优劣。本文的方案,不仅灵活通用,而且成本也比较低。如果你在实践过程中遇到问题,可以在下方留言,一起讨论。
2025-07-03 35