前言
VividTalk是一项由南京大学、阿里巴巴、字节跳动和南开大学共同开发的创新项目。该项目通过结合单张人物静态照片和一段语音录音,能够制作出一个看起来仿佛实际说话的人物视频。项目的特点包括自然的面部表情和头部动作,口型能够同步,同时支持多种语言和不同风格,如真实风格、卡通风格等。
VividTalk是一个通用的一次性音频驱动的说话头部生成框架,旨在通过音频作为输入信号,驱动任意面部图像的生成。该技术具有广泛的应用场景,包括虚拟化身、视觉配音和视频会议等。为了最大程度地增加生成视频的逼真度,VividTalk考虑了非刚性面部表情组件和刚性头部组件的建模。
技术挑战与方法创新:
-
面部表情运动建模: VividTalk采用了3D面部可塑模型(3DMM)作为中间表示,相较于稀疏的面部标志点,3DMM能够更详细地建模各种表情。然而,面部表情的混合形状分布差异导致了音频和面部运动之间的一对多映射问题。VividTalk通过使用混合形状和3D顶点,以及基于多分支变压器的网络,充分利用长期音频上下文,解决了这一挑战。
-
刚性头部运动建模: 对于刚性头部运动,由于与音频关系较弱,建模更加困难。VividTalk将这个问题视为离散和有限空间中的代码查询任务,并建立了可学习的头部姿势代码本,具有重构和映射机制。这创新性地解决了从音频中生成合理头部姿势的挑战。
VividTalk框架的两阶段流程:
-
音频到网格生成(第一阶段):
- 使用混合形状和3D顶点作为中间表示,提供全局粗略运动和细粒度嘴唇运动的描述。
- 基于多分支变压器的网络,充分利用长期音频上下文,建模音频与中间表示的关系。
-
网格到视频生成(第二阶段):
- 建立可学习的头部姿势代码本,用于合理地从音频中学习刚性头部运动。
- 将学习到的两个运动应用于参考身份,得到驱动网格。
- 渲染内部面部和外部面部的投影纹理,全面建模运动。
- 使用双分支运动VAE建模密集运动,逐帧合成最终的