一种文本语音驱动的人脸动画生成方法及系统技术领域
本发明涉及人脸动画领域,尤其涉及一种文本语音驱动的人脸动画生成方
法及系统。
背景技术
可视语音合成技术,旨在为输入语音生成同步的唇形动画和表情动画,从
而使应用具有更友好的交互体验,具有重要的应用前景和应用价值,互联网尤
其是移动互联网的发展和普及,为可视语音合成提供了更为广阔的应用空间,
在面向互联网和移动互联网的交互式社交应用开发中,可视语音合成具有重要
的应用价值:可用于开发游戏中的虚拟说话角色,使得角色的唇形和表情更加
真实自然;可用于开发在线虚拟聊天室,使用户能够通过虚拟化身进行网络社
交;还可用于开发虚拟解说员,用于提升导航系统和电子书阅读器等应用的交
互体验,但是,以上这些交互性和面向互联网的特性,也为可视语音合成提出
了新的挑战,一个重要的性能方面的考量是可视语音合成的时效性,为了使得
系统具有较好的使用体验,用户等待动画合成结果输出的时间应控制在可接受
的范围之内,另一个值得关注的点是可视语音合成的真实度,人眼对可视语音
的感知十分灵敏,任何微小的偏差都可能会给用户带来不自然的感觉,因此,
在进行可视语音合成时,需要考虑这两者之间的平衡。
基于负指数形式的控制函数(DominanceFunction)插值的可视语音合成
方法是基于规则合成方法中的经典方法,但是该训练方法采用的无约束优化策
略存在某些参数会被优化到与其物理含义冲突的区间以及某些音素会被过度
优化的情况,在实际观察中发现,每个音素持续时间中点处对应的唇形并不完
全相同,甚至像双唇塞音([p],[b],[m])这样发音时需要闭合双唇且受周
围音影响较小的音,其音素持续时间中点处的唇形也并非总是闭合的,如图4
所示(其中,“均值”图显示的全部实例的平均形状,其它图的为一些具体实
例的唇形。可以看到,平均形状的唇形总体是闭合的,说明大部分实例的持续
时间中点处的唇形是闭合的(如形状6所示),这与音素[b]的唇形特性是一致
的,但是也存在部分实例的唇形完全没有闭合甚至张开十分明显,如形状
16/24/69所示)。
发明专利“一种语音和文本联合驱动的卡通人脸动画生成方法”包括建
立语音视位映射库、文本分析、语音切分及语音合并、视位参数拼接步骤;本
发明的优点在于:能够自定义音节-视位映射,从而实现各种具有夸张表情效
果的唇型和脸形,最终合成卡通人脸动画;不需要大规模数据库进行训练;能
够在文本的指导下,进行语音切分,提取音节时长信息,从而合成具有唇型和
表情同步的人脸动画。但是该发明在视位拼接平滑的过程中采用三阶埃尔米特
函数进行处理的,而本发明的方法中控制函数采用自动训练的方法,采用AAM
方法跟踪训练数据的特征点,从而计算出平滑函数的参数,从而生成出较高真
实度和实时性的人脸动画。
发明内容
针对现有技术的不足,本发明提出一种文本语音驱动的人脸动画生成方法
及系统。
本发明提出一种文本语音驱动的人脸动画生成方法,包括:
步骤1,采集文本语音信息,所述文本语音信息包括语音信息与人脸图像
信息,对所述文本语音信息进行预处理操作,获取所述语音信息中每个音素的
时间信息,及获取所述人脸图像信息中人脸特征参数;
步骤2,根据所述时间信息与所述人脸特征参数,进行参数自动训练操作,
获取控制函数参数,其中根据所述时间信息与所述人脸特征参数,设置控制函
数参数初始值,并计算拟合曲线,及所述拟合曲线与真实曲线之间的拟合误差,
根据所述时间信息、所述人脸特征参数、所述控制函数参数初始值,计算
Jacobian矩阵,并根据梯度下降法,计算所述时间信息、所述人脸特征参数
的变化值,根据所述变化值更新所述时间信息、所述人脸特征参数,重复步骤
2,直到所述拟合误差达到稳定状态;
步骤3,获取新输入的语音信息,结合所述控制参数函数,计算拟合曲线,
并生成2D人脸特征点向量,将所述2D人脸特征点向量重定向到三维人头模型
上,以完成人脸动画生成。
所述的文本语音驱动的人脸动画生成方法,所述步骤1中预处理操作包括
对所述语音信息进行音素标注,标出所述语音信息中每个句子的每个音素的时
间信息;
获取所述人脸图像信息中人脸特征点的位置,并以正脸图像的人脸特征点
的位置为模板,对每帧的人脸特征点进行对齐,并对人脸特征点的位置坐标组
成的向量进行降维。
所述的文本语音驱动的人脸动画生成方法,所述步骤2中计算拟合曲线的
公式为
z ( t ) = Σ i = 1 N T i D i ( t ) Σ i = 1 N D i ( t ) ]]>
其中z(t)为拟合曲线,T为所述语音信息中音素的目标值T,N为所述语
音信息中音素的个数,Di(t)为控制函数参数,t为时间,i为所述语音信息中
的音素。
所述的文本语音驱动的人脸动画生成方法,所述步骤2中计算拟合误差的
公式为
e(x)=(z-y)T(z-y)
x = arg min x e ( x ) ]]>
其中x为待优化的所述语音信息与所述人脸图像信息,所述拟合曲线,y
为所述真实曲线,e(x)为拟合误差。
所述的文本语音驱动的人脸动画生成方法,所述步骤3包括根据包含中性
表情的2D人脸特征点向量与中性稀疏表情基,训练RBF映射,根据所述RBF
映射,获取用户稀疏表情基;对于新输入的2D人脸特征点向量,获取稀疏表
情基权值,并通过计算获取的权值加权对应稠密表情基生成人脸动画。
本发明还提出一种文本语音驱动的人脸动画生成系统,包括:
预处理模块,用于采集文本语音信息,所述文本语音信息包括语音信息与
人脸图像信息,对所述文本语音信息进行预处理操作,获取所述语音信息中每
个音素的时间信息,及获取所述人脸图像信息中人脸特征参数;
计算拟合误差模块,用于根据所述时间信息与所述人脸特征参数,进行参
数自动训练操作,获取控制函数参数,其中根据所述时间信息与所述人脸特征
参数,设置控制函数参数初始值,并计算拟合曲线,及所述拟合曲线与真实曲
线之间的拟合误差,根据所述时间信息、所述人脸特征参数、所述控制函数参
数初始值,计算Jacobian矩阵,并根据梯度下降法,计算所述时间信息、所
述人脸特征参数的变化值,根据所述变化值更新所述时间信息、所述人脸特征
参数,重复步骤2,直到所述拟合误差达到稳定状态;
生成人脸动画模块,用于获取新输入的语音信息,结合所述控制参数函数,
计算拟合曲线,并生成2D人脸特征点向量,将所述2D人脸特征点向量重定向
到三维人头模型上,以完成人脸动画生成。
所述的文本语音驱动的人脸动画生成系统,所述预处理模块中预处理操作
包括对所述语音信息进行音素标注,标出所述语音信息中每个句子的每个音素
的时间信息;
获取所述人脸图像信息中人脸特征点的位置,并以正脸图像的人脸特征点
的位置为模板,对每帧的人脸特征点进行对齐,并对人脸特征点的位置坐标组
成的向量进行降维。
所述的文本语音驱动的人脸动画生成系统,所述计算拟合误差模块中计算
拟合曲线的公式为
z ( t ) = Σ i = 1 N T i D i ( t ) Σ i = 1 N D i ( t ) ]]>
其中z(t)为拟合曲线,T为所述语音信息中音素的目标值T,N为所述语
音信息中音素的个数,Di(t)为控制函数参数,t为时间,i为所述语音信息中
的音素。
所述的文本语音驱动的人脸动画生成系统,所述计算拟合误差模块中计算
拟合误差的公式为
e(x)=(z-y)T(z-y)
x = arg min x e ( x ) ]]>
其中x为待优化的所述语音信息与所述人脸图像信息,所述拟合曲线,y
为所述真实曲线,e(x)为拟合误差。
所述的文本语音驱动的人脸动画生成系统,所述生成人脸动画模块包括根
据包含中性表情的2D人脸特征点向量与中性稀疏表情基,训练RBF映射,根
据所述RBF映射,获取用户稀疏表情基;对于新输入的2D人脸特征点向量,
获取稀疏表情基权值,并通过计算获取的权值加权对应稠密表情基生成人脸动
画。
由以上发明可知,本发明的优点在于:
如图6所述为本发明系统运行效果图,本发明为输入语音生成同步的唇形
动画和表情动画,具有较高的可视语音合成的真实度和时效性,从而使应用具
有更友好的交互体验。
附图说明
图1示出了基于规则的合成示意;
图2示出了各参数对控制函数曲线形状的影响;
图3示出了控制函数插值示意;
图4示出了音素[b]的中心时刻的唇形示例;
图5特征点的位置及标号;
图6示出了系统运行效果图。
具体实施方式
以下为本发明整体步骤,如下所示:
本发明一种文本语音驱动的人脸动画生成方法,包括:
步骤1,采集文本语音信息,所述文本语音信息包括语音信息与人脸图像
信息,对所述文本语音信息进行预处理操作,获取所述语音信息中每个音素的
时间信息,及获取所述人脸图像信息中人脸特征参数;
步骤2,根据所述时间信息与所述人脸特征参数,进行参数自动训练操作,
获取控制函数参数,其中根据所述时间信息与所述人脸特征参数,设置控制函
数参数初始值,并计算拟合曲线,及所述拟合曲线与真实曲线之间的拟合误差,
根据所述时间信息、所述人脸特征参数、所述控制函数参数初始值,计算
Jacobian矩阵,并根据梯度下降法,计算所述时间信息、所述人脸特征参数
的变化值,根据所述变化值更新所述时间信息、所述人脸特征参数,重复步骤
2,直到所述拟合误差达到稳定状态;
步骤3,获取新输入的语音信息,结合所述控制参数函数,计算拟合曲线,
并生成2D人脸特征点向量,将所述2D人脸特征点向量重定向到三维人头模型
上,以完成人脸动画生成。
所述步骤1中预处理操作包括对所述语音信息进行音素标注,标出所述语
音信息中每个句子的每个音素的时间信息;
获取所述人脸图像信息中人脸特征点的位置,并以正脸图像的人脸特征点
的位置为模板,对每帧的人脸特征点进行对齐,并对人脸特征点的位置坐标组
成的向量进行降维。
所述步骤2中计算拟合曲线的公式为
z ( t ) = Σ i = 1 N T i D i ( t ) Σ i = 1 N D i ( t ) ]]>
其中z(t)为拟合曲线,T为所述语音信息中音素的目标值T,N为所述语
音信息中音素的个数,Di(t)为控制函数参数,t为时间,i为所述语音信息中
的音素。
所述步骤2中计算拟合误差的公式为
e(x)=(z-y)T(z-y)
x = arg min x e ( x ) ]]>
其中x为待优化的所述语音信息与所述人脸图像信息,所述拟合曲线,y
为所述真实曲线,e(x)为拟合误差。
所述步骤3包括根据包含中性表情的2D人脸特征点向量与中性稀疏表情
基,训练RBF映射,根据所述RBF映射,获取用户稀疏表情基;对于新输入的
2D人脸特征点向量,获取稀疏表情基权值,并通过计算获取的权值加权对应
稠密表情基生成人脸动画。
本发明还提出一种文本语音驱动的人脸动画生成系统,包括:
预处理模块,用于采集文本语音信息,所述文本语音信息包括语音信息与
人脸图像信息,对所述文本语音信息进行预处理操作,获取所述语音信息中每
个音素的时间信息,及获取所述人脸图像信息中人脸特征参数;
计算拟合误差模块,用于根据所述时间信息与所述人脸特征参数,进行参
数自动训练操作,获取控制函数参数,其中根据所述时间信息与所述人脸特征
参数,设置控制函数参数初始值,并计算拟合曲线,及所述拟合曲线与真实曲
线之间的拟合误差,根据所述时间信息、所述人脸特征参数、所述控制函数参
数初始值,计算Jacobian矩阵,并根据梯度下降法,计算所述时间信息、所
述人脸特征参数的变化值,根据所述变化值更新所述时间信息、所述人脸特征
参数,重复步骤2,直到所述拟合误差达到稳定状态;
生成人脸动画模块,用于获取新输入的语音信息,结合所述控制参数函数,
计算拟合曲线,并生成2D人脸特征点向量,将所述2D人脸特征点向量重定向
到三维人头模型上,以完成人脸动画生成。
所述预处理模块中预处理操作包括对所述语音信息进行音素标注,标出所
述语音信息中每个句子的每个音素的时间信息;
获取所述人脸图像信息中人脸特征点的位置,并以正脸图像的人脸特征点
的位置为模板,对每帧的人脸特征点进行对齐,并对人脸特征点的位置坐标组
成的向量进行降维。
所述计算拟合误差模块中计算拟合曲线的公式为
z ( t ) = Σ i = N N T i D i ( t ) Σ i = N N D i ( t ) ]]>
其中z(t)为拟合曲线,T为所述语音信息中音素的目标值T,N为所述语
音信息中音素的个数,Di(t)为控制函数参数,t为时间,i为所述语音信息中
的音素。
所述计算拟合误差模块中计算拟合误差的公式为
e(x)=(z-y)T(z-y)
x = arg min x e ( x ) ]]>
其中x为待优化的所述语音信息与所述人脸图像信息,所述拟合曲线,y
为所述真实曲线,e(x)为拟合误差。
所述生成人脸动画模块包括根据包含中性表情的2D人脸特征点向量与中
性稀疏表情基,训练RBF映射,根据所述RBF映射,获取用户稀疏表情基;对
于新输入的2D人脸特征点向量,获取稀疏表情基权值,并通过计算获取的权
值加权对应稠密表情基生成人脸动画。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对
根据本发明做进一步详细说明,应当理解,此处所描述的具体实施例仅用以解
释本发明,并不用于限定本发明。
控制函数参数训练,通过最小化合成曲线z与原始曲线y之间的误差,确
定最终的控制函数参数。具体过程如下:
步骤10对采集的训练数据进行预处理,包括对语音的处理和对图像的处
理,具体如下:
步骤101,语音标注:对语音信息(音频)进行音素标注(共有55类不
同音素),标出音频中每个句子的每个音素的时间信息;
步骤102,人脸特征参数提出:首先,使用AAM特征点跟踪方法获取每帧
图像的43个预定义的人脸特征点位置(如图5所示);然后,使用手工挑选的
正脸图像的人脸特征点位置为模板,对每帧的人脸特征点进行对齐,以除去采
集过程中演员的头部运动;最后,对特征点坐标组成的86维向量进行PCA降
维,获得7维的人脸特征参数向量。
步骤11参数自动训练,使用训练数据中的前200句子作为训练数据,后
45个句子作为测试数据,进行参数训练。本发明认为人脸参数每维是彼此独
立的,因此对每一维分别训练一组控制函数参数,具体训练过程包如下:
步骤111,首先,根据实际数据,设置参数初始值,即根据训练数据中音
素的实际平均持续时间、平均可视语音参数值设置其控制函数参数初值,使得
控制函数曲线形状分布与音素的实际参数情况一致;
步骤112,然后,由参数当前值,根据下列公式求解拟合曲线、计算拟合
曲线和训练数据的真实曲线的拟合误差,其中基于负指数形式的控制函数
(DominanceFunction)插值的可视语音合成方法是基于规则合成方法中的经
典方法,控制函数描述了片段对发音器官某个部位的作用强度的变化过程,以
作用强度最大的时间点为中心,向两侧逐渐下降,其数学形式如下:
其中,τi为片段i的时间中心,即片段作用强度最大的时刻;αi为控制
函数的幅值,用于控制片段受相邻片段的影响程度,该值越小表示片段越容易
受周围片段的影响;θi和φi控制曲线前后部分的下降,分别用于控制片段对
其前后片段的影响,即逆化协同发音和重复式协同发音效果;ci控制曲线前后
部分下降的速率,该值越大曲线顶部越平缓,其中e为数学常数,t为音素出
现时间,Di(t)为音素控制函数参数。
给定每个片段(语音信息中音素)的目标值T和控制函数D,通过对目标
值T进行插值生成连续曲线,曲线z在t时刻的值由如下公式给出:
z ( t ) = Σ i = 1 N T i D i ( t ) Σ i = 1 N D i ( t ) - - - ( 2 ) ]]>
其中,N为片段的数目,即句子中包含的音素个数。图3展示了包含三个
片段的控制函数插值示意。
该方法通过插值生成连续动画的特性使得算法本身具有较好的实时性,其
难点在于控制函数参数的设置:手动设置控制函数参数往往十分繁琐,且工作
量巨大;传统的自动训练控制函数参数的方法,一般对训练数据的音素格式有
特定要求,因此灵活性较差,而JonasBeskow介绍的自动训练方法,直接使
用自然句子作为训练数据,因而更具实用性,通过最小化合成曲线z与原始曲
线y之间的误差,确定最终的控制函数参数,因此,参数训练问题转化为最小
二乘形式的优化问题,其形式如下:
e(x)=(z-y)T(z-y)(3)
x = arg min x e ( x ) - - - ( 4 ) ]]>
其中,x表示全部待优化参数,即全部55类音素的T,α,θ,φ,c和
r组成的330维的参数向量,这里,为了使得音素的作用中心可变,本发明引
入变量r,使得τi=center+ri·duration,ri∈[-0.5,0.5],其中,
duration为音素的持续时间,center为持续时间中点,注意:每个音素的不
同实例,其持续时间并不一定相同,r表示音素作用中心偏离持续时间中点的
程度。
步骤113,再次,根据式(5)-(11)求解Jacobian矩阵,然后根据梯度下
降法,求解处参数值的变化,根据变化值更新参数;重复步骤112和步骤113,
直到使用测试句子的拟合误差不再降低。测试句子的拟合误差求解方法与步骤
112相同,其中通过以下方法求解jacobian矩阵:
对于此类高维优化问题,给出显示的Jacobian矩阵能使得优化具有更好
的收敛速度,给出一阶偏导公式如下:
∂ z ( t ) ∂ T i = D i ( t ) Σ j = 1 N D j ( t ) - - - ( 5 ) ]]>
∂ z ( t ) ∂ ψ i = ∂ D i ( t ) ∂ ψ i · T i Σ j = 1 N D j ( t ) - Σ j = 1 N T j D j ( t ) ( Σ j = 1 N D j ( t ) ) 2 - - - ( 6 ) ]]>
其中,(6)式中ψi为中间变量,可用αi,θi,φi,ci,ri替换,其中N
为所述语音信息中音素的个数,j为所述语音信息中的音素,表示对函数求
偏导数。
∂ D i ( t ) ∂ θ i = D i ( t ) · - ( τ i - t ) c i t < τ i 0 t ≥ τ i - - - ( 8 ) ]]>
由此可知,本发明使用带约束的优化算法优化求解控制函数参数值,
表1展示了每类参数的上下界的具体值。
表1
步骤12合成阶段:为输入句子生成唇形动画。具体步骤如下:
步骤121,对于给定的输入语音信息(所述语音信息包括音素序列及音素
持续时间信息),使用训练好的控制函数参数,根据式(2)求解拟合曲线。
步骤122,使用PCA参数矩阵将求得的7维可视语音参数恢复成86维的
2D人脸特征点向量,从而得到包含43个特征点的帧动画序列。
步骤123,使用表情基动画方法,将2D人脸特征点向量重定向到三维人
头模型上。首先,预定义三维模型的中性表情模型和24个稠密表情基,此步
骤通常需要美工参与;然后,标注43个2D特征点对应的三维模型上的位置,
并以此对应关系生成每个稠密表情基的稀疏表情基。2D人脸特征点运动重定
向到三维人头模型具体步骤如下:准备阶段,使用包含中性表情的2D人脸特
征点与中性稀疏表情基,训练RBF映射,通过此RBF映射,求出对应的24个
用户稀疏表情基;然后,对于新输入的2D人脸特征点:首先使用表情基优化
方法,求解稀疏表情的24个稀疏表情基权值,然后使用求得的权值加权对应
稠密表情基生成动画。