基于动态基元选取的语音驱动三维人脸动画方法

文档序号:6631693阅读:285来源:国知局
专利名称:基于动态基元选取的语音驱动三维人脸动画方法
技术领域
本发明涉及语音驱动人脸动画的多模态人机交互领域,尤指一种基于动态基元选取的语音驱动三维人脸动画方法。
背景技术
能说会道的人脸界面(Talking Head)在聋人服务,信息传播,影视娱乐,动画游戏以及人机交互等多项应用中存在广泛的应用前景,但目前这项技术还没有能普及和推广应用起来,主要瓶颈在于语音与人脸的实时同步处理以及人脸动画本身的逼真感与可懂度还没有达到要求,其原因在于用户对人脸及其运动太熟悉,对其运动实时同步性非常敏感,同时人脸运动是非刚体的运动过程存在大量的细节变化,非常复杂。因此,要实现语音驱动人脸动画的关键在于研究语音与唇动之间的同步关联关系以及逼真人脸动画合成方法。
按照“Picture My Voice”定义,任何一个可视化语音合成系统都可划分为四个步骤进行建立一个audio-visual多模态数据库;给出语音视频特征表示;找到一种方法描述两部份特征间的关联关系;根据语音序列进行可视化合成。
到目前为止,可视化语音合成领域尚不存在一个统一通用的多模态数据库,因此建立一个数据库是所有工作的基础。许多研究机构都自行录制实验必须的多模态数据库,有的录制二维连续视频,提取感兴趣区域;有的通过三维激光扫描仪截取静态视位;有的则通过二维--三维重建技术从视频中回复特征点的三维坐标。
准确地提取音视频特征向量通常也是系统实现的难点所在,对于音频,不少人对文本语言单元进行分类分析,但是工作量很大,人工干预程度也高,因此提取语音信号的声学、韵律特征已成为主要方法,但是特征的选择组合对唇形的影响仍然有待进一步的分析。对于视频,动态视位、光流、三维位置坐标,距离分量都被提取用作视频特征。
语音人脸实时同步关联控制是Talking Head合成的瓶颈问题,由于语音和人脸表情运动之间是多对多的复杂映射关系,同时人们对语音人脸运动的同步又十分敏感,使得实现语音驱动人脸动画成为具有挑战性的研究课题。目前的语音驱动研究可分为两类通过语音识别和不通过语音识别。第一种方法是通过将语音分割成语言单元,如音素(Phoneme),视觉基元(Viseme)以及更进一步音节(syllable),随后将这些语言单元直接映射到嘴唇姿势后用拼接法合成。Yamamoto E.通过训练隐马尔可夫模型(HMM)识别音素,然后直接对应到相应的唇形,经过平滑后得到唇动序列,这一方法过多地依赖文本语言种类,且没有考虑到上下文的信息。第二种方法是绕过语音基元这种形式,利用统计学习的方法通过数学模型,在大量数据的基础上,对双模式数据进行统计分析,或利用神经网络,线性预测函数进行映射学习,找到语音信号与控制参数之间的映射关系,然后直接驱动嘴唇运动。基于神经网络的方法试图找到语音人脸动画之间的实时非线性映射关系。D.W.Massaro等训练多层感知机用来学习LPC参数到人脸动画参数的映射。他们试图通过考虑前后各五帧语音分析窗来模型化语音的上下文关系,但是神经网络方法容易造成过训练结果,也是一个需要人工经验控制的环节。
目前计算机生成的人脸动画通常都基于网格模型,这种模型是由几何网格与纹理组成,已经普遍被大家所采用。鉴于参数人脸合成往往难以生成理想三维表达效果,近一段时间,许多人开始采用直接数据驱动的方法。到目前为止,基于数据驱动的方法主要有三种不同的实现方式图像序列拼接的方法、关键帧变形的方法、人脸部件组合的方法。但是使用参数人脸模型依然有数据量小、便于移植的优点。

发明内容
本发明涉及一种基于动态基元选取的语音驱动三维人脸动画方法,可应用于多媒体人机交互系统,使用运动实时捕获设备,建立多模态数据库;同时运用语音分析、运动分析技术提取语音视频特征;以音素为基元单位对多模态数据进行同步分割;对用户给定的语音序列,计算每个基元的音频匹配误差和前后基元间的视觉匹配误差,最后在候选的基元中动态地选择一条最佳路径,输出与语音序列同步的人脸动画参数序列,以驱动三维人脸动画模型,将输入的任何用户的任何语言的语音转换成语音和三维人脸动画的同步输出,将输入的任何用户的任何语言的语音转换成语音和三维人脸动画的同步输出。
为了达到上述目的,本发明提供了一种基于动态基元选取的语音驱动人脸动画方法,包括步骤A.采用运动实时捕获系统创建多模态数据库;B.对多模态数据进行音视频分析,分别获得相应的特征向量;C.以音素为基元单位对多模态数据进行同步分割;D.采用动态基元选取方法,输出与用户输入语音同步的人脸动画参数序列。
依照本发明提供的方法,使得系统输出的动画序列保持较好的真实度和自然度,并适用于多用户和多语言的语音驱动。
该系统容易实现,且输出的动画序列保持较好的真实度和自然度,并适用于多用户和多语言的语音驱动。本发明可应用于多媒体人机交互系统。


图1语音驱动人脸动画系统框架图。
图2实验对象人脸特征点选择和采集样本图。
图3 MPEG-4定义的部分人脸特征点和FAP(人脸动画参数)单元图。
图4动态基元选取示意图。
图5合成的人脸动画参数序列(FAP 51和FAP 52)与录制的参数序列的比较图。
图6语音驱动三维人脸动画示例中的部分帧图。
具体实施例方式
1.语音驱动人脸动画系统框架说明(图1)系统框架实现分为两个过程训练过程和动画过程。
训练过程包括语音-视频多模态数据库、视频特征处理、音频特征处理和语音-视频基元分割存储四个部分。视频特征处理包括姿态标准化、刚体运动补偿和FAP参数提取三个部分。音频特征处理包括声学参数提取部分。
动画过程包括声学参数提取、基元提取、FAP参数序列合成、平滑算法和驱动人脸动画模型五个部分。
2.采用运动实时捕获系统创建多模态数据库(图2、图3)a)首先采用三维运动实时捕获系统创建多模态数据库,如图3所示在实验者脸上,粘贴50个与MPEG-4人脸动画标准定义一致的部分特征点,图3(a)表示定义的人脸基本FAP单元,图3(b)表示部分人脸定义的部分特征点;如图2所示其中5个粘于头部发带,用来补偿头部刚体运动。
b)语料实验库大小为训练语库286个句子,每句录5次,4次用作训练样本,1次用作验证样本;测试语库9个句子。
c)使用运动实时捕获系统和摄像机同步录制人脸运动信息和语音信息。特征点的三维坐标存于.trb文件,语音信息存于视频.avi文件。
2.对多模态数据进行音视频分析,分别获得相应的特征向量为了对多模态数据进行音视频分析,必须对两者分流,分别提取相应的特征向量。
a)由于实验者在实验中,头部和身体有不可避免的左右或前后摆动,为了获得脸部精确的非刚体运动信息,所以对于运动捕获系统获得的特征点运动坐标信息d={x1,y1,z1,...,xn,yn,zn}T∈R3n,n=45,首先要进行刚体运动补偿。将头部的5个标记点作为参考目标,因为它们只含有头部刚体运动。假设有两组三维特征点的坐标集{pi},{qi},i=1,...,5,分别代表同一组三维特征点运动前的坐标和运动后的坐标,那么两者间有以下关系qi=Rpi+t,i=1,...,5。(1)根据最小二乘法原则Σ2=Σi=1n||Rpi+t-qi||2,]]>通过奇异值分解关联矩阵,求得旋转矩阵R和转移矩阵t的最优解,然后对每一帧的其他45个点的三维坐标应用公式1的反变换运算,即得出人脸的非刚体运动信息。
b)计算每一帧特征点坐标与中性帧坐标的差值Δdt={Δx1,Δy1,Δz1...,Δxn,Δyn,Δzn}T∈R3n,n=45,同时计算出按MPEG-4定义的各特征点尺度参考量FAP单元D={D1,D2,...,Dn},即可根据公式FAPit=((Δxi|Δyi|Δzi)/Di)*1024]]>得到第t帧的第i个人脸运动参数。最后我们对每帧共提取了与唇部运动有关的15个参数(见表1)ν→t={FAP1t,FAP2t,...,FAP15t}T,]]>因此一个m帧的数据样本中的视频特征向量可以表示为V={ν→1,ν→2,...,ν→m}T]]>


表1提取的15个FAP参数c)把语音从.avi文件中分离出来,经过对语音信号去除环境噪声、增益放大等处理,然后提取海明窗中语音数据的16阶Mel频标倒谱参数(MFCC)作为语音特征向量a→t={c1t,c2t,...,c16t}T]]>表示第t帧的语音特征向量,因此一个m帧的数据样本中的语音特征向量可以表示为A={a→1,a→2,...,a→m}T]]>3.以音素为基元单位对多模态数据进行同步分割为了同步语音与视频特征向量,所以须以音素为基元单位对多模态数据进行同步分割。
a)对于音频,语音分析窗大小为WinSize=27ms,分析窗的位移为WinMove=5ms,所以音频采样率AudioFrameSample=1*1000/WinMove=200Hz/s,同时视频采样率为VideoFrameSample=75Hz/s。
b)因此可计算视频帧与音频帧的比值为n=AudioFrameSample/VideoFrameSamle,然后根据比值n划分出同步audio-video特征集。
c)对于音频,以音素为基元给出边界标记和句号记录。
所有训练数据在经过上述处理后以基元为单位存于训练数据库中,以备在动态基元选取阶段被提取出来进行匹配。
4.采用动态基元选取方法,输出与语音同步的人脸动画参数序列(图4)a)对于用户输入的新的语音序列,首先提取语音特征;b)然后对每个音素基元,根据音频匹配误差Cα和前后基元间的视觉匹配误差Cν在训练数据库里提取候选基元。
c)首先计算音频匹配误差Cα
i.对每个音素基元判断其是否是韵母或声母,对于韵母,考虑前两个和后两个基元的上下文信息;对于声母,考虑前一个和后一个基元的上下文信息。
ii.上下文信息的计算,采用线性函数表示协同发音系数,即当前基元的协同发音系数最大,前一个基元和后一个基元中每帧的协同发音系数按线性递减。
iii.计算出的音频匹配误差为Ca=Σt=1nΣmwma(tt+m,ut+m),m=[-1,0,+1]or[-2,-1,0,+1,+2],]]>,wm为协同发音系数,a(tt+m,ut+m)为基元间声学特征欧氏距离。为了减少Viterbi算法搜索路径的复杂度,本方法设定候选基元的数目上限为10个。
d)然后计算前后基元间的视觉匹配误差Cνi.对每个音素基元考虑前后基元间的匹配平滑程度,计算前一个基元的最后一帧和后一个基元最开始一帧的人脸运动参数的匹配度。
ii.计算出的视觉匹配误差为Cν=Σt=2nν(ut-1,ut),]]>ν(ut-1,ut)为相邻两个基元相邻视频帧间视频参数的欧氏距离。
e)最后计算总的代价函数COST=αCα+(1-α)Cν。如图4所示当一个句子完成后,用Viterbi算法寻找一条最佳路径是总代价函数最小,连接起来就是一个连续人脸运动参数序列。
f)对参数序列进行平滑处理,输入三维人脸模型,驱动人脸动画。
5.实验结果评价(图5、图6)在这里给对本方法实验结果的定性和定量的评估。定量评估是将输出的合成参数序列与数据库里录制的样本的参数序列之间的误差进行计算。相关系数(公式2)能反应曲线轨迹变化的方差相似度,因此被用来计算衡量两者的误差。同时也进行了开集(测试集不包含训练数据)和闭集(测试集包含训练数据)的测试,表2给出整个数据库里合成参数序列的平均相关系数。同时,如图5所示,也给出了一个验证样本和一个测试样本的合成参数序列与真实录制参数序列的曲线比较图,图5(a)是一个验证样本的FAP#51和FAP#52的合成序列和真实录制序列的比较图,图5(b)是一个测试样本的的FAP#51和FAP#52的合成序列和真实录制序列的比较图。
CC=1TΣt=1T(f^(t)-μ^)(f(t)-μ)σ^σ·---(2)]]>

表2整个数据库合成FAP参数的平均相关系数对于人脸动画合成最终给出定性的分析,即感知观测到的动画序列是否真实、自然。因此对参数序列进行平滑处理,输入三维人脸模型,驱动人脸动画,如图6所示。
本发明涉及一种基于动态基元选取的语音驱动三维人脸动画方法,可应用于多媒体人机交互系统,将输入的任何用户的任何语言的语音转换成语音和三维人脸动画的同步输出。应用本方法获得的实验结果无论从定量评估或定性评估都取得了较好的实验结果,同时请非特定人输入新的语音序列,合成效果也很真实、自然。因此本发明提供的基于动态基元选取的语音驱动人脸动画方法容易实现,且合成结果保持较好的真实度和自然度,并适用于多用户和多语言。
权利要求
1.一种基于动态基元选取的语音驱动人脸动画方法,其特征是使用运动实时捕获设备,建立多模态数据库;同时运用语音分析、运动分析技术提取语音视频特征;以音素为基元单位对多模态数据进行同步分割;对用户给定的语音序列,计算每个基元的音频匹配误差和前后基元间的视觉匹配误差,最后在候选的基元中动态地选择一条最佳路径,输出与语音序列同步的人脸动画参数序列,以驱动三维人脸动画模型,将输入的任何用户的任何语言的语音转换成语音和三维人脸动画的同步输出,包括步骤A.采用运动实时捕获系统创建多模态数据库;B.对多模态数据进行音视频分析,分别获得相应的特征向量;C.以音素为基元单位对多模态数据进行同步分割;D.采用动态基元选取方法,输出与用户输入语音同步的人脸动画参数序列。
2.根据权利要求1所述的方法,其特征在于采用运动实时捕获系统创建多模态数据库,包括步骤a)在实验者脸上,粘贴50个与MPEG-4人脸动画标准定义一致的特征点,其中5个粘于头部发带,用来补偿头部刚体运动;b)语料实验库大小训练语库286个句子,每句录5次,4次用作训练样本,1次用作验证样本;测试语库9个句子;c)使用运动实时捕获系统录制人脸运动时,特征点的坐标信息和同步的语音信息。
3.根据权利要求1所述的方法,其特征在于对多模态数据进行音视频分析,分别获得相应的特征向量,包括步骤a)对运动捕获系统获得的特征点运动坐标信息d={x1,y1,z1,...,xn,yn,zn,}T∈R3n,n=45,进行刚体运动补偿,对头部的5个标记点坐标应用基于最小二乘法的三维点匹配,估计出头部刚体运动qi=Rpi+t,i=1,...,5,然后对每一帧的其他45个点的三维坐标应用式1的反变换运算,即得出人脸的非刚体运动信息;b)计算每一帧特征点坐标与中性帧坐标的差值Δdi={Δx1,Δy1,Δz1,...,Δxn,Δyn,Δzn}T∈R3n,n=45,同时计算出按MPEG-4定义的各特征点尺度参考量FAP单元D={D1,D2,...,Dn},即可根据公式FAPit=((Δxi|Δyi|Δzi)/Di)*1024得到第t帧的第i个人脸运动参数,最后我们对每帧共提取了与唇部运动有关的15个参数v→t={FAP1t,FAP2t,...,FAP15t}T;]]>c)对于音频,提取海明窗中语音数据的16阶Mel频标倒谱参数(MFCC)作为语音特征向量。
4.根据权利要求1所述的方法,其特征在于以音素为基元单位对多模态数据进行同步分割,包括步骤a)对于音频,语音分析窗大小为WinSize=27ms,分析窗的位移为WinMove=5ms,所以音频采样率AudioFrameSample=1*1000/WinMove=200Hz/s,同时视频采样率为VideoFrameSample=75Hz/s;b)视频帧与音频帧的比值为n=AudioFrameSample/VideoFrameSamle,根据比值n划分出同步audio-video特征集;c)对于音频,以音素为基元给出边界标记和句号记录。
5.根据权利要求1所述的方法,其特征在于采用动态基元选取方法,输出与用户输入语音同步的人脸动画参数序列,包括步骤a)给定新的语音,提取语音特征;b)对每个音素基元,根据音频匹配误差Ca和前后基元间的视觉匹配误差Cv在训练数据库里提取候选基元;c)音频匹配误差Ca计算i.对于每个音素基元对其是否是韵母和声母进行区分,对于韵母,考虑前两个和后两个基元的上下文信息;对于声母,考虑前一个和后一个基元的上下文信息;ii.计算上下文信息,采用线性函数表示协同发音系数;iii.计算出的音频匹配误差为Ca=Σi=1nΣmwma(tt+m,ut+m),m=[-1,0+1]or[-2,-1,0,+1,+2]]]>,wm为协同发音系数,α(tt+m,ut+m)为基元间声学特征欧氏距离;d)视觉匹配误差Cv计算i.对每个音素基元考虑前后基元间的匹配平滑程度,计算前一个基元的最后一帧和后一个基元最开始一帧的人脸运动参数的匹配度;ii.计算出的视觉匹配误差为Cv=Σi=2nv(ut-1,ut)]]>,v(ut-l,ut)为相邻两个基元相邻视频帧间视频参数的欧氏距离;e)计算总的代价函数COST=αCa+(1-α)Cv,当一个句子完成后,用Viterbi算法寻找一条最佳路径是总代价函数最小,连接起来就是一个连续人脸运动参数序列;f)对参数序列进行平滑处理,输入三维人脸模型,驱动人脸动画。
全文摘要
本发明公开了一种基于动态基元选取的语音驱动人脸动画方法,将输入的任何用户的任何语言的语音转换成语音和三维人脸动画的同步输出。此方法基于采用运动实时捕获系统建立的多模态数据库,对多模态数据进行音视频分析,分别获得相应的特征向量;以音素为基元单位对多模态数据进行同步分割;对用户给定的语音序列,计算每个基元的音频匹配误差和前后基元间的视觉匹配误差,最后在候选的基元中动态地选择一条最佳路径,输出与语音序列同步的人脸动画参数序列,以驱动三维人脸动画模型。本发明的方法,使得系统输出的动画序列保持较好的真实度和自然度,并适用于多用户和多语言的语音驱动。
文档编号G06F3/00GK1952850SQ20051008664
公开日2007年4月25日 申请日期2005年10月20日 优先权日2005年10月20日
发明者陶建华, 尹潘嵘 申请人:中国科学院自动化研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1