CN116665695B - 虚拟对象口型驱动方法、相关装置和介质 - Google Patents

虚拟对象口型驱动方法、相关装置和介质 Download PDF

Info

Publication number
CN116665695B
CN116665695B CN202310936907.8A CN202310936907A CN116665695B CN 116665695 B CN116665695 B CN 116665695B CN 202310936907 A CN202310936907 A CN 202310936907A CN 116665695 B CN116665695 B CN 116665695B
Authority
CN
China
Prior art keywords
virtual object
target
time zone
face
voice
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310936907.8A
Other languages
English (en)
Other versions
CN116665695A (zh
Inventor
季孝忠
朱俊伟
罗栋豪
邰颖
汪铖杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202310936907.8A priority Critical patent/CN116665695B/zh
Publication of CN116665695A publication Critical patent/CN116665695A/zh
Application granted granted Critical
Publication of CN116665695B publication Critical patent/CN116665695B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0316Speech enhancement, e.g. noise reduction or echo cancellation by changing the amplitude
    • G10L21/0356Speech enhancement, e.g. noise reduction or echo cancellation by changing the amplitude for synchronising with other signals, e.g. video signals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本公开提供了一种虚拟对象口型驱动方法、相关装置和介质。该虚拟对象口型驱动方法包括:获取虚拟对象的面部标识;获取用于驱动虚拟对象的目标语音,目标语音中每个时区对应于虚拟对象的口型驱动视频中的一帧;从目标语音中提取语音特征,并将每个时区的语音特征与时区的位置信息进行编码得到第一编码串;对第一编码串与面部标识进行变换层处理,得到与时区对应的、虚拟对象的表情系数;基于时区对应的表情系数,在位置信息对应的帧中,对虚拟对象进行口型驱动。本公开实施例提高了口型驱动的准确性和时序稳定性。本公开实施例可应用于机器人与数字人等场景。

Description

虚拟对象口型驱动方法、相关装置和介质
技术领域
本公开涉及人工智能领域,特别是涉及一种虚拟对象口型驱动方法、相关装置和介质。
背景技术
目前,在机器人或数字人领域,已经能够根据希望虚拟对象说出的语音,自动驱动虚拟对象作出相应口型,从而提高虚拟对象说出语音的逼真度。现有技术中,一般是先获得一个二维的面部图片,从面部图片中提取二维面部关键点位置,并将希望虚拟对象说出的语音、和虚拟对象的二维面部关键点位置输入生成模型,由生成模型生成驱动虚拟对象口型的视频。
由于该技术基于二维面部关键点,对于例如嘟嘴等口型的驱动不准确,且孤立地考虑虚拟对象的视频和语音部分,忽略视频中的各帧与语音中的时区之间的联系来训练模型,使得模型的口型驱动不准确,时序稳定性不好。
发明内容
本公开实施例提供了一种虚拟对象口型驱动方法、相关装置和介质,它能够提高口型驱动的准确性和时序稳定性。
根据本公开的一方面,提供了一种虚拟对象口型驱动方法,包括:
获取所述虚拟对象的面部标识;
获取用于驱动所述虚拟对象的目标语音,所述目标语音包括连续的多个时区,每个所述时区对应于所述虚拟对象的口型驱动视频中的一帧;
从所述目标语音中提取语音特征,并将每个时区的所述语音特征与所述时区的位置信息进行编码,得到第一编码串;
对所述第一编码串与所述面部标识进行变换层处理,得到与所述时区对应的、所述虚拟对象的表情系数;
基于所述时区对应的所述表情系数,在所述位置信息对应的所述帧中,对所述虚拟对象进行口型驱动。
根据本公开的一方面,提供了一种虚拟对象口型驱动装置,包括:
第一获取单元,用于获取所述虚拟对象的面部标识;
第二获取单元,用于获取用于驱动所述虚拟对象的目标语音,所述目标语音包括连续的多个时区,每个所述时区对应于所述虚拟对象的口型驱动视频中的一帧;
提取单元,用于从所述目标语音中提取语音特征,并将每个时区的所述语音特征与所述时区的位置信息进行编码,得到第一编码串;
变换层处理单元,用于对所述第一编码串与所述面部标识进行变换层处理,得到与所述时区对应的、所述虚拟对象的表情系数;
口型驱动单元,用于基于所述时区对应的所述表情系数,在所述位置信息对应的所述帧中,对所述虚拟对象进行口型驱动。
可选地,所述变换层处理单元具体用于:
将所述第一编码串与所述面部标识输入串联的第一数目个编码变换层,得到中间特征;
将所述中间特征输入串联的第二数目个解码变换层,得到与所述时区对应的、所述虚拟对象的表情系数。
可选地,所述第一数目或所述第二数目通过以下方式确定:
获取所述目标语音中的时区数目;
获取每个所述时区的所述语音特征数目的平均数;
基于所述时区数目和所述平均数,确定所述第一数目或所述第二数目。
可选地,所述基于所述时区数目和所述平均数,确定所述第一数目或所述第二数目,包括:
基于所述时区数目,确定第一分数;
基于所述平均数,确定第二分数;
基于所述第一分数和所述第二分数,确定总分数;
基于所述总分数,确定所述第一数目或所述第二数目。
可选地,所述第一获取单元具体用于:
获取所述虚拟对象的参考面部图像;
将所述参考面部图像与面部基底图像库中多个面部基底图像进行比较,以确定对多个所述面部基底图像的权重;
将确定的对多个所述面部基底图像的所述权重,作为所述面部标识。
可选地,所述第一获取单元具体用于:
获取所述虚拟对象的参考视频;
从所述参考视频中抽取多个参考帧;
对多个所述参考帧进行裁剪,得到多个参考面部子图像;
对多个所述参考面部子图像求平均,得到所述参考面部图像。
可选地,多个所述参考帧的数目通过以下方式确定:
获取所述参考视频的拍摄清晰度;
获取所述口型驱动的精度;
基于所述拍摄清晰度和所述精度,确定所述参考帧的数目。
可选地,所述提取单元具体用于:
将所述目标语音输入语音识别模型,所述语音识别模型包括串联的多个处理层;
将多个所述处理层中最后一个处理层的输出特征,作为提取的所述语音特征。
可选地,所述虚拟对象口型驱动装置还包括:
训练单元,用于通过以下方式训练所述变换层:
获取视音频样本集,所述视音频样本集包含多个视音频样本,所述视音频样本包括视频部分、和与所述视频部分对应的音频部分;
从所述视频部分中,提取各个帧的样本帧图片,并从所述音频部分中,提取与各个帧对应的各个时区内的样本语音特征;
将所述样本帧图片输入三维可变形面部模型,得到所述帧中所述虚拟对象的目标面部标识、目标表情系数和目标姿势系数;
将各个所述帧的所述目标面部标识、与所述帧对应的所述时区内的所述样本语音特征对应的目标编码串输入所述变换层,得到预测表情系数;
基于所述目标面部标识、所述目标表情系数、所述目标姿势系数和所述预测表情系数,计算损失函数,并以所述损失函数训练所述变换层。
可选地,所述训练单元具体用于:
确定所述目标表情系数和所述预测表情系数的均方误差;
基于所述目标面部标识、所述目标表情系数、所述目标姿势系数,确定目标面部关键点位置信息;
基于所述目标面部标识、所述预测表情系数、所述目标姿势系数,确定预测面部关键点位置信息;
基于所述目标面部关键点位置信息、和所述预测面部关键点位置信息,确定关键点位置预测损失;
基于所述均方误差和所述关键点位置预测损失,计算所述损失函数。
可选地,所述面部标记表示所述虚拟对象的三维面部;
所述变换层处理单元具体用于:对所述第一编码串与所述面部标识进行变换层处理,得到与所述时区对应的、所述虚拟对象的三维表情系数;
所述口型驱动单元具体用于:基于所述时区对应的所述三维表情系数,在所述位置信息对应的所述帧中,对所述虚拟对象进行口型驱动。
根据本公开的一方面,提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的虚拟对象口型驱动方法。
根据本公开的一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的虚拟对象口型驱动方法。
根据本公开的一方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器读取并执行,使得该计算机设备执行如上所述的虚拟对象口型驱动方法。
本公开实施例中,获取虚拟对象的面部标识,然后将面部标识、和从目标语音中提取的语音特征,以时区对准的方式输入变换层处理,得到时区对准的表情系数,并以该时区对准的表情系数进行口型驱动。时区对准的方式中,口型驱动视频中的一帧对应于目标语音的一个时区,这样,将连带相应时区的位置信息一起编码得到的第一编码串与面部标识进行变换层处理后,得到该时区的表情系数。该时区对准视频中的一帧。这样,就可以在时区播放目标语音在该时区的内容,同时在视频中该时区对准的一帧,按照该时区的表情系数进行口型驱动。它充分考虑到视频中的各帧与语音中的时区之间的联系、和时序依赖关系来驱动口型,提高了口型驱动的准确性和时序稳定性。
本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本公开技术方案的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开的技术方案,并不构成对本公开技术方案的限制。
图1A是本公开实施例的虚拟对象口型驱动方法的单设备体系架构图;
图1B是本公开实施例的虚拟对象口型驱动方法的联网体系架构图;
图2A-2C是本公开的实施例应用于播报数字人场景下的界面示意图;
图3A-3C是本公开的实施例应用于交互数字人场景下的界面示意图;
图4是根据本公开的一个实施例的虚拟对象口型驱动方法的流程图;
图5是本公开的实施例的虚拟对象口型驱动方法的总体实施结构图;
图6是本公开的实施例的虚拟对象的面部的示意图;
图7是本公开的实施例的目标语音的时区与视频的帧的对应关系的示意图;
图8是图4中步骤410中获取虚拟对象的面部标识的一个流程图;
图9是图8中步骤810的一个流程图;
图10是图9中多个参考帧的数目的确定方法的一个流程图;
图11是图4中步骤430中提取语音特征的一个流程图;
图12是图11对应的语音识别模型的结构图;
图13是图4中步骤440中生成与时区对应的、虚拟对象的表情系数的一个流程图;
图14是图13中第一数目或第二数目的确定过程的一个流程图;
图15是对变换层进行训练的过程的一个流程图;
图16是对变换层进行训练的一个示意图;
图17是图15中步骤1550中计算损失函数的一个流程图;
图18是图17中基于均方误差和关键点位置预测损失计算损失函数的一个流程图;
图19是根据本公开的实施例的虚拟对象口型驱动装置的一个模块图;
图20是实施根据本公开的实施例图4所示的虚拟对象口型驱动方法的一种终端结构图;
图21是实施根据本公开的实施例图4所示的虚拟对象口型驱动方法的一种服务器结构图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本公开,并不用于限定本公开。
对本公开实施例进行进一步详细说明之前,对本公开实施例中涉及的名词和术语进行说明,本公开实施例中涉及的名词和术语适用于如下的解释:
人工智能:是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得目标结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、数字人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
数字人:是运用数字技术创造出来的、与人类形象接近的数字化人物形象。数字人技术在多个领域展开研究和应用,例如常见的虚拟助理、智能营销、智能客服等,相信随着技术的发展,数字人技术将在更多的领域得到应用,并发挥越来越重要的价值。
人脸3D形变统计模型(3-Dimensional Morphable Face Model,3DMM):是指一种三维人脸的参数化统计模型,具有一组基底和对应的参数。基底包括材质基底、几何基底和表情基底中的至少一种,参数包括关键点位置参数、姿势参数和表情参数中的至少一种。
渲染:是指在计算机中从三维形变模型生成二维图像的过程,即按照预设的参数将三维场景中的模型通过二维投影成数字图形的过程。
目前,在机器人或数字人领域,已经能够根据希望虚拟对象说出的语音,自动驱动虚拟对象作出相应口型,从而提高虚拟对象说出语音的逼真度。现有技术中,一般是先获得一个二维的面部图片,从面部图片中提取二维面部关键点位置,并将希望虚拟对象说出的语音、和虚拟对象的二维面部关键点位置输入生成模型,由生成模型生成驱动虚拟对象口型的视频。
由于该技术孤立地考虑虚拟对象的视频和语音部分,忽略视频中的各帧与语音中的时区之间的联系来训练模型,使得模型的口型驱动不准确,时序稳定性不好。
本公开实施例应用的系统体系构架及场景说明
图1A是根据本公开的实施例的虚拟对象口型驱动方法所应用的单设备系统构架图。它包括对象终端110、与对象120等。
对象终端110是用来播放口型驱动视频从而让对象120查看被播放的口型驱动视频的设备。它包括桌面电脑、膝上型电脑、PDA(个人数字助理)、手机、车载终端、家庭影院终端、专用终端等多种形式。对象终端110可以分别与视频库和口型驱动模型库连接进行数据交换。口型驱动模型库是指存放虚拟对象口型驱动时可以调用的模型块的集合,如变换层、其他嵌入层等。视频库是指存放用于获取目标语音之前帧图片的虚拟对象视频、虚拟对象的口型驱动视频的集合。
图1B是根据本公开的实施例的虚拟对象口型驱动方法所应用的联网系统构架图。它包括对象终端110、与对象120、口型驱动服务器130、与互联网140等。
对象终端110可以是单台设备,也可以是多台设备组成的集合。例如,多台设备通过局域网连接,公用一台显示设备进行协同工作,共同构成一个终端。终端可以以有线或无线的方式与互联网140进行通信,交换数据。
口型驱动服务器130是指能对对象终端110提供口型驱动服务的计算机系统。相对于对象终端110来说,口型驱动服务器130在稳定性、安全性、性能等方面都要求更高。口型驱动服务器130可以是网络平台中的一台高性能计算机、多台高性能计算机的集群、一台高性能计算机中划出的一部分(例如虚拟机)、多台高性能计算机中划出的一部分(例如虚拟机)的组合等。口型驱动服务器130也可以以有线或无线的方式与互联网140进行通信,交换数据。
本公开实施例可以应用在多种场景下,例如图2A-2C所示的在播报数字人应用中进行虚拟对象口型驱动的场景、图3A-3C所示的在交互数字人应用中进行虚拟对象口型驱动的场景等。
(一)播报数字人应用的场景
播报数字人是指对固定的文字进行播报的数字人,它不与对象现场双向交互。图2A示出了对象终端110中的播报数字人的虚拟对象口型驱动应用的界面。播报数字人的虚拟对象口型驱动应用可以用于生成对虚拟对象进行口型驱动的视频内容。当对象终端110检测到对象120输入要播放的文本时,这时在对象终端110的界面上显示输入的文本具体内容,并显示“正在输入文本”的提示。例如,当对象120进行天气播报提示时,对象120在对象终端110的播报数字人的虚拟对象口型驱动应用中输入“今天阳光明媚,适宜外出露营”的文本内容,这时在对象终端110的界面上显示了文本具体内容。当对象确认输入文本完成后,播报数字人的虚拟对象口型驱动应用的界面如图2B所示。
应当注意,对象120输入要播放的文字不止直接输入这种方式,还可以根据对象终端110的界面上的文档上传控件上传要播放的文稿,并根据对上传的文稿的识别结果在对象终端110的界面上展示输入的文本具体内容。当对象确认输入文本完成后,播报数字人的虚拟对象口型驱动应用的界面如图2B所示。
在图2B中,在对象终端110的界面上显示多个可以选择的虚拟对象面部选项。对象120在触发选择其中一个“虚拟对象面部”选项后,即选择播报数字人的面部后,这时播报数字人的虚拟对象口型驱动应用的界面如图2C所示。
在图2C中,播报数字人的虚拟对象口型驱动应用在当前界面中播放播报数字人口型驱动后的视频内容。这时在对象终端110的界面中展示了所选择的播报数字人根据输入的文本内容对应的语音进行口型驱动的视频,并显示“播放中”的提示。播报数字人的虚拟对象口型驱动应用中供对象120查看的视频内容也可以由口型驱动服务器130决定,也就是说,口型驱动服务器130驱动所选择的播报数字人发出文本对应的语音,并将播报数字人发出该语音的视频投放到虚拟对象口型驱动应用中显示。
(二)交互数字人应用的场景
交互数字人是指与对象进行现场双向交互的数字人。图3A示出了对象终端110中交互数字人的虚拟对象口型驱动应用的界面。交互数字人的虚拟对象口型驱动应用可以用于生成根据交互内容对虚拟对象进行口型驱动的视频内容。交互数字人的虚拟对象口型驱动应用中,交互数字人的虚拟对象面部已经预先设定完成。在进入对象终端110的界面后,交互数字人先播放预先存储的“请问有什么能帮助您吗”的视频内容。这时,对象120可以在对象终端110的页面中的文本输入区域输入查询文本内容。
如图3B所示,对象120将查询文本内容“请问到XX路怎么走”输入到文本输入区域,当对象120确认输入文本完成后,对象终端110根据输入的查询文本进行文本内容搜索。这时交互数字人的虚拟对象口型驱动应用的界面如图3C所示。
在图3C中,根据搜索到的文本对交互数字人的虚拟对象面部进行口型驱动,这时播报数字人的虚拟对象口型驱动应用在当前界面中播放交互数字人口型驱动后的视频内容。这时在对象终端110的界面中展示了所选择的交互数字人根据搜索后的文本内容对应的语音进行口型驱动的视频。交互数字人的虚拟对象口型驱动应用中供对象120查看的视频内容也可以由口型驱动服务器130决定,也就是说,口型驱动服务器130驱动所选择的交互数字人发出搜索文本对应语音,并将交互数字人发出该语音的视频投放到虚拟对象口型驱动应用中播放。
因此,口型驱动准确且保证语音口型时序稳定地为对象生成虚拟对象口型驱动视频是十分重要的。本公开实施例可以实现在提高口型驱动的准确性的同时保证语音和口型驱动时序稳定性的效果。
本公开实施例的总体说明
根据本公开的一个实施例,提供了一种虚拟对象口型驱动方法。
虚拟对象口型驱动方法是指驱动虚拟对象按照给定的目标语音对应的口型进行发声,并向目标对象的对象终端110播放虚拟对象口型驱动后的视频的过程。如果目标对象打开了虚拟对象口型驱动应用软件,本公开实施例的虚拟对象口型驱动方法用于根据指定的虚拟对象的面部和用于驱动虚拟对象的目标语音进行口型驱动,并将生成的口型驱动视频的视频内容通过虚拟对象口型驱动应用软件显示到目标对象的对象终端110上。在进行口型驱动时,本公开实施例可以针对目标语音的时区和口型驱动视频中的帧进行对应,在时区对应的帧中对虚拟对象进行口型驱动,能够提高口型驱动的准确性和时序稳定性。
本公开实施例的虚拟对象口型驱动方法可以在对象终端110执行,也可以在口型驱动服务器130执行,也可以一部分在对象终端110执行,另一部分在口型驱动服务器130执行。执行完成后,由对象终端110向对象120展示虚拟对象口型驱动的视频。
如图4所示,根据本公开的一个实施例,虚拟对象口型驱动方法包括:
步骤410、获取虚拟对象的面部标识;
步骤420、获取用于驱动虚拟对象的目标语音,目标语音包括连续的多个时区,每个时区对应于虚拟对象的口型驱动视频中的一帧;
步骤430、从目标语音中提取语音特征,并将每个时区的语音特征与时区的位置信息进行编码,得到第一编码串;
步骤440、对第一编码串与面部标识进行变换层处理,得到与时区对应的、虚拟对象的表情系数;
步骤450、基于时区对应的表情系数,在位置信息对应的帧中,对虚拟对象进行口型驱动。
首先,结合图5对上述步骤410-450进行整体描述,图5所示的是本公开实施例的虚拟对象口型驱动方法的总体结构图。
在步骤410中,获取虚拟对象的面部标识。虚拟对象是界面上进行口型驱动发出目标语音的虚构对象。它不是真实的人或机器人,而是界面上能够模仿人的口型发出人的声音的虚构人物。图6示出了一个虚拟对象的面部。在虚拟对象的面部,有若干面部关键点。面部关键点是指能够定位出人脸面部的关键部分(包括眉毛、眼睛、鼻子、嘴巴、脸部轮廓等)中的点(具体例如,上嘴唇的最高点、下嘴唇的最低点、左嘴角、右嘴角、左眼角、右眼角等)。
面部标识是指能够表征虚拟对象的面部的字符表示。一个面部标识唯一对应于一个面部。对面部标识进行处理,就相当于就虚拟对象的面部进行处理,因为它代表了虚拟对象的面部。在一个实施例中,可以用虚拟对象的面部所有面部关键点的位置作为面部标识。在另一个实施例中,面部标识是一组权重,它代表了虚拟对象的面部相对于面部基底图像库中多个面部基底图像的权重。面部基底图像是作为比较基础的面部图像。面部基底图像库是多个面部基底图像的集合。把任何一个面部可以看作是面部基底图像库中多个面部基底图像加权叠加而来,即任何一个面部图像是面部基底图像库中多个面部基底图像的加权和。只要该组权重唯一确定了,该面部图像就唯一确定了。关于该实施例中面部标识的获取方式,将在后文的步骤410的详细描述中说明。
在获取虚拟对象的面部标识之后,在步骤420中,获取用于驱动虚拟对象的目标语音,目标语音包括连续的多个时区,每个时区对应于虚拟对象的口型驱动视频中的一帧。
目标语音是用于驱动虚拟对象发出的语音,它可以体现为随时间变化幅度不断变化的语音波形。时区是指从目标语音中划分的语音片段,即可以体现为对目标语音的语音波形划分的语音波形片段。时区可以是按照预设语音时间长度划分的语音片段。
按照预设语音时间长度划分是指每隔设定的语音时间长度就对目标语音进行划分的语音片段,因此,时区就是这段语音时间长度内对应划分的语音片段。例如,预设语音时间长度为1秒,将目标语音中每1秒长度的语音片段作为一个时区,目标语音包括连续的多个时区。
图7示出了目标语音的时区和视频的帧的对应关系。视频帧一般具有大约24-30帧/秒的帧速率。假设目标语音为“今天天气好晴朗,不如大家一起出去玩吧”。这时,每秒中有24-30个时区。虚拟对象发出的第一个字“JIN(今)”的声母“J”是在时区1至时区m中发出的,m为2以上的正整数。虚拟对象发出的第一个字“JIN(今)”的韵母“IN”是在时区(m+1)至时区(m+n)中发出的,n为2以上的正整数。“J”的历时为m个时区,对应m帧。“IN”的历时为n个时区,对应n帧。每个时区对应于虚拟对象的口型驱动视频中的一帧。在得到与时区对应的、虚拟对象的表情系数后,能够在按照时区播放目标语音的同时,基于时区对应的表情系数,在时区对应的帧中,对虚拟对象进行口型驱动。
在获取用于驱动虚拟对象的目标语音之后,在步骤430中,从目标语音中提取语音特征,并将每个时区的语音特征与时区的位置信息进行编码,得到第一编码串。
语音特征是指目标语音本身具有的特征。目标语音的构成要素包括音高、音强、音长、音色。音高是指声波频率,即每秒钟振动次数的多少;音强指声波振幅的大小;音长指声波振动持续时间的长短,也称为“时长”;音色指声音的特色和本质,也称作“音质”。在实际应用中,可以选择不同的语音要素提取语音特征。例如,语音特征可以包括音高、音强和音长要素构成的特征;语音特征还可以为包括音高、音强要素构成的特征。语音特征还可以包括LFPC(对数频率能量系数)、MFCC(梅尔倒谱系数)特征等。
位置信息是指表征时区在目标语音中的位置的信息,例如时区号。由于每个时区对应于虚拟对象的口型驱动视频中的一帧,该位置信息也对应于口型驱动视频中的相应帧位置。
第一编码串是指根据每个时区的语音特征与时区对应的位置信息进行共同编码得到的字符串。将每个时区的位置信息和该时区对应的语音特征共同进行位置编码得到的第一编码串,可以同时考虑虚拟对象的视频和语音部分,有助于建立口型驱动视频中的各帧与目标语音中的时区的对应关系,提高了口型驱动视频的时序稳定性。
在将每个时区的语音特征与时区的时区号进行编码得到第一编码串之后,在步骤440中,对第一编码串与面部标识进行变换层处理,得到与时区对应的、虚拟对象的表情系数。
表情系数是指将虚拟对象的面部按照对应时区的第一编码串进行口型驱动时,表征虚拟对象的表情的一组系数。例如,在一帧中,虚拟对象的左嘴角向上一个像素,左鼻角向左一个像素,左眼的最上点向上一个像素。把这些变化进行编码,就形成了一组系数,这组系数是对左嘴角、左鼻角、左眼最上点等关键点的变化程度的系数。
在通过变换层处理得到与时区对应的、虚拟对象的表情系数之后,在步骤450中,基于时区对应的表情系数,在该位置信息对应的帧中,对虚拟对象进行口型驱动。也就是说,按照时区播放目标语音的同时,基于该时区找到虚拟对象的口型驱动视频中的对应帧,并根据对该时区对应的、虚拟对象的表情系数对口型驱动视频中的该对应帧进行口型驱动。
上述步骤410-450中,获取虚拟对象的面部标识,并获取用于驱动虚拟对象发出的目标语音,将面部标识、和从目标语音中提取的语音特征,以时区对准的方式输入变换层处理,得到时区对准的表情系数,并以该时区对准的表情系数进行口型驱动。时区对准的方式中,目标语音包括连续的多个时区,则每个时区对应于虚拟对象的口型驱动视频中的一帧,这样,将连带相应时区的位置信息一起编码得到的第一编码串与面部标识进行变换层处理后,得到该时区的表情系数。该时区对准视频中的一帧。这样,就可以在视频中与某个时区对准的一帧,按照该时区的表情系数进行口型驱动。它充分考虑到视频中的各帧与语音中的时区之间的联系、和时序依赖关系来驱动口型,提高了口型驱动的准确性和时序稳定性。
下面对上述步骤410-450进行详细描述。
步骤410的详细描述
在一个实施例中,虚拟对象的面部标识是管理员根据实际应用需要进行自由设定的,对于设定的具体数值,不再赘述。在这个实施例中,说出目标语音的虚拟对象的形象是事先由管理员设置好的,对所有对象可能都一样。
在另一个实施例中,可以把参考面部图像中的虚拟对象面部,作为要进行口型驱动的虚拟对象面部。这时,可以从若干已有的虚拟对象图像中指定一张,该指定的虚拟对象图像中的虚拟对象面部就成为要进行口型驱动的虚拟对象面部。例如,指定阿童木面部图像,则将驱动阿童木说出指定语音。参考面部图像是指作为参考的、期望对其进行口型驱动的面部图像。
在该实施例中,如图8所示,步骤410包括:
步骤810、获取虚拟对象的参考面部图像;
步骤820、将参考面部图像与面部基底图像库中多个面部基底图像进行比较,以确定对多个面部基底图像的权重;
步骤830、将确定的对多个面部基底图像的权重,作为面部标识。
在步骤810中,在一个实施例中,可以如图2B所示,向对象显示若干候选面部图像,并接收对象选中的候选面部图像作为参考面部图像。在另一个实施例中,可以直接从参考视频中获取参考面部图像。例如,期望驱动阿童木说出目标语音,但没有阿童木的面部图像,因此,搜索到阿童木的剧集,从阿童木的剧集视频中提取阿童木的参考面部图像。
在该实施例中,如图9所示,步骤810可以包括:步骤910、获取虚拟对象的参考视频;步骤920、从参考视频中抽取多个参考帧;步骤930、对多个参考帧进行裁剪,得到多个参考面部子图像;步骤940、对多个参考面部子图像求平均,得到参考面部图像。
在步骤910中,参考视频是指携带有虚拟对象面部的视频,例如阿童木剧集。
在步骤920中,在一个实施例中,可以从参考视频中等时间间隔地抽取多个帧,作为参考帧。例如,该参考视频为90分钟,每隔10分钟抽取一帧,作为参考帧。在另一个实施例中,也可以在参考视频中进行人脸识别,在识别出虚拟对象的视频部分抽取预定数目帧,作为参考帧。该实施例可以避免抽取出的参考帧不含有面部,因此无法得到参考面部图像。
步骤930中的裁剪是指,在参考帧中进行面部识别,如果识别出虚拟对象的面部,基于面部的上顶点、下顶点、左顶点、右顶点生成一个刚好能容纳该目标的方框,从参考帧中去除方框以外的部分。
步骤940中的对多个参考面部子图像求平均是指,在每个参考面部子图像中找到同一关键点(例如左嘴角点)的位置坐标,对这些位置坐标求平均,就得到了该关键点的平均位置坐标,而确定了每个关键点的平均位置坐标之后,基于每个关键点的平均位置坐标,就得到了平均面部图像,即参考面部图像。
步骤910-940通过抽取参考帧并对多个参考面部子图像求平均的方式,避免了仅从虚拟对象的一个图像中提取面部时,图像拍摄角度和位置不好导致的面部信息获取不准确,提高了面部信息的获取准确性。
如图10所示,在一个实施例中,多个参考帧的数目可以通过以下方式确定:步骤1010、获取参考视频的拍摄清晰度;步骤1020、获取口型驱动的精度;步骤1030、基于拍摄清晰度和精度,确定参考帧的数目。
在步骤1010中,拍摄清晰度是指参考视频中帧图片的图片分辨率。图片分辨率是指拍摄参考视频时可选择的成像大小及尺寸,单位为分辨率(Dots Per Inch,DPI)。它可以由图片宽度上的像素点数乘以图片高度上的像素点数得到。拍摄参考视频的像素越少,图片分辨率越小,拍摄清晰度越低,则需要结合较多的帧图片确定虚拟对象的面部标识。因此,基于拍摄清晰度确定参考帧的第一子数目可以通过第一对照表。例如,表1所示的是一个第一对照表的例子。
表1
基于上例,拍摄清晰度对应的分辨率为640×480,查找表1,得到对应的第一子数目为10张;拍摄清晰度对应的分辨率为2048×1536,查找表1,得到对应的第一子数目为4张。
在步骤1020中,口型驱动的精度是指对口型驱动完成概率的精度要求。口型驱动的精度可以是0.1、0.001、0.0001等。精度要求是0.1代表口型驱动完成概率约束在十分位;精度要求是0.01代表口型驱动完成概率约束在百分位,依次类推。对口型驱动的精度要求越高,得到的口型驱动完成概率的结果越准确,则需要结合较多的帧图片确定虚拟对象的面部标识。基于口型驱动的精度的要求确定参考帧的第二子数目可以通过第二对照表。例如,表2所示的是一个第二对照表的例子。
表2
基于上例,口型驱动精度为0.0001,查找表2,得到对应的第二子数目为12张;口型驱动精度为0.005,查找表2,得到对应的第二子数目为4张。
在步骤1030中,基于拍摄清晰度和精度,确定参考帧的数目可以通过平均数或者加权平均数的方式。
在一个实施例中,使用第一子数目和第二子数目的平均数的方式计算参考帧数目。例如,根据拍摄清晰度确定的第一子数目为12,根据口型驱动精度的要求确定的第二子数目为4,那么参考帧的数目为(12+4)/2=8。利用平均数的方式计算总分数的优点是,使得拍摄清晰度与口型驱动精度的要求对于计算参考帧数目的影响是相同的,提高了确定参考帧数目的公平性。
在另一个实施例中,使用第一子数目和第二子数目的加权平均数的方式计算参考帧数目。在本实施例中,首先需要为拍摄清晰度与口型驱动精度分别设置权重。例如,拍摄清晰度的权重为0.7,口型驱动精度的权重为0.3,根据拍摄清晰度确定的第一子数目为12,根据口型驱动精度的要求确定的第二子数目为4,那么参考帧的数目为12*0.7+4*0.3=9.6。由于帧图片的获取只能为整数张,当根据平均数或加权平均数的方式计算的结果包含小数部分,将该结果向上取整,作为参考帧数目。利用加权平均数的方式计算参考帧数目的优点是,可以根据实际应用的需要灵活地为拍摄清晰度与口型驱动精度设置不同的权重,提高了确定参考帧数目的灵活性。
步骤1210-1230的实施例的优点在于,同时考虑到拍摄清晰度和口型驱动的精度来确定参考帧数目,考虑的因素全面,确定出的参考帧数目更准确。
接着,步骤820中,将参考面部图像与面部基底图像库中多个面部基底图像进行比较,以确定对多个面部基底图像的权重。
如上所述,在一个实施例中,面部标识可以是一组权重,它代表了虚拟对象的面部相对于面部基底图像库中多个面部基底图像的权重。虚拟对象的面部可以看作是面部基底图像库中多个面部基底图像加权叠加而来,即加权和。因此,在步骤820中,将参考面部图像与面部基底图像库中多个面部基底图像进行比较,例如,将参考面部图像中各面部关键点位置与每个面部基底图像中各面部关键点位置进行比较,从而得到参考面部图像相对于多个面部基底图像的权重。只要该组权重唯一确定了,该面部图像就唯一确定了。因此,在步骤830中,将确定的对多个面部基底图像的权重,作为面部标识。
步骤810-830的实施例的优点是,巧妙地通过将参考面部图像与一系列事先准备好的面部基底图像进行比较,得到参考面部图像相对于多个面部基底图像的权重,而这组权重的存储和计算量是比较小的,相比于用其它方式表示面部,这样表示面部节省了资源占用,提高了计算和存储效率。
另外,在一个实施例中,步骤410的面部标记表示虚拟对象的三维面部,而不是二维面部,相对于二维面部的方式,提高了口型驱动的生动性。
步骤420的详细描述
目标语音是用于驱动虚拟对象的语音,即虚拟对象生成的口型驱动视频对应的语音。目标语音包括连续的多个时区,将每个时区对应于虚拟对象的口型驱动的视频中的一帧,通过联合考虑虚拟对象的视频和对应的语音部分,即联合考虑视频中的各帧与语音中的时区的联系来生成虚拟对象的口型驱动视频,提高了虚拟对象口型驱动的时序稳定性。
前面已经描述了获取虚拟对象的面部标识所利用的视频对应的语音、与目标语音的关系,为节约篇幅,不再赘述。
步骤430的详细描述
在一个实施例中,如图11所示,步骤430中,从目标语音中提取语音特征,包括:
步骤1110,将目标语音输入语音识别模型,语音识别模型包括串联的多个处理层;
步骤1120,将多个处理层中最后一个处理层的输出特征,作为提取的语音特征。
语音识别可以通过图12的语音识别模型1610实现。语音识别模型是指从目标语音中识别出对应语音识别文本的模型。常见的语音识别模型包括动态时间规整(DyanmicTime Warping)、矢量量化(Vector Quantization)、隐马尔可夫模型(Hidden MarkovModels)等。
语音识别模型包括输入层、串联的多个处理层和判决层。这些处理层为图示的处理层1至处理层n1。
依次经过不同处理层可以提取不同细节程度的特征信息。例如,浅层处理层网络一般感受野较小,能够利用更多的细粒度特征信息,这就保证了网络能够捕获更多局部特征细节。随着经过的处理层的数量增多,即下采样或卷积次数增加,感受野逐渐增加,感受野之间重叠区域也不断增加,此时提取的特征信息是一个全局的信息,相对不够细粒度,但语义信息丰富。在卷积神经网络中,感受野是指卷积神经网络每一层输出的特征图上的像素点在输入语音的频谱图上映射的区域大小。将多个处理层中最后一个处理层的输出特征,作为提取的语音特征。
判决层是根据语音特征识别出目标语音对应的语音识别文本的层。判决层通常只能接收数字化的序列作为输入,经过运算,才能产生语音识别结果,即语音识别文本。
步骤1510-1520的实施例的优点在于,它将目标语音输入语音识别模型,利用串联的多个处理层对目标语音进行特征提取,将多个处理层中最后一个处理层的输出特征,作为提取的语音特征,其识别出的语音的音频更能代表准确的音频,因此,提高了口型驱动中口型的识别准确性。
在提取到语音特征之后,将每个时区的语音特征与时区的位置信息进行编码,得到第一编码串。
位置信息以时区号为例。时区号是指目标语音中每个时区对应的编号。由于网络只能接受离散的值,可以采用正弦函数或余弦函数的方式为每个时区分配一个不同的时区号,则时区号可以为0-1中的任一数值。例如,时区1对应的时区号为0.1,时区2对应的时区号为0.2等。
第一编码串是指将每个时区的语音特征与时区的时区号进行联合编码得到的编码向量。向量是二进制数的序列,如0111…10001。
计算第一编码串的过程如公式1所示:
(公式1)。
在公式1中,表示时区对应的时区号,/>表示时区对应的语音特征,/>表示编码函数,/>表示每个时区的语音特征与时区的时区号进行联合编码得到的第一编码串。例如,时区1对应的时区号为0.1,时区1对应的语音特征的向量为1000110000,则得到的第一编码串为0100011011。
本公开实施例编码得到第一编码串的优点在于,时区对应于虚拟对象的口型驱动视频中的一帧,时区号和帧具有对应关系,通过同时考虑口型驱动视频中的帧、和该帧对应的时区的语音特征,即考虑虚拟对象的视频和语音部分的对应性,提高了虚拟对象口型驱动的时序稳定性。
步骤440的详细描述
在获取到当前时区对应的第一编码串后,根据第一编码串与面部标识进行变换层处理,得到当前时区的下一时区对应的、虚拟对象的表情系数,其表示基于当前时区的面部标识中的面部关键点的位移变化参数。
在一个实施例中,如图13所示,步骤44中,对第一编码串与面部标识进行变换层处理,得到与时区对应的、虚拟对象的表情系数,包括:
步骤1310,将第一编码串与面部标识输入串联的第一数目个编码变换层,得到中间特征;
步骤1320,将中间特征输入串联的第二数目个解码变换层,得到与时区对应的、虚拟对象的表情系数。
编码变换层是指具有编码功能的变换层。解码变换层是指具有解码功能的变换层。
编码变换层中计算中间特征的过程如下公式2所示:
(公式2)。
在公式2中,表示时区1至时区/>,/>表示中每个时区对应的面部标识,/>表示当前的变换层包含的编码变换层的数量,即第一数目,/>表示时区对应的第一编码串。表示编码变换层的处理函数,/>表示第1个编码变换层,/>表示第/>个编码变换层,/>表示迭代处理得到的中间特征。
由于映射到隐藏层得到的中间特征与最终所需要的时区对应的、虚拟对象的表情系数的维度存在差异,采用解码变换层将隐藏层的中间特征进行解码映射,得到与时区对应的、虚拟对象的表情系数。
解码变换层中计算与时区对应的、虚拟对象的表情系数的过程如下公式3所示:
(公式3)。
在公式3中,表示时区1至时区/>,/>表示经过串联的多个编码变换层后得到的中间特征,/>表示当前的变换层包含的解码变换层的数量,即第二数目,/>表示解码变换层的处理函数,/>表示第1个解码变换层,/>表示第/>个解码变换层,/>表示迭代处理得到的与时区对应的、虚拟对象的表情系数。
编码变换层和解码变换层可以采用基于变换层(Transformer)形式的网络结构进行构建。
在一个实施例中,如图14所示,第一数目或第二数目通过以下方式确定:
步骤1410,获取目标语音中的时区数目;
步骤1420,获取每个时区的语音特征数目的平均数;
步骤1430,基于时区数目和平均数,确定第一数目或第二数目。
第一数目是指串联的编码变换层的数目,第二数目是指串联的解码变换层的数目。
在步骤1410中,时区数目是指目标语音中包含的连续的时区的总数目。例如,目标语音包含时区1、时区2……时区10,则这时的时区数目为10。
在步骤1420中,由于不同时区的语音内容不容,例如,目标语音为“今天天气不错,大家一起去露营吧”,当每个时区的语音时间长度为1秒,则一个时区对应的语音为“今天”,另一个时区对应的语音为“天气不错”,这两个时区所包含的语音特征是不相同的。语音特征数目的平均数是指目标语音中时区的语音特征数目的总和与时区数目的比值。语音特征数目的总和是指将目标语音中每个时区对应的语音特征数目进行相加后的数目。例如,目标语音包括时区1、时区2、时区3,时区1对应的语音特征数目为6,时区2对应的语音特征数目为4,时区3对应的语音特征数目为2。这时的语音特征数目的总和为6+4+2=12,每个时区的语音特征数目的平均数为12/3=4。
在步骤1430中,基于时区数目和每个时区的语音特征数目的平均数确定第一数目或第二数目,可以通过基于时区数目确定第一分数,基于每个时区的语音特征数目的平均数确定第二分数,基于第一分数和第二分数确定总分数,再根据总分数确定第一数目或第二数目的方式。
基于时区数目确定第一分数可以通过第三对照表。表3所示的是一个第三对照表的例子。
/>
表3
基于上例,时区数目为20,查找表3,得到对应的第一分数为100;时区数目为18,查找表3,得到对应的清晰度帧数目为90。
基于每个时区的语音特征数目的平均数确定第二分数可以通过第四对照表。表4所示的是一个第四对照表的例子。
表4
基于上例,语音特征数目的平均数为6,查找表4,得到对应的第二分数为100;语音特征数目的平均数为4,查找表4,得到对应的第二分数为90。
在一个实施例中,使用第一分数与第二分数的平均数的方式确定总分数。例如,根据时区数目确定的第一分数为90,根据语音特征数目的平均数确定的第二分数为100,那么总分数为(90+100)/2=95。利用平均数的方式计算总分数的优点是,使得时区数目和平均数对于计算第一数目或第二数目的影响是相同的,提高了确定第一数目或第二数目的公平性。
在另一个实施例中,使用第一分数与第二分数的加权平均数的方式计算总分数。在本实施例中,首先需要为时区数目对应的第一分数和平均数对应的第二分数分别设置权重。例如,第一分数的权重为0.6,第二分数的权重为0.4,第一分数为90,第二分数为100,那么总分数为90*0.6+100*0.3=84。利用加权平均数的方式计算第一数目或第二数目的优点是,可以根据实际应用的需要灵活地为时区数目对应的第一分数和平均数对应的第二分数设置不同的权重,提高了确定第一数目或第二数目的灵活性。
根据总分数确定第一数目或第二数目,总分数越高,代表所需要的编码变换层或解码变换层的数量越多,第一数目或第二数目越高。
在一个实施例中,可以通过总分数与对应设置的第一数目或第二数目之间的第五对照表确定第一数目或第二数目。表5所示的是一个第五对照表的例子。
表5
基于上例,总分数为95,查找表5,得到对应的第一数目或第二数目为10;总分数为78,查找表5,得到对应的第一数目或第二数目为8。
步骤1310-1320的实施例的优点在于,第一编码串同时考虑口型驱动视频中的帧、和该帧对应的时区的语音特征,再联合第一编码串与面部标识进行变换层处理,能够得到与时区对应的、虚拟对象的表情系数,提高了口型驱动视频的驱动准确性和时序稳定性。
步骤1410-1430的实施例的优点在于,基于时区数目和平均数确定第一数目或第二数目,考虑的因素全面,提高了确定第一数目或第二数目的准确性。
另外,在步骤440中,对第一编码串与面部标识进行变换层处理,得到与时区对应的、虚拟对象的表情系数,可以包括:对第一编码串与面部标识进行变换层处理,得到与时区对应的、虚拟对象的三维表情系数。也就是说,表情系数可以是三维的。与二维的表情系数相比,提高了口型驱动的生动性和准确性。
步骤450的详细描述
在步骤450中,对于驱动虚拟对象发出的目标语音,基于时区对应的表情系数,在该时区的位置信息对应的帧中,对虚拟对象进行口型驱动。
目标语音包括连续的多个时区,则口型驱动视频中有多帧,且每个帧对应于目标语音中的一个时区。在从目标语音提取语音特征时,就把每个时区的语音特征和位置信息一起编码。这样,就建立了目标语音中的时区与视频中帧的对应关系。变换层处理获得的是分时区的表情系数,这样,一方面可以在该时区播放对应该时区的语音,一方面在该时区对应的帧中,按照该时区的表情系数,实现了视频与语音的配合,从而驱动对应时区对应的帧中虚拟对象的口型驱动。将时区对应的表情系数输入生成网络生成口型驱动视频中的一帧,在按照时区播放目标语音的同时,在时区对应的帧中,对虚拟对象进行口型驱动。
在本实施例中,充分考虑到视频中的各帧与语音中的时区之间的联系、和时序依赖关系来驱动口型,在按照时区播放目标语音的同时,基于时区对应的表情系数,在时区对应的帧中,对虚拟对象进行口型驱动,提高了口型驱动的准确性和时序稳定性。
另外,在步骤450中,可以基于时区对应的三维表情系数,在位置信息对应的帧中,对虚拟对象进行口型驱动。与基于二维表情系数进行口型驱动相比,三维表情系数提高了口型驱动的生动性和准确性。
本公开实施例中变换层的训练过程
为了训练本公开实施例的变换层,如图15所示,变换层通过以下方式训练而成:
步骤1510、获取视音频样本集,视音频样本集包含多个视音频样本,视音频样本包括视频部分、和与视频部分对应的音频部分;
步骤1520、从视频部分中,提取各个帧的样本帧图片,并从音频部分中,提取与各个帧对应的各个时区内的样本语音特征;
步骤1530、将样本帧图片输入三维可变形面部模型,得到帧中虚拟对象的目标面部标识、目标表情系数和目标姿势系数;
步骤1540、将各个帧的目标面部标识、与帧对应的时区内的样本语音特征对应的目标编码串输入变换层,得到预测表情系数;
步骤1550、基于目标面部标识、目标表情系数、目标姿势系数和预测表情系数,计算损失函数,并以损失函数训练变换层。
结合图16对上述步骤1510-1550进行整体描述,图16所示的是基于视音频样本集对变换层进行训练的一个示意图。
在步骤1510中,视音频样本是指包含同步的视频和音频的媒体内容。视音频样本集即多个视音频样本的集合。例如,某新闻节目是一个视音频样本,其中,新闻主播播音的语音与口型是同步的,因为它是真实发生的情况的记录,用它来训练变换层,实际投入使用后,才能得到语音与口型同步的口型驱动效果。由于视音频样本是包含同步的视频和音频的媒体内容,视频部分就是其中包含的视频,音频部分就是其中包含的音频。
在步骤1520中,从视频部分中,提取各个帧的样本帧图片,并从音频部分中,提取与各个帧对应的各个时区内的样本语音特征。视频部分是由一个个帧组成的,每个帧是一个图片。样本帧图片就是从视频部分中提取的作为样本的帧图片。由于每帧对应于语音中的一个时区,因此可以提取每帧对应的时区中的语音。从语音中提取出的特征叫做样本语音特征。从每帧中提取语音、和从语音提取样本语音特征的过程类似于前面的步骤420-430的过程,故不赘述。
注意,在提取样本帧图片和样本语音特征时,要事先征求样本对象的同意。而且,对样本帧图片和样本语音特征的收集、使用和处理等,都会遵守相关法律法规和标准。在征求样本对象的同意时,可以通过弹窗或者跳转到确认页面等方式获得样本对象的单独许可或者单独同意。
在步骤1530中,将样本帧图片输入三维可变形面部模型,得到帧中虚拟对象的目标面部标识、目标表情系数和目标姿势系数。
三维可变形面部模型是指对输入图片中的对象面部进行人脸形变统计,并能够根据统计的参数进行三维面部重建的模型。三维可变形面部模型能够获取虚拟对象的面部标识,面部标识代表三维面部,而不是二维面部,能够对例如嘟嘴等口型进行更准确地驱动。三维可变形面部模型可以为人脸3D形变统计模型(3-Dimensional Morphable FaceModel,3DMM)等。
目标面部标识代表了视音频样本中的对象的面部。它与步骤410得到的面部标识类似。面部标识是一组权重,它代表了对象的面部相对于面部基底图像库中多个面部基底图像的权重。目标面部标识代表了视音频样本中的对象的面部相对于面部基底图像库中多个面部基底图像的权重。得到该组权重后,把面部基底图像库中多个面部基底图像按照该组权重进行加权和,就还原了视音频样本中的对象面部。
目标表情系数是表示视音频样本中的对象在视音频样本的特定帧中的表情的参数。它与步骤440中的表情系数类似。例如,在视音频样本的一帧中,对象的左嘴角向上一个像素,左鼻角向左一个像素,左眼的最上点向上一个像素。把这些变化进行编码,就形成了一组系数,即目标表情系数。
目标姿势系数是表示视音频样本中的对象在视音频样本的特定帧中的姿势的参数。例如,在视音频样本的一帧中,对象的面部向上抬5%的角度,向左转10%的角度。把该内容进行编码,就形成了一组系数,即目标姿势系数。
在步骤1540中,将各个帧的目标面部标识、与帧对应的时区内的样本语音特征对应的目标编码串输入变换层,得到预测表情系数。
类似于步骤440中将第一编码串与面部标识进行变换层处理,得到与时区对应的、虚拟对象的表情系数,在步骤1540中,将各个帧的目标面部标识、与帧对应的时区内的样本语音特征对应的目标编码串输入变换层,得到预测表情系数。原理是类似的,故不赘述。这里的目标编码串是指将该时区内的样本语音特征与该时区的位置信息一起编码得到的编码串。预测表情系数是变换层根据目标视音频中的语音结合目标面部标识对应的面部进行预测所得到的表情系数。它与目标表情系数的区别在于,目标表情系数是真实发生的,而预测表情系数是结合目标面部标识对应的面部并根据语音预测出来的。
在步骤1550中,基于目标面部标识、目标表情系数、目标姿势系数和预测表情系数,计算损失函数,并以损失函数训练变换层。损失函数是指用于衡量变换层预测导致的与真正情况的误差的函数。损失函数越小代表变换层对表情系数的预测结果越好。损失函数得到后,以损失函数训练变换层。
步骤1510-1550的实施例的优点在于,基于目标面部标识、目标表情系数、目标姿势系数和预测表情系数,计算损失函数,使得损失函数与多种因素相关,提高了变换层训练的全面性与准确性。
在一个实施例中,如图17所示,步骤1550包括:
步骤1710、确定目标表情系数和预测表情系数的均方误差;
步骤1720、基于目标面部标识、目标表情系数、目标姿势系数,确定目标面部关键点位置信息;
步骤1730、基于目标面部标识、预测表情系数、目标姿势系数,确定预测面部关键点位置信息;
步骤1740、基于目标面部关键点位置信息、和预测面部关键点位置信息,确定关键点位置预测损失;
步骤1750、基于均方误差和关键点位置预测损失,计算损失函数。
步骤1710中,由于目标表情系数是表示视音频样本中的对象在视音频样本的特定帧中的真实表情的参数,一般为一组系数(例如,在视音频样本的一帧中,对象的左嘴角向上一个像素,左鼻角向左一个像素,左眼的最上点向上一个像素,左嘴角、左鼻角和左眼的最上点都有变化,各有一个系数)。预测表情系数是表示变换层预测的该对象在该帧中的表情的参数,它也是一组系数。如果二者维度相同,将对应维度的目标表情系数和预测表情系数相减,得到该维度的系数差。将所有维度的系数差进行平方和,除以维度数,再开根号,得到目标表情系数和预测表情系数的均方误差。
计算均方误差的过程如下公式4所示:
(公式4)。
在公式4中,表示目标表情系数和预测表情系数的均方误差,/>表示第1到t帧的预测表情系数,/>表示第1到t帧的目标表情系数,/>表示均方误差(Mean-Square Error)函数。
在步骤1720中,基于目标面部标识、目标表情系数、目标姿势系数,确定目标面部关键点位置信息。如上所述,目标面部标识代表了视音频样本中的对象的面部相对于面部基底图像库中多个面部基底图像的权重。得到该组权重后,把面部基底图像库中多个面部基底图像按照该组权重进行加权和,就还原了视音频样本中的对象面部。因此,先把面部基底图像库中多个面部基底图像按照目标表情系数、和目标姿势系数进行表情变换和姿势变换,得到变形后的多个面部基底图像。将这变形后的多个面部基底图像按照该组权重加权,就得到了视音频样本中的对象的面部按照目标表情系数、和目标姿势系数进行表情变换和姿势变换后的面部。在该面部中确定各面部关键点位置信息,就得到了目标面部关键点位置信息。
计算目标面部关键点位置信息的过程如下公式5所示:
(公式5)。
在公式5中,表示第1到t帧的目标面部关键点位置信息;/>表示第1到t帧的目标面部标识;/>表示第1到t帧的目标表情系数;/>表示第1到t帧的目标姿势系数,表示参数渲染处理。
在步骤1730中,基于目标面部标识、预测表情系数、目标姿势系数,确定预测面部关键点位置信息。与步骤1720类似,目标面部标识代表了视音频样本中的对象的面部相对于面部基底图像库中多个面部基底图像的一组权重。先把面部基底图像库中多个面部基底图像按照预测表情系数、和目标姿势系数进行表情变换和姿势变换,得到变形后的多个面部基底图像。将这变形后的多个面部基底图像按照该组权重加权,就得到了视音频样本中的对象的面部按照预测表情系数、和目标姿势系数进行表情变换和姿势变换后的面部。在该面部中确定各面部关键点位置信息,就得到了预测面部关键点位置信息。它与步骤1720中的目标面部关键点位置信息的区别在于,目标面部关键点位置信息是视音频样本中的对象的真实的变换后面部的关键点位置信息,预测面部关键点位置信息是视音频样本中的对象的预测的变换后面部的关键点位置信息。
计算预测面部关键点位置信息的过程如下公式6所示:
(公式6)。
在公式6中,表示第1到t帧的预测面部关键点位置信息;/>表示第1到t帧的目标面部标识;/>表示第1到t帧的预测表情系数;/>表示第1到t帧的目标姿势系数,表示参数渲染处理。
在步骤1740中,基于目标面部关键点位置信息、和预测面部关键点位置信息,确定关键点位置预测损失。目标面部关键点位置信息含有视音频样本中的对象的真实的变换后面部的每个关键点的位置坐标。预测面部关键点位置信息含有视音频样本中的对象的预测的变换后面部的每个关键点的位置坐标。对于某一个面部关键点,确定真实的变换后面部的该目标关键点坐标和预测的变换后面部的该目标关键点坐标的距离。将所有得到的距离的平方和除以面部关键点数目,再开根号,得到关键点位置预测损失。
计算关键点位置预测损失的过程如下公式7所示:
(公式7)。
在公式7中,表示关键点位置预测损失,/>真实的变换后面部的每个关键点的位置坐标,/>预测的变换后面部的每个关键点的位置坐标。/>表示均方误差(Mean-Square Error)函数。
在步骤1750中,基于均方误差和关键点位置预测损失,计算损失函数。
在一个实施例中,可以通过将均方误差和关键点位置预测损失相加,计算损失函数。在另一个实施例中,可以为均方误差和关键点位置预测损失分配不同的权重,并通过计算均方误差和关键点位置预测损失的加权和,计算损失函数。
如图18所示,在一个实施例中,基于均方误差和关键点位置预测损失,计算损失函数,包括:
步骤1810,获取预期的口型驱动视频的流畅度;
步骤1820,获取口型驱动精度;
步骤1830,基于流畅度和口型驱动精度,确定均方误差的第一权重、和关键点位置预测损失的第二权重;
步骤1840,基于第一权重和第二权重,计算均方误差和关键点位置预测损失的加权和,作为损失函数。
在步骤1810中,视频的流畅度是指视频播放时的帧率,即视频每秒显示的帧数,单位为每秒显示帧数(Frames per Second,FPS)。计算均方误差是容易的,但计算关键点位置预测损失还需要如步骤1720-1730的渲染过程,实时性可能性会比较差。因此,如果要求生成的口型驱动视频的流畅度较佳,则花费较大开销去算关键点预测损失会阻碍视频的流畅度。这时,需要将均方误差对应的第一权重设置较大,将关键点位置预测损失对应的第二权重设置较小。在步骤1820中,口型驱动精度是指对口型驱动完成概率的精度要求。口型驱动精度可以是0.1、0.001、0.0001等。精度要求是0.1代表口型驱动完成概率约束在十分位;精度要求是0.01代表口型驱动完成概率约束在百分位,依次类推。对口型驱动精度要求越高,得到的口型驱动完成概率的结果越准确。通过关键点位置预测损失衡量损失比较精确,通过均方误差衡量损失比较不准确,因此,关键点预测损失更有利于提高预测精度。这时,需要将均方误差对应的第一权重设置较小,将关键点位置预测损失对应的第二权重设置较大。
在步骤1830中,基于流畅度和口型驱动精度,确定均方误差的第一权重、和关键点位置预测损失的第二权重。
在一个实施例中,步骤1830包括:基于流畅度,确定均方误差的第一子权重、和关键点位置预测损失的第二子权重;基于预期的口型驱动精度,确定均方误差的第三子权重、和关键点位置预测损失的第四子权重;基于均方误差的第一子权重和第三子权重,确定均方误差的第一权重,且基于关键点位置预测损失的第二子权重和第四子权重,确定关键点位置预测损失的第二权重。
基于流畅度确定均方误差的第一子权重、和关键点位置预测损失的第二子权重可以通过第七对照表。表6所示的是一个第七对照表的例子。
表6
基于上例,视频的流畅度为60 FPS,查找表6,得到当前流畅度下均方误差对应的第一子权重为0.9,关键点位置预测损失对应的第二子权重为0.1。
基于预期的口型驱动精度确定均方误差的第三子权重、和关键点位置预测损失的第四子权重可以通过第八对照表。表7所示的是一个第八对照表的例子。
表7
基于上例,口型驱动精度为0.0001,查找表7,得到当前的口型驱动精度下均方误差对应的第三子权重为0.1,关键点位置预测损失对应的第四子权重为0.9。
基于均方误差的第一子权重和第三子权重,确定均方误差的第一权重,且基于关键点位置预测损失的第二子权重和第四子权重,确定关键点位置预测损失的第二权重,可以通过平均数或者加权平均数的方式。
在一个实施例中,使用平均数的方式计算均方误差的第一权重、和关键点位置预测损失的第二权重。例如,视频的流畅度为60 FPS,查找表6,得到当前流畅度下均方误差对应的第一子权重为0.9,关键点位置预测损失对应的第二子权重为0.1。口型驱动精度为0.0005,查找表7,得到当前的口型驱动精度下均方误差对应的第三子权重为0.2,关键点位置预测损失对应的第四子权重为0.8。这时的第一权重为(0.9+0.2)/2=0.55,这时的第二权重为(0.1+0.8)/2=0.45。利用平均数的方式的优点是,使得口型驱动视频的流畅度和口型驱动精度的要求对于确定均方误差的第一权重、和关键点位置预测损失的第二权重的影响是相同的,提高了确定均方误差的第一权重、和关键点位置预测损失的第二权重的公平性。
在另一个实施例中,使用加权平均数的方式计算均方误差的第一权重、和关键点位置预测损失的第二权重。例如,口型驱动视频的流畅度的权重为0.7,口型驱动精度的权重为0.3。视频的流畅度为60 FPS,查找表6,得到当前流畅度下均方误差对应的第一子权重为0.9,关键点位置预测损失对应的第二子权重为0.1。口型驱动精度为0.0005,查找表7,得到当前的口型驱动精度下均方误差对应的第三子权重为0.2,关键点位置预测损失对应的第四子权重为0.8。这时的第一权重为0.9*0.7+0.2*0.3=0.69,这时的第二权重为0.1*0.7+0.8*0.3=0.31。利用加权平均数的方式计算均方误差的第一权重、和关键点位置预测损失的第二权重的优点是,可以根据实际应用的需要灵活地为口型驱动视频的流畅度和口型驱动精度设置不同的权重,提高了确定均方误差的第一权重、和关键点位置预测损失的第二权重的灵活性。
在步骤1840中,基于第一权重和第二权重,计算均方误差和关键点位置预测损失的加权和,作为损失函数。根据步骤1710计算得到的均方误差为,根据步骤1740计算得到的关键点位置预测损失为/>。计算损失函数的过程如下公式8所示:
(公式8)。
在公式8中,表示第一权重,/>表示第二权重,/>表示损失函数,/>表示关键点位置预测损失。例如,第一权重为0.69,第二权重为0.31,均方误差/>为2,关键点位置预测损失/>为4,得到损失函数的值为0.69*2+0.31*4=2.62。/>
步骤1810-1840的实施例的优点在于,基于口型驱动视频的流畅度和口型驱动精度确定均方误差的第一权重、和关键点位置预测损失的第二权重,考虑的因素比较全面,提高了损失函数计算的准确性。
步骤1710-1750的实施例的优点在于,基于均方误差和关键点位置预测损失构造损失函数,既考虑单独的表情系数的变化带来的影响,又考虑到最后产生的面部关键点位置的变化带来的影响,损失函数构造得比较全面,提高了训练变换层的全面性与准确性。
本公开实施例的装置和设备描述
可以理解的是,虽然上述各个流程图中的各个步骤按照箭头的表征依次显示,但是这些步骤并不是必然按照箭头表征的顺序依次执行。除非本实施例中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时间执行完成,而是可以在不同的时间执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据任务内容属性信息或属性信息集合等与任务内容特性相关的数据进行相关处理时,都会先获得任务内容的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关法律法规和标准。此外,当本申请实施例需要获取任务内容属性信息时,会通过弹窗或者跳转到确认页面等方式获得任务内容的单独许可或者单独同意,在明确获得任务内容的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的任务内容相关数据。
图19为本公开实施例提供的虚拟对象口型驱动装置1900的结构示意图。该虚拟对象口型驱动装置1900包括:
第一获取单元1910,用于获取虚拟对象的面部标识;
第二获取单元1920,用于获取用于驱动虚拟对象的目标语音,目标语音包括连续的多个时区,每个时区对应于虚拟对象的口型驱动视频中的一帧;
提取单元1930,用于从目标语音中提取语音特征,并将每个时区的语音特征与时区的位置信息进行编码,得到第一编码串;
变换层处理单元1940,用于对第一编码串与面部标识进行变换层处理,得到与时区对应的、虚拟对象的表情系数;
口型驱动单元1950,用于基于时区对应的表情系数,在位置信息对应的帧中,对虚拟对象进行口型驱动。
可选地,变换层处理单元1940具体用于:
将第一编码串与面部标识输入串联的第一数目个编码变换层,得到中间特征;
将中间特征输入串联的第二数目个解码变换层,得到与时区对应的、虚拟对象的表情系数。
可选地,第一数目或第二数目通过以下方式确定:
获取目标语音中的时区数目;
获取每个时区的语音特征数目的平均数;
基于时区数目和平均数,确定第一数目或第二数目。
可选地,基于时区数目和平均数,确定第一数目或第二数目,包括:
基于时区数目,确定第一分数;
基于平均数,确定第二分数;
基于第一分数和第二分数,确定总分数;
基于总分数,确定第一数目或第二数目。
可选地,第一获取单元1910具体用于:
获取虚拟对象的参考面部图像;
将参考面部图像与面部基底图像库中多个面部基底图像进行比较,以确定对多个面部基底图像的权重;
将确定的对多个面部基底图像的权重,作为面部标识。
可选地,第一获取单元1910具体用于:
获取虚拟对象的参考视频;
从参考视频中抽取多个参考帧;
对多个参考帧进行裁剪,得到多个参考面部子图像;
对多个参考面部子图像求平均,得到参考面部图像。
可选地,多个参考帧的数目通过以下方式确定:
获取参考视频的拍摄清晰度;
获取口型驱动的精度;
基于拍摄清晰度和精度,确定参考帧的数目。
可选地,提取单元1930具体用于:
将目标语音输入语音识别模型,语音识别模型包括串联的多个处理层;
将多个处理层中最后一个处理层的输出特征,作为提取的语音特征。
可选地,虚拟对象口型驱动装置1900还包括:
训练单元(未示),用于通过以下方式训练变换层:
获取视音频样本集,视音频样本集包含多个视音频样本,视音频样本包括视频部分、和与视频部分对应的音频部分;
从视频部分中,提取各个帧的样本帧图片,并从音频部分中,提取与各个帧对应的各个时区内的样本语音特征;
将样本帧图片输入三维可变形面部模型,得到帧中虚拟对象的目标面部标识、目标表情系数和目标姿势系数;
将各个帧的目标面部标识、与帧对应的时区内的样本语音特征对应的目标编码串输入变换层,得到预测表情系数;
基于目标面部标识、目标表情系数、目标姿势系数和预测表情系数,计算损失函数,并以损失函数训练变换层。
可选地,训练单元(未示)具体用于:
确定目标表情系数和预测表情系数的均方误差;
基于目标面部标识、目标表情系数、目标姿势系数,确定目标面部关键点位置信息;
基于目标面部标识、预测表情系数、目标姿势系数,确定预测面部关键点位置信息;
基于目标面部关键点位置信息、和预测面部关键点位置信息,确定关键点位置预测损失;
基于均方误差和关键点位置预测损失,计算损失函数。
可选地,面部标记表示虚拟对象的三维面部;
变换层处理单元1940具体用于:对第一编码串与面部标识进行变换层处理,得到与时区对应的、虚拟对象的三维表情系数;
口型驱动单元1950具体用于:基于时区对应的三维表情系数,在位置信息对应的帧中,对虚拟对象进行口型驱动。
参照图20,图20为实现本公开实施例的虚拟对象口型驱动方法的终端的部分的结构框图,该终端包括:射频(Radio Frequency,简称RF)电路2010、存储器2015、输入单元2030、显示单元2040、传感器2050、音频电路2060、无线保真(wireless fidelity,简称WiFi)模块2070、处理器2080、以及电源2090等部件。本领域技术人员可以理解,图20示出的终端结构并不构成对手机或电脑的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
RF电路2010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器2080处理;另外,将设计上行的数据发送给基站。
存储器2015可用于存储软件程序以及模块,处理器2080通过运行存储在存储器2015的软件程序以及模块,从而执行内容终端的各种功能应用以及数据处理。
输入单元2030可用于接收输入的数字或字符信息,以及产生与内容终端的设置以及功能控制有关的键信号输入。具体地,输入单元2030可包括触控面板2031以及其他输入装置2032。
显示单元2040可用于显示输入的信息或提供的信息以及内容终端的各种菜单。显示单元2040可包括显示面板2041。
音频电路2060、扬声器2061,传声器2062可提供音频接口。
在本实施例中,该终端所包括的处理器3080可以执行前面实施例的虚拟对象口型驱动方法。
本公开实施例的终端包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。本发明实施例可应用于各种场景,包括但不限于人工智能、大数据等。
图21为实施本公开实施例的虚拟对象口型驱动方法的口型驱动服务器130的部分的结构框图。口型驱动服务器130可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,简称CPU)2122(例如,一个或一个以上处理器)和存储器2132,一个或一个以上存储应用程序2142或数据2144的存储介质2130(例如一个或一个以上海量存储装置)。其中,存储器2132和存储介质2130可以是短暂存储或持久存储。存储在存储介质2130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对口型驱动服务器130中的一系列指令操作。更进一步地,中央处理器2122可以设置为与存储介质2130通信,在口型驱动服务器130上执行存储介质2130中的一系列指令操作。
口型驱动服务器130还可以包括一个或一个以上电源2126,一个或一个以上有线或无线网络接口2150,一个或一个以上输入输出接口2158,和/或,一个或一个以上操作系统2141,例如Windows ServerTM,Mac OS XTM,UnixTM ,LinuxTM,FreeBSDTM等等。
口型驱动服务器130中的中央处理器2122可以用于执行本公开实施例的虚拟对象口型驱动方法。
本公开实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行前述各个实施例的虚拟对象口型驱动方法。
本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序。计算机设备的处理器读取该计算机程序并执行,使得该计算机设备执行实现上述的虚拟对象口型驱动方法。
本公开的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的内容,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“包含”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其它步骤或单元。
应当理解,在本公开中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联内容的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联内容是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
应了解,在本公开实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
在本公开所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,口型驱动服务器130,或者网络装置等)执行本公开各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
还应了解,本公开实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。
以上是对本公开的实施方式的具体说明,但本公开并不局限于上述实施方式,熟悉本领域的技术人员在不违背本公开精神的条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本公开权利要求所限定的范围内。

Claims (13)

1.一种虚拟对象口型驱动方法,其特征在于,包括:
获取所述虚拟对象的面部标识;
获取用于驱动所述虚拟对象的目标语音,所述目标语音包括连续的多个时区,每个所述时区对应于所述虚拟对象的口型驱动视频中的一帧;
从所述目标语音中提取语音特征,并将每个时区的所述语音特征与所述时区的位置信息进行编码,得到第一编码串;
对所述第一编码串与所述面部标识进行变换层处理,得到与所述时区对应的、所述虚拟对象的表情系数;所述变换层通过以下方式训练而成:获取视音频样本集,所述视音频样本集包含多个视音频样本,所述视音频样本包括视频部分、和与所述视频部分对应的音频部分;从所述视频部分中,提取各个帧的样本帧图片,并从所述音频部分中,提取与各个帧对应的各个时区内的样本语音特征;将所述样本帧图片输入三维可变形面部模型,得到所述帧中所述虚拟对象的目标面部标识、目标表情系数和目标姿势系数; 将各个所述帧的所述目标面部标识、与所述帧对应的所述时区内的所述样本语音特征对应的目标编码串输入所述变换层,得到预测表情系数;基于所述目标面部标识、所述目标表情系数、所述目标姿势系数和所述预测表情系数,计算损失函数,并以所述损失函数训练所述变换层;
基于所述时区对应的所述表情系数,在所述位置信息对应的所述帧中,对所述虚拟对象进行口型驱动。
2.根据权利要求1所述的虚拟对象口型驱动方法,其特征在于,所述对所述第一编码串与所述面部标识进行变换层处理,得到与所述时区对应的、所述虚拟对象的表情系数,包括:
将所述第一编码串与所述面部标识输入串联的第一数目个编码变换层,得到中间特征;
将所述中间特征输入串联的第二数目个解码变换层,得到与所述时区对应的、所述虚拟对象的表情系数。
3.根据权利要求2所述的虚拟对象口型驱动方法,其特征在于,所述第一数目或所述第二数目通过以下方式确定:
获取所述目标语音中的时区数目;
获取每个所述时区的所述语音特征数目的平均数;
基于所述时区数目和所述平均数,确定所述第一数目或所述第二数目。
4.根据权利要求3所述的虚拟对象口型驱动方法,其特征在于,所述基于所述时区数目和所述平均数,确定所述第一数目或所述第二数目,包括:
基于所述时区数目,确定第一分数;
基于所述平均数,确定第二分数;
基于所述第一分数和所述第二分数,确定总分数;
基于所述总分数,确定所述第一数目或所述第二数目。
5.根据权利要求1所述的虚拟对象口型驱动方法,其特征在于,所述获取所述虚拟对象的面部标识,包括:
获取所述虚拟对象的参考面部图像;
将所述参考面部图像与面部基底图像库中多个面部基底图像进行比较,以确定对多个所述面部基底图像的权重;
将确定的对多个所述面部基底图像的所述权重,作为所述面部标识。
6.根据权利要求5所述的虚拟对象口型驱动方法,其特征在于,所述获取所述虚拟对象的参考面部图像,包括:
获取所述虚拟对象的参考视频;
从所述参考视频中抽取多个参考帧;
对多个所述参考帧进行裁剪,得到多个参考面部子图像;
对多个所述参考面部子图像求平均,得到所述参考面部图像。
7.根据权利要求6所述的虚拟对象口型驱动方法,其特征在于,多个所述参考帧的数目通过以下方式确定:
获取所述参考视频的拍摄清晰度;
获取所述口型驱动的精度;
基于所述拍摄清晰度和所述精度,确定所述参考帧的数目。
8.根据权利要求1所述的虚拟对象口型驱动方法,其特征在于,所述从所述目标语音中提取语音特征,包括:
将所述目标语音输入语音识别模型,所述语音识别模型包括串联的多个处理层;
将多个所述处理层中最后一个处理层的输出特征,作为提取的所述语音特征。
9.根据权利要求1所述的虚拟对象口型驱动方法,其特征在于,所述基于所述目标面部标识、所述目标表情系数、所述目标姿势系数和所述预测表情系数,计算损失函数,包括:
确定所述目标表情系数和所述预测表情系数的均方误差;
基于所述目标面部标识、所述目标表情系数、所述目标姿势系数,确定目标面部关键点位置信息;
基于所述目标面部标识、所述预测表情系数、所述目标姿势系数,确定预测面部关键点位置信息;
基于所述目标面部关键点位置信息、和所述预测面部关键点位置信息,确定关键点位置预测损失;
基于所述均方误差和所述关键点位置预测损失,计算所述损失函数。
10.根据权利要求1所述的虚拟对象口型驱动方法,其特征在于,所述面部标记表示所述虚拟对象的三维面部;
所述对所述第一编码串与所述面部标识进行变换层处理,得到与所述时区对应的、所述虚拟对象的表情系数,包括:对所述第一编码串与所述面部标识进行变换层处理,得到与所述时区对应的、所述虚拟对象的三维表情系数;
所述基于所述时区对应的所述表情系数,在所述位置信息对应的所述帧中,对所述虚拟对象进行口型驱动,包括:基于所述时区对应的所述三维表情系数,在所述位置信息对应的所述帧中,对所述虚拟对象进行口型驱动。
11.一种虚拟对象口型驱动装置,其特征在于,包括:
第一获取单元,用于获取所述虚拟对象的面部标识;
第二获取单元,用于获取用于驱动所述虚拟对象的目标语音,所述目标语音包括连续的多个时区,每个所述时区对应于所述虚拟对象的口型驱动视频中的一帧;
提取单元,用于从所述目标语音中提取语音特征,并将每个时区的所述语音特征与所述时区的位置信息进行编码,得到第一编码串;
变换层处理单元,用于对所述第一编码串与所述面部标识进行变换层处理,得到与所述时区对应的、所述虚拟对象的表情系数;所述变换层通过以下方式训练而成:获取视音频样本集,所述视音频样本集包含多个视音频样本,所述视音频样本包括视频部分、和与所述视频部分对应的音频部分;从所述视频部分中,提取各个帧的样本帧图片,并从所述音频部分中,提取与各个帧对应的各个时区内的样本语音特征;将所述样本帧图片输入三维可变形面部模型,得到所述帧中所述虚拟对象的目标面部标识、目标表情系数和目标姿势系数;将各个所述帧的所述目标面部标识、与所述帧对应的所述时区内的所述样本语音特征对应的目标编码串输入所述变换层,得到预测表情系数;基于所述目标面部标识、所述目标表情系数、所述目标姿势系数和所述预测表情系数,计算损失函数,并以所述损失函数训练所述变换层;
口型驱动单元,用于基于所述时区对应的所述表情系数,在所述位置信息对应的所述帧中,对所述虚拟对象进行口型驱动。
12.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现根据权利要求1至10任意一项所述的虚拟对象口型驱动方法。
13.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现根据权利要求1至10任意一项所述的虚拟对象口型驱动方法。
CN202310936907.8A 2023-07-28 2023-07-28 虚拟对象口型驱动方法、相关装置和介质 Active CN116665695B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310936907.8A CN116665695B (zh) 2023-07-28 2023-07-28 虚拟对象口型驱动方法、相关装置和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310936907.8A CN116665695B (zh) 2023-07-28 2023-07-28 虚拟对象口型驱动方法、相关装置和介质

Publications (2)

Publication Number Publication Date
CN116665695A CN116665695A (zh) 2023-08-29
CN116665695B true CN116665695B (zh) 2023-10-20

Family

ID=87710087

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310936907.8A Active CN116665695B (zh) 2023-07-28 2023-07-28 虚拟对象口型驱动方法、相关装置和介质

Country Status (1)

Country Link
CN (1) CN116665695B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117540789B (zh) * 2024-01-09 2024-04-26 腾讯科技(深圳)有限公司 模型训练方法、面部表情迁移方法、装置、设备及介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW550476B (en) * 1999-06-14 2003-09-01 Inst Information Industry Method for using text to drive graphic animation and object loaded with software program applying the same method
CN103218842A (zh) * 2013-03-12 2013-07-24 西南交通大学 一种语音同步驱动三维人脸口型与面部姿势动画的方法
CN110874557A (zh) * 2018-09-03 2020-03-10 阿里巴巴集团控股有限公司 一种语音驱动虚拟人脸的视频生成方法以及装置
CN111145282A (zh) * 2019-12-12 2020-05-12 科大讯飞股份有限公司 虚拟形象合成方法、装置、电子设备和存储介质
CN111459450A (zh) * 2020-03-31 2020-07-28 北京市商汤科技开发有限公司 交互对象的驱动方法、装置、设备以及存储介质
CN112396182A (zh) * 2021-01-19 2021-02-23 腾讯科技(深圳)有限公司 脸部驱动模型的训练和脸部口型动画的生成方法
CN113628309A (zh) * 2021-08-17 2021-11-09 杭州相芯科技有限公司 一种真人语音口型动画生成方法及系统、电子设备、存储介质
CN115209180A (zh) * 2022-06-02 2022-10-18 阿里巴巴(中国)有限公司 视频生成方法以及装置
CN115442543A (zh) * 2022-07-29 2022-12-06 平安科技(深圳)有限公司 虚拟形象说话视频的合成方法、装置、设备及存储介质
CN115580743A (zh) * 2022-12-08 2023-01-06 成都索贝数码科技股份有限公司 一种视频中人物口型驱动方法及系统
CN115588224A (zh) * 2022-10-14 2023-01-10 中南民族大学 一种人脸关键点的预测方法、虚拟数字人生成方法及装置
CN115691544A (zh) * 2022-10-31 2023-02-03 广州方硅信息技术有限公司 虚拟形象口型驱动模型的训练及其驱动方法、装置和设备
CN115966194A (zh) * 2022-10-21 2023-04-14 小哆智能科技(北京)有限公司 语音口型同步生成方法、装置、电子设备及存储介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW550476B (en) * 1999-06-14 2003-09-01 Inst Information Industry Method for using text to drive graphic animation and object loaded with software program applying the same method
CN103218842A (zh) * 2013-03-12 2013-07-24 西南交通大学 一种语音同步驱动三维人脸口型与面部姿势动画的方法
CN110874557A (zh) * 2018-09-03 2020-03-10 阿里巴巴集团控股有限公司 一种语音驱动虚拟人脸的视频生成方法以及装置
CN111145282A (zh) * 2019-12-12 2020-05-12 科大讯飞股份有限公司 虚拟形象合成方法、装置、电子设备和存储介质
CN111459450A (zh) * 2020-03-31 2020-07-28 北京市商汤科技开发有限公司 交互对象的驱动方法、装置、设备以及存储介质
CN112396182A (zh) * 2021-01-19 2021-02-23 腾讯科技(深圳)有限公司 脸部驱动模型的训练和脸部口型动画的生成方法
CN113628309A (zh) * 2021-08-17 2021-11-09 杭州相芯科技有限公司 一种真人语音口型动画生成方法及系统、电子设备、存储介质
CN115209180A (zh) * 2022-06-02 2022-10-18 阿里巴巴(中国)有限公司 视频生成方法以及装置
CN115442543A (zh) * 2022-07-29 2022-12-06 平安科技(深圳)有限公司 虚拟形象说话视频的合成方法、装置、设备及存储介质
CN115588224A (zh) * 2022-10-14 2023-01-10 中南民族大学 一种人脸关键点的预测方法、虚拟数字人生成方法及装置
CN115966194A (zh) * 2022-10-21 2023-04-14 小哆智能科技(北京)有限公司 语音口型同步生成方法、装置、电子设备及存储介质
CN115691544A (zh) * 2022-10-31 2023-02-03 广州方硅信息技术有限公司 虚拟形象口型驱动模型的训练及其驱动方法、装置和设备
CN115580743A (zh) * 2022-12-08 2023-01-06 成都索贝数码科技股份有限公司 一种视频中人物口型驱动方法及系统

Also Published As

Publication number Publication date
CN116665695A (zh) 2023-08-29

Similar Documents

Publication Publication Date Title
WO2021043053A1 (zh) 一种基于人工智能的动画形象驱动方法和相关装置
US10621991B2 (en) Joint neural network for speaker recognition
WO2020258668A1 (zh) 基于对抗网络模型的人脸图像生成方法及装置、非易失性可读存储介质、计算机设备
JP6019108B2 (ja) 文字に基づく映像生成
CN107911643B (zh) 一种视频通信中展现场景特效的方法和装置
CN111885414B (zh) 一种数据处理方法、装置、设备及可读存储介质
JP2014519082A5 (zh)
WO2023197979A1 (zh) 一种数据处理方法、装置、计算机设备及存储介质
US20230215068A1 (en) Method for outputting blend shape value, storage medium, and electronic device
CN116665695B (zh) 虚拟对象口型驱动方法、相关装置和介质
CN113228163A (zh) 基于文本和音频的实时面部再现
US11581020B1 (en) Facial synchronization utilizing deferred neural rendering
CN113870395A (zh) 动画视频生成方法、装置、设备及存储介质
CN114359517A (zh) 虚拟形象生成方法、虚拟形象生成系统和计算设备
CN111401259A (zh) 模型训练方法、系统、计算机可读介质和电子设备
CN114495916B (zh) 背景音乐的插入时间点确定方法、装置、设备和存储介质
CN111414959A (zh) 图像识别方法、装置、计算机可读介质和电子设备
CN111476095A (zh) 一种表情属性识别方法、装置、计算机设备及存储介质
CN111768729A (zh) 一种vr场景自动解说方法、系统和存储介质
CN116597857A (zh) 一种语音驱动图像的方法、系统、装置及存储介质
CN115171673A (zh) 一种基于角色画像的交流辅助方法、装置及存储介质
CN113762056A (zh) 演唱视频识别方法、装置、设备及存储介质
CN114630190A (zh) 关节姿态参数的确定方法、模型训练方法及装置
KR102138132B1 (ko) 언어학습을 위한 애니메이션 더빙 서비스 제공 시스템
CN117373455B (zh) 一种音视频的生成方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40091918

Country of ref document: HK