一种实时的语音驱动人脸动画的方法和系统
技术领域
本发明涉及虚拟现实和动画领域,特别涉及一种实时的语音驱动人脸动画的方法和系统。
背景技术
语音动画是生成真实感动画的一个重要而耗时的方面。广义上讲,语音动画是指移动图形(或机器人)模型的面部特征,使嘴唇运动与语音同步,并给人以语音生成的印象。作为人类,我们都是面部专家,糟糕的语音动画会让人分心、不愉快和困惑。例如,视听语言的不匹配有时会改变观众认为他们听到的内容,高逼真度的语音动画对于有效的角色动画至关重要。
然而,现有的基于机器学习的语音动画方法通常是根据与训练集分布相同的测试样本来评估的,其结果依赖于特定的说话人,说话风格,不能够重定目标,即不能将生成的动画重定目标到其他面部装备,实用性低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
为解决上述技术问题,本发明的目的在于提供一种与说话人无关,并可重定目标到任何动画装备的实时的语音驱动人脸动画的方法和系统,以解决现有的语音动画方法依赖于特定的说话人、说话风格,且不能够将生成的动画重定目标到任何面部装备的问题。
第一方面,本发明实施例提供一种实时的语音驱动人脸动画的方法,包括以下步骤:
获取来自第一说话人的中性语音视听数据集,所述中性语音视听数据集包括语音数据和与所述语音数据对应的人脸视频数据;
使用主动外观模型跟踪并参数化所述人脸视频数据中第一说话人的面部特征,得到参考人脸模型;
将所述语音数据转换为音素标签序列;
使用所述音素标签序列和与所述音素标签序列相对应的参考人脸模型作为待训练样本,训练基于滑动窗口的深度卷积神经网络模型的目标参数的参数值,得到训练之后的所述深度卷积神经的网络模型;
计算目标角色的重定目标函数,将训练之后的所述深度卷积神经网络模型的参考人脸模型重定目标到目标角色模型;
将来自第二说话人的目标音素标签序列输入重定目标到目标角色模型的所述深度卷积神经网络模型进行预测,输出基于目标角色的语音动画。
进一步地,,所述使用主动外观模型跟踪并参数化所述人脸视频数据中第一说话人的面部特征,得到参考人脸模型的步骤包括:
使用主动外观模型跟踪并参数化所述人脸视频数据中第一说话人的面部特征,面部特征包括形状特征和外观特征,将所述人脸视频数据中位于下脸和下颚的34个顶点设置成所述主动外观模型的形状分量,所述主动外观模型分成2个不重叠区域,所述不重叠区域包括内嘴区域及位于所述内嘴区域以外的区域,得到参考人脸模型的表达式如下:
其中,q=104,ji表示三种变化模式。
进一步地,,在所述训练基于滑动窗口的深度卷积神经网络模型的目标参数的参数值的步骤之前,所述方法还包括:
设置所述滑动窗口的输入窗口长度为11,输出窗口长度为5。
进一步地,,所述使用所述音素标签序列和与所述音素标签序列相对应的参考人脸模型作为待训练样本,训练基于滑动窗口的深度卷积神经网络模型的目标参数的参数值,得到训练之后的所述深度卷积神经的网络模型的步骤包括:
将所述输入音素标签序列分解为一个重叠的定长输入序列
对于每个
使用深度卷积神经网络进行预测,从而产生重叠的固定长度输出序列
通过混合所述固定长度输出序列,使用帧平均值构造最终动画序列
进一步地,,所述计算目标角色的重定目标函数,将训练之后的所述深度卷积神经网络模型的参考人脸模型重定目标到目标角色模型的步骤包括:
在目标角色上手动设置参考人脸模型表示的形状基和平均形状s0的子集,预先计算跨越深度卷积神经网络动画空间的重定目标函数;
将所述参考人脸模型的输出字符设置平均值的+3和-3标准偏差,创建一组8个姿势;
为所述目标角色模型创建与所述8个姿势一一对应的8个对应姿势;
存储对应于所述8个对应姿势的装备参数,对所述装配参数进行组合。
第二方面,本发明实施例提供一种存储介质,所述存储介质包括存储的程序,其中,所述程序执行任意一种上述的方法。
第三方面,本发明实施例提供一种处理器,上述处理器用于运行程序,其中,所述程序运行时执行任意一种上述的方法。
第四方面,本发明实施例提供一种电子设备,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的方法。
第五方面,本发明实施例提供一种实时的语音驱动人脸动画的系统,所述系统包括:
获取模块,用于获取来自第一说话人的中性语音视听数据集,所述中性语音视听数据集包括语音数据和与所述语音数据对应的人脸视频数据;
人脸转换模块,用于使用主动外观模型跟踪并参数化所述人脸视频数据中第一说话人的面部特征,得到参考人脸模型;
音素转换模块,用于将所述语音数据转换为音素标签序列;
训练模块,用于使用所述音素标签序列和与所述音素标签序列相对应的参考人脸模型作为待训练样本,训练基于滑动窗口的深度卷积神经网络模型的目标参数的参数值,得到训练之后的所述深度卷积神经的网络模型;
重定目标模块,用于计算目标角色的重定目标函数,将训练之后的所述深度卷积神经网络模型的参考人脸模型重定目标到目标角色模型;
目标预测模块,用于将来自第二说话人的目标音素标签序列输入重定目标到目标角色模型的所述深度卷积神经网络模型进行预测,输出基于目标角色的语音动画。
进一步地,所述人脸转换模块还用于:
使用主动外观模型跟踪并参数化所述人脸视频数据中第一说话人的面部特征,面部特征包括形状特征和外观特征,将所述人脸视频数据中位于下脸和下颚的34个顶点设置成所述主动外观模型的形状分量,所述主动外观模型分成2个不重叠区域,所述不重叠区域包括内嘴区域及位于所述内嘴区域以外的区域,得到参考人脸模型的表达式如下:
其中,q=104,ji表示三种变化模式。
进一步地,所述系统还包括:
设置模块,用于设置所述滑动窗口的输入窗口长度为11,输出窗口长度为5。
进一步地,所述训练模块包括:
输入模块:用于将所述输入音素标签序列分解为一个重叠的定长输入序列
序列预测模块:用于对于每个
使用深度卷积神经网络进行预测,从而产生重叠的固定长度输出序列
混合输出模块:用于通过混合所述固定长度输出序列,使用帧平均值构造最终动画序列
进一步地,所述重定目标模块包括:
重定函数模块:用于在目标角色上手动设置参考人脸模型表示的形状基和平均形状s0的子集,预先计算跨越深度卷积神经网络动画空间的重定目标函数;
姿势创建模块,用于将所述参考人脸模型的输出字符设置平均值的+3和-3标准偏差,创建一组8个姿势;
目标姿势模块,用于为所述目标角色模型创建与所述8个姿势一一对应的8个对应姿势;
组合模块:用于存储对应于所述8个对应姿势的装备参数,对所述装配参数进行组合。
有益效果
在本发明实例中,通过获取来自第一说话人的中性语音视听数据集,我们可以经济有效地收集一个全面的数据集,即只针对一个说话人,全面捕获各种各样的语音模式。通过将语音数据转换为音素标签序列,可以使语音动画与说话人无关,并能够轻松地将语音动画融入到任何装备、任何扬声器中,并且以易于编辑和样式化,生成的动画能够准确反映可见语音运动中存在的复杂语音模式,如联合发音效果。通过基于滑动窗口的深度卷积神经网络方法,能够生成实时、连续,高逼真度的语音动画。通过装配空间重定目标,能够将生成的动画重定目标到任何面部装备且易于动画师进行编辑和风格化,使其能轻松集成到现有的生产管道中。
附图说明
图1为本发明方法的一种实施方式的流程图;
图2为本发明系统的一种实施方式的结构图;
图3为使用主动外观模型AAM进行人脸跟踪的示例图;
图4为基于滑动窗口的深度卷积神经网络训练的示意图;
图5为重定目标后的目标角色人脸示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本发明实施中,提供一种实时的语音驱动人脸动画的方法,如图1所示,该方法包括如下步骤:
步骤S100,获取来自第一说话人的中性语音视听数据集,中性语音视听数据集包括语音数据和与语音数据对应的人脸视频数据;
步骤S102,使用主动外观模型跟踪并参数化人脸视频数据中第一说话人的面部特征,得到参考人脸模型;
步骤S104,将语音数据转换为音素标签序列;
步骤S106,使用音素标签序列和与音素标签序列相对应的参考人脸模型作为待训练样本,训练基于滑动窗口的深度卷积神经网络模型的目标参数的参数值,得到训练之后的深度卷积神经的网络模型;
步骤S108,计算目标角色的重定目标函数,将训练之后的深度卷积神经网络模型的参考人脸模型重定目标到目标角色模型;
步骤S110,将来自第二说话人的目标音素标签序列输入重定目标到目标角色模型的深度卷积神经网络模型进行预测,输出基于目标角色的语音动画。
其中,为了满足高逼真度,我们采用数据驱动的方法来精确捕捉自然语音动画的复杂结构。中性语音视听数据集可以使用KB-2k数据集,KB-2k是一个大型的视听数据集,包含来自同一说话人朗诵的2543个语音多样的中性语气的句子。视频中的脸是正面的,且在同一位置处拍摄,数据集中的所有句子在Arpabet语音代码中手动注释,KB-2k被设计成一个语音多样的语音训练数据集,在最大限度地减少所需的语音记录量的同时,实现了相关协同发音效果的高覆盖率。通过关注单个参考说话人人脸和中性语音,我们可以经济有效地收集一个全面的数据集,即只针对一个说话人,全面捕获各种各样的语音模式。
其中,为了使语音动画与说话人无关,并能够轻松地将语音动画融入到任何装备、任何扬声器中,并且以易于编辑和样式化的方式,我们可以使用现有的语音识别软件将语音数据转换为音素标签序列,将音素标签序列映射到语音动画,而不是直接从音频特征映射,使得我们的自动语音动画可以推广到任何输入扬声器,任何风格的语音。
其中,本发明使用AAM(Active Appearance Model,主动外观模型)进行人脸跟踪,使用主动外观模型跟踪并参数化所述人脸视频数据中第一说话人的面部特征,面部特征包括形状特征和外观特征,然后自动地将这些面部特征转换为两个部分的控制参数,即表情控制参数和三维头部姿态参数,利用主动外观模型(AAM)优化的下面部形状和外观的线性模型系数,对中性语音视听数据集的人脸视频数据进行了紧凑的参数化处理,以跟踪视频帧,形状分量表示n=34个,顶点,s={u1,υ1,u2,υ2,...,uN,υN}T,
作为线性模型,如图3(a)所示,显示了AAM形状组件的34个顶点,
使用M=16模式捕捉99%的形状变化,如图3(b)所示,显示了AAM形状分量的前三个变化模式(最高能量)显示为平均值的±3标准偏差。平均形状为 s
0,每个s
i为形状基向量,形状参数为p
i
外观模型被分成k=2个不重叠区域A
k(u),其中u表示在s
0处采样的40000(u,v)像素坐标集。使用两个区域可以使内嘴区域(可见时)内的像素独立于嘴唇和下巴的其余面部像素变化,
每个区域的平均外观是
基向量
和外观参数
参考人脸模型表示y是q=104维的描述,描述了语音期间人脸的变形和强度变化,描述为连接的形状和外观参数的线性投影。适当的权重W,平衡了强度和形状参数的能量差,即参考人脸模型表示公式如下:
其中,ji表示前三种变化模式,如图3(c)所示,显示了组合AAM模型的前三种变化模式显示为平均值的±3标准偏差。
图4描述了我们的深度学习滑动窗口回归管道。我们将音素标签序列x作为输入(a)的逐帧序列开始。我们将x转换成一系列重叠的定长输入
(b)。我们应用我们所学习的基于滑动窗口的深度卷积神经网络模型对每个
进行预测,这将导致一系列重叠的固定长度输出
(d)。我们混合
通过平均帧来达到最终输出y(e)。注意,
的中心框突出显示,但所有预测值都有助于y。为了清楚起见,仅显示第一个预测参数值。
我们的滑动窗口神经网络深度学习方法受到了并基于以下假设。
假设1.共振态效应可以在时域上表现出广泛的上下文相关曲率。例如,第一个AAM参数图4(e)的曲率可以平滑或急剧变化,这取决于本地语音上下文,图4(a)。
假设2.共发音效应是局部的,不表现出很长的依赖性。例如,一个人如何表达“预测”的结尾实际上与一个人如何表达“构造”的结尾是一样的,并且不太依赖于任何一个词的开头。
这些假设激发了我们学习方法中的主要归纳偏差,即训练一个滑动窗口回归器,该回归器学习预测动画的任意固定长度子序列。图4描述了我们的预测管道,可以总结为:
(1)将输入语音序列X分解为一个重叠的定长输入序列
窗口尺寸为K
x(图4(b))。
(2)对于每个
使用h预测,从而产生重叠的固定长度输出序列
每个窗口大小为K
y(图4(c)和图4(d))。
(3)通过混合y构造最终动画序列
使用帧平均值,如图4(e)所未。
由于从语音子序列到动画子序列的映射非常复杂,我们使用一个深神经网络来实例化h。我们的学习目标是最小化训练数据中地面真值定长子序列与其相应预测输出之间的平方损失。
在我们的实验中,我们使用一个完全连接的前馈神经网络,其中一个(滑动窗口)输入层连接到三个完全连接的隐藏层和一个最终输出层。每个隐藏层有3000个隐藏单元,每个单元使用双曲正切传递函数。采用标准的小批量随机梯度下降法进行训练,最小批量为100。为了避免过度拟合,我们使用了衰减中止概率为50%。最后的输出层是标准的多元线性回归训练,以最小化平方损失。我们可以使用任何现成的深度学习平台来训练这个模型。
如前所述,我们的深度学习滑动窗口方法的关键特性是它可以同时对多个帧进行联合预测,这是直接由我们应该集中于捕获视觉语音中的局部时间曲率的假设驱动的。我们可以等效地将滑动窗口预测器视为卷积深度学习架构的变体。
相比之下,最近许多用于序列到序列预测的深度学习方法使用递归神经网络(及其基于记忆的扩展),并通过隐藏单元激活和状态向量(在LSTMs的情况下)将信息从帧传播到帧,从而间接地对这种依赖进行建模。虽然rnns和LSTMs具有捕获复杂时间曲率的能力,但它们的归纳偏差并不一定与我们的建模假设一致,因此在能够可靠地学习好的预测器之前,可能需要大量的训练数据。相反,我们把学习的重点放在捕捉上下文的邻域和协同发音效果上。实验表明,滑动窗口结构在视觉语音动画方面明显优于LSTMs。
我们的方法有两个调谐参数,Kx和Ky。输入窗口长度Kx必须足够大以捕捉显著的共发音效果,而输出窗口长度Ky必须足够大以捕捉显著的Y局部曲率。例如,使Kx变小将不允许模型在两个似是而非的共发音之间消除歧义(D由于消除了输入窗口外的音素歧义,并且Ky太小会导致噪声预测。然而Kx和Ky越大,学习一个精确模型所需的训练数据就越多,因为模型类的内在复杂性(因此过度拟合有限训练集的风险)随着,Kx和Ky。的增加而增加。
我们发现,Kx和Ky。很容易调整,部分原因是我们的模型训练的速度。从我们的实验中,我们发现Kx=11和Ky=5在我们的训练和测试集上给出了最好的结果。
其中,要推广到新的输出面模型,必须重新定位预测的动画。AAM参考人脸表示捕获了语音过程中的形状和外观变化(例如牙齿和舌头可见性),并且可以使用任何潜在的复杂和内容相关的重定目标功能,如图5(a)显示了参考形状模型的四个模式在平均值的±3σ处创建八个语音重定目标形状,5(b)显示了艺术家将相应的姿势转移到了各种面部装备上,为任何装备实现和角色样式计算动画参数。
重定目标方法是可以通过利用AAM表示捕获的已知面部运动子空间预先计算一次的方法。要实现这一点,重定目标功能必须在参考面模型可以采用的整个姿势范围内定义良好。一种有效的方法是使用分段线性重定目标,其中一小组姿势从参考面模型手动映射到目标面模型。但是,我们注意到可以使用任何其他重定目标方法。
我们的实现通过在目标角色上手动设置参考AAM表示的形状基和平均形状s0的子集,预先计算跨越神经网络动画空间的重定目标函数。我们使用前四个形状模式进行重定目标,因为这些模式描述下半部最重要的运动(91%的能量),并且可以由动画师解释。
为了更好地表示我们设置的目标装备上的非线性行为,我们将,即
其中,相对于平均姿势s0,
图5描述了一个重定目标过程的示例。对于参考面的八个重定目标姿势中的每一个,我们在每个目标装配上创建一个一次性的对应姿势。我们发现手动设置这些形状的姿势很简单,这主要是因为参考面中的基本形状易于解释。例如,第一种模式对应于嘴巴的张开程度。
存储对应于八个姿势(有效的装备特征向量)的装备参数
相对于平均姿势r0。随后,由神经网络预测的语音动画可以通过形成R列的线性组合(即装配空间插值)直接传输到目标装配。确定每个姿势的8维权重向量w通过以下公式计算:
其中
是神经网络预测的形状分量,u∈{-3,+3}取决于姿势是否与平均值的负偏差或正偏差相关。要将预测姿势重定目标为角色,装备参数组合如下:
Rt=(R-r0)w+r0
初始角色设置仅对每个新角色执行一次,并且与装备的实现方式无关(例如,混合变形、基于变形器等)。然后动画管道是全自动的。使用此装备空间重定目标方法创建的动画示例显示在补充视频中。装配空间重定目标是一种简单的可计算方法,它捕获语音清晰度的能量,并生成一致的高质量动画。对于装配良好的角色,动画师很容易编辑生成的中性语音动画,例如覆盖情感表达。
其他的重定目标方法是可能的,并且通过设计,独立于我们的语音动画预测方法。例如,网格变形传输可用于自动重新定位钻机空间变形的参考形状。变形传输也可用于每帧将预测动画传输到未装配的角色网格。
在本发明实施中,还提供一种存储介质,存储介质包括存储的程序,其中,程序执行任意一种上述的方法。
在本发明实施中,还提供一种处理器,上述处理器用于运行程序,其中,程序运行时执行任意一种上述的方法。
在本发明实施中,还提供一种电子设备,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的方法。
在本发明实施中,还提供一种实时的语音驱动人脸动画的系统,如图2所示,所述系统包括:
获取模块202,用于获取来自第一说话人的中性语音视听数据集,中性语音视听数据集包括语音数据和与语音数据对应的人脸视频数据;
人脸转换模块204,用于使用主动外观模型跟踪并参数化人脸视频数据中第一说话人的面部特征,得到参考人脸模型;
音素转换模块206,用于将语音数据转换为音素标签序列;
训练模块208,用于使用音素标签序列和与音素标签序列相对应的参考人脸模型作为待训练样本,训练基于滑动窗口的深度卷积神经网络模型的目标参数的参数值,得到训练之后的深度卷积神经的网络模型;
重定目标模块210,用于计算目标角色的重定目标函数,将训练之后的深度卷积神经网络模型的参考人脸模型重定目标到目标角色模型;
目标预测模块212,用于将来自第二说话人的目标音素标签序列输入重定目标到目标角色模型的深度卷积神经网络模型进行预测,输出基于目标角色的语音动画。
可选的,所述人脸转换模块还用于:
使用主动外观模型跟踪并参数化所述人脸视频数据中第一说话人的面部特征,面部特征包括形状特征和外观特征,将所述人脸视频数据中位于下脸和下颚的34个顶点设置成所述主动外观模型的形状分量,所述主动外观模型分成2个不重叠区域,所述不重叠区域包括内嘴区域及位于所述内嘴区域以外的区域,得到参考人脸模型的表达式如下:
其中,q=104,ji表示三种变化模式。
可选的,所述系统还包括:
设置模块,用于设置所述滑动窗口的输入窗口长度为11,输出窗口长度为5。
可选的,所述训练模块包括:
输入模块:用于将所述输入音素标签序列分解为一个重叠的定长输入序列
序列预测模块:用于对于每个
使用深度卷积神经网络进行预测,从而产生重叠的固定长度输出序列
混合输出模块:用于通过混合所述固定长度输出序列,使用帧平均值构造最终动画序列
可选的,所述重定目标模块包括:
重定函数模块:用于在目标角色上手动设置参考人脸模型表示的形状基和平均形状s0的子集,预先计算跨越深度卷积神经网络动画空间的重定目标函数;
姿势创建模块,用于将所述参考人脸模型的输出字符设置平均值的+3和-3标准偏差,创建一组8个姿势;
目标姿势模块,用于为所述目标角色模型创建与所述8个姿势一一对应的8个对应姿势;
组合模块:用于存储对应于所述8个对应姿势的装备参数,对所述装配参数进行组合。
本发明实施例提供的方法和系统,通过获取来自第一说话人的中性语音视听数据集,我们可以经济有效地收集一个全面的数据集,即只针对一个说话人,全面捕获各种各样的语音模式。通过将语音数据转换为音素标签序列,可以使语音动画与说话人无关,并能够轻松地将语音动画融入到任何装备、任何扬声器中,并且以易于编辑和样式化,生成的动画能够准确反映可见语音运动中存在的复杂语音模式,如联合发音效果。通过基于滑动窗口的深度卷积神经网络方法,能够生成实时、连续,高逼真度的语音动画。通过装配空间重定目标,能够将生成的动画重定目标到任何面部装备且易于动画师进行编辑和风格化,使其能轻松集成到现有的生产管道中。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。