从电影里的虚拟角色,到新闻演播室里的虚拟主播,数字人正在从科幻走进日常生活。很多人看过虚拟主播播报新闻,或者在网上见过会说话、会做表情的虚拟形象。这些数字人是怎么做出来的?背后用了哪些技术?这篇文章把数字人的“出生”和“动起来”这两件事拆开来讲,尽量不用复杂术语,说清楚来龙去脉。

一、数字人是怎么“出生”的——建模技术
要做一个数字人,第一步是把它造出来,也就是“建模”。建模就是给数字人一个身体、一张脸,让它有个基本的样子。
传统做法:一笔一笔画出来
早些年,做数字人靠美术师手动操作。用专业软件,一个一个点去调整,就像捏泥人一样。这种方法能做得很精细,但非常费时间。一个高精度的数字人,可能需要几十人干几个月。而且对操作者的要求很高,不是谁都能干的。所以传统建模的优点是质量有保证,缺点是慢、贵、门槛高。
后来出现了参数化建模,就是把人的身体和脸简化成一些可调节的参数。比如身高、肩宽、眼距等,调整这些数字就能快速生成不同体型的人。这种方法快了很多,但细节不够,比如脸上的皱纹、微小的表情变化很难做出来。
新做法:让电脑自己学
最近几年,深度学习技术成熟了,建模方式发生了变化。电脑不再需要人一点一点去画,而是通过看大量的人脸照片和三维扫描数据,自己学会人脸长什么样。给电脑几万张不同角度、不同表情的人脸,它就能总结出规律。以后再给一张新照片,电脑能自动推测出这张脸在三维空间里的样子。
这种方法里,比较有代表性的是生成对抗网络和变分自编码器。简单说,就是让两个程序互相较劲:一个负责生成人脸,一个负责判断真假。生成的那个越做越像,判断的那个越来越严格,最后生成的人脸可以达到照片级别。还有三维重建技术,比如神经辐射场,能从多张二维照片里还原出三维的人脸,连皮肤的光泽、眼睛的反光都能做出来。
新方法大大加快了建模速度。原来几个月的活,现在可能几个小时甚至几分钟就能完成。而且对操作者的要求降低了,普通设备配合现成的算法也能做出像样的数字人。不过新方法也有问题,比如有时候生成的脸会有奇怪的变形,或者训练不稳定,出来的效果时好时坏。
二、数字人怎么“动起来”——驱动技术
有了数字人的外形,下一步是让它动起来。动起来主要分两种方式:一种是用视频去驱动,另一种是用声音去驱动。
视频驱动:真人做什么,数字人就做什么
视频驱动就是让数字人模仿真人的表情和动作。在真人脸上捕捉关键点,比如眉毛、眼睛、嘴角的位置,然后把这些点的运动映射到数字人脸上。真人挑眉,数字人也挑眉;真人张嘴,数字人也张嘴。
早期的方法比较简单,靠人工规则和图像处理技术,比如把真人的表情模板套到数字人身上。但这种方法适应性差,换个角度、换个光照就不灵了。
现在用深度学习,效果好了很多。深度学习方法又分两种。一种是显式建模,就是先标出人脸上的关键点,再把这些点的运动传递给数字人。这种方法比较直观,也好调试。另一种是隐式建模,不标关键点,而是让电脑自己学习从真人脸到数字人脸的整体映射关系。隐式建模更灵活,能处理一些复杂的情况,比如半侧脸、遮挡等,但缺点是电脑学了什么、怎么做的,人不太容易理解。
音频驱动:给一段声音,数字人自己对口型
音频驱动更简单,只需要一段录音,数字人就能自己张嘴闭嘴,做出和声音匹配的口型。这种方法不需要真人做表情,特别适合做虚拟主播、虚拟客服这类应用。
核心问题是怎么让声音和口型对上。早期用统计方法,分析声音的频率、音量和口型之间的对应关系。比如发“啊”音的时候嘴应该张大,发“呜”音的时候嘴应该收圆。这种方法能保证基本同步,但表情比较僵硬,缺乏自然感。
现在用深度生成模型,效果自然多了。给电脑大量带声音和对应人脸的视频,让它自己学习声音和口型之间的复杂关系。学完之后,给一段新声音,电脑不仅能做出大致对口型,还能带出一些微表情,比如说话时眉毛会轻微挑动、脸颊会有变化。最新的扩散模型在这方面表现不错,生成的口型和表情更细腻。
两种驱动方式的比较
视频驱动的优点是准确,真人的细微表情都能捕捉到,适合需要高度还原真人表演的场景。缺点是需要有真人在镜头前表演,还要处理光照、角度等问题。音频驱动的优点是方便,只要有声音就能驱动,不需要真人配合,适合大批量生产内容。缺点是口型和表情的自然度还比不上视频驱动。

现在的趋势是把两者结合起来。用音频驱动做基础的口型和大致表情,再用视频驱动做细节的调整和补充。这样既方便又自然。
三、数据从哪里来——数据集和评估方法
不管是建模还是驱动,都离不开数据。电脑要学习,就得给它看大量的例子。所以数据集是数字人技术的基础。
视频驱动的数据集主要是各种人说话的视频,有高清的也有普通的,有正面的也有侧面的。这类数据能帮电脑学习面部运动轨迹。缺点是采集成本高,需要好的设备和环境。
音频驱动的数据集主要是语音和对应的人脸视频。这类数据让电脑学会声音和口型的对应关系。缺点是大多数数据集里的情感比较单一,就是正常说话,缺乏大笑、哭泣、愤怒等强烈表情的数据。
多模态数据集同时包含视频、音频、三维扫描等多种数据,是最全面的。但缺点是不同种类的数据要精确对齐比较麻烦,而且数据量很大,处理起来费劲。
有了数据集,还得有办法评估做出来的数字人好不好。常用的指标有几个:结构相似性指数看数字人的脸和真实人脸的结构像不像;峰值信噪比看图像的清晰度;学习感知图像块相似度模拟人眼对图像差异的判断;地标距离看关键点位置准不准;音频口型同步距离看声音和口型是否对齐。这些指标各有侧重,通常要结合起来看。
四、现在能用来做什么——应用场景
数字人技术已经用在了不少地方。
影视行业用得最早。一些科幻电影里的大量虚拟角色,就是用面部捕捉技术做的。演员脸上贴很多标记点,摄像机记录标记点的运动,再映射到虚拟角色上。这样虚拟角色就能做出和演员一样的表情。这项技术大大降低了动画制作的成本和时间。
媒体行业也在用。一些新闻机构推出了虚拟主播,可以24小时不间断播报新闻。给一段文字稿,虚拟主播就能自动读出声音,同时做出对应的口型和表情。遇到突发新闻,不需要等人来演播室,虚拟主播随时可以上岗。
教育行业开始尝试虚拟教师。虚拟教师可以回答学生问题,根据学生的理解程度调整讲解方式。学生问得多,它就多讲几遍;学生学得快,它就加快进度。这种个性化辅导是真人老师很难做到的。
客服行业也是潜在的应用方向。虚拟客服可以面对用户,有表情有口型,比纯文字或纯语音的客服更亲切。而且一个虚拟客服可以同时服务很多人,成本低、效率高。
五、现在还缺什么——存在的问题
虽然技术进步很快,但数字人还有很多不完美的地方。
真实感还不够。静态的照片已经很逼真了,但一动起来就容易穿帮。尤其是眼睛、头发、手这些部位,很容易看出不自然。眼睛的注视方向、眨眼的方式、头发的飘动,这些细节还很难做真实。
实时渲染有压力。高精度的数字人需要很强的计算能力,在普通手机或网页上跑起来会卡。要想流畅运行,就得降低精度,这就又牺牲了真实感。如何在保证真实感的同时做到实时运行,是个难题。
情绪表达不充分。现在的数字人能做出基本的口型和表情,但复杂的情绪很难表达。比如“似笑非笑”、“强颜欢笑”这类微妙的表情,数字人基本做不出来。这跟数据也有关系,因为现有数据里缺乏丰富的情绪样本。
评估体系不完善。现在的评估指标偏重技术层面,比如图像清晰度、关键点位置准不准,但对“看起来自然不自然”这种主观感受的评估还不够。有时候各项指标都很好,但人看着就是觉得别扭。
六、以后往哪走——未来方向
未来几年,数字人技术大概会往这几个方向发展。
更精细的建模。不只是人脸的大致形状,还要包括皮肤的纹理、毛孔、细小的皱纹、眼睛的反光等等。同时要能表达更丰富的情感,不只是喜怒哀乐,还要有尴尬、害羞、讽刺等复杂情绪。
更轻量化的运行。让数字人能在普通手机、网页、甚至手表上流畅运行,不需要昂贵的专用设备。这需要在算法上做优化,或者借助新的硬件技术。
更强的泛化能力。现在训练好的数字人模型,换个场景、换个光照条件、换个角度,效果就可能下降。未来的模型要能适应各种环境,不需要针对每个新场景重新训练。
更深入行业应用。数字人不会只停留在影视和媒体,会进入医疗、教育、零售、社交等更多领域。每个行业的需求不同,数字人需要针对性地调整。比如医疗领域的数字人可能需要表现痛苦和安慰的表情,而零售领域的数字人可能需要热情和耐心的表情。
当下,数字人技术还在快速变化中。建模从手动到自动,驱动从规则到学习,数据从单一到多模态,应用从少数行业到各行各业。这条路还很长,但方向已经比较清楚了。