CN116912376A - 口型动画生成方法、装置、计算机设备和存储介质 - Google Patents
口型动画生成方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116912376A CN116912376A CN202311184566.XA CN202311184566A CN116912376A CN 116912376 A CN116912376 A CN 116912376A CN 202311184566 A CN202311184566 A CN 202311184566A CN 116912376 A CN116912376 A CN 116912376A
- Authority
- CN
- China
- Prior art keywords
- weight
- moment
- action unit
- sequence
- vision
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000009471 action Effects 0.000 claims abstract description 771
- 230000000007 visual effect Effects 0.000 claims abstract description 398
- 230000008859 change Effects 0.000 claims abstract description 244
- 238000004590 computer program Methods 0.000 claims description 25
- 230000002123 temporal effect Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000000875 corresponding effect Effects 0.000 description 607
- 230000033001 locomotion Effects 0.000 description 135
- 210000001097 facial muscle Anatomy 0.000 description 69
- 210000003205 muscle Anatomy 0.000 description 29
- 238000010586 diagram Methods 0.000 description 12
- 238000005457 optimization Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 150000004492 retinoid derivatives Chemical class 0.000 description 6
- 125000002678 retinoid group Chemical group 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000036961 partial effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 206010049040 Weight fluctuation Diseases 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 238000001943 fluorescence-activated cell sorting Methods 0.000 description 2
- 229940037201 oris Drugs 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/205—3D [Three Dimensional] animation driven by audio data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
- G06T2207/30201—Face
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请涉及一种口型动画生成方法,包括:从音频中提取出音素序列,将音素序列转换为视素序列,音素序列中的音素与视素序列中的视素按时刻对应,每个视素包括动作单元;获取视素序列各时刻的视素中的动作单元对应的基础权重,以及各时刻的视素的时间关系;基于各时刻的视素中的动作单元对应的基础权重和时间关系,按照预设的权重约束条件,确定视素序列各时刻视素中的动作单元对应的目标权重;权重约束条件用于通过约束目标权重约束口型变化;根据视素序列各时刻的视素,以及每个视素包括的动作单元对应的目标权重,生成口型动画,口型动画中口型随音频的播放声音同步变化。采用本方法能够提高生成口型动画的准确性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种口型动画生成方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,出现了程序化口型动画生成技术,程序化口型动画生成技术从音频文件提取音素,根据预先定义的规则,自动生成虚拟角色的口型动画的技术。
传统技术中,一般采用“智能降采样”的规则,对视素列表进行了一些舍弃。即,根据每个视素的重要程度,按照一定的规则丢弃一部分不重要的视素,并保留像“B”、“M”、“P”这类比较重要的视素。
然而,虚拟角色的口型与面部肌肉密不可分,目前的口型动画生成方式没有考虑到口型与面部肌肉之间的关系,造成口型动画中的虚拟对象的口型不自然的现象,导致口型动画的生成不够准确。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高准确性的口型动画生成方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种口型动画生成方法。所述方法包括:
从音频中提取出音素序列,将所述音素序列转换为视素序列,所述音素序列中的音素与所述视素序列中的视素按时刻对应,每个所述视素包括动作单元;
获取所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述视素序列各时刻的视素的时间关系;
基于所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述各时刻的视素的时间关系,按照预设的权重约束条件,确定所述视素序列各时刻的视素中的所述动作单元对应的目标权重;所述权重约束条件用于通过约束所述目标权重约束口型变化;
根据所述视素序列各时刻的视素,以及每个所述视素包括的动作单元对应的目标权重,生成口型动画,所述口型动画中口型随所述音频的播放声音同步变化。
第二方面,本申请还提供了一种口型动画生成装置。所述装置包括:
转换模块,用于从音频中提取出音素序列,将所述音素序列转换为视素序列,所述音素序列中的音素与所述视素序列中的视素按时刻对应,每个所述视素包括动作单元;
获取模块,用于获取所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述视素序列各时刻的视素的时间关系;
确定模块,用于基于所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述各时刻的视素的时间关系,按照预设的权重约束条件,确定所述视素序列各时刻的视素中的所述动作单元对应的目标权重;所述权重约束条件用于通过约束所述目标权重约束口型变化;
生成模块,用于根据所述视素序列各时刻的视素,以及每个所述视素包括的动作单元对应的目标权重,生成口型动画,所述口型动画中口型随所述音频的播放声音同步变化。
在其中一个实施例中,所述权重约束条件表征通过权重范围约束所述目标权重;所述确定模块,用于获取所述视素序列各时刻的视素中的所述动作单元对应的权重误差;根据所述各时刻的视素中的所述动作单元所对应的基础权重和所述权重误差,确定所述各时刻的视素中的所述动作单元对应的权重范围;
基于所述各时刻的视素中的所述动作单元对应的基础权重、所述权重范围和所述各时刻的视素的时间关系,确定所述视素序列各时刻的视素中的所述动作单元对应的更新权重;当所述各时刻的视素中的所述动作单元对应的更新权重处于各自的所述权重范围内,将所述各时刻的视素中的所述动作单元对应的更新权重,作为所述各时刻的视素中的所述动作单元对应的目标权重。
在其中一个实施例中,所述确定模块,还用于针对所述各时刻的视素中的每个所述时刻的视素,确定所针对时刻的视素在所述各时刻的视素中的相邻视素;获取所述动作单元对应的预设权重变化速度,基于所述预设权重变化速度、所针对时刻的视素中的所述动作单元对应的权重范围、所针对时刻的视素和所述相邻视素之间的时间关系,确定所针对时刻的视素中的所述动作单元对应的插值权重;基于所针对时刻的视素中的所述动作单元对应的基础权重、所述相邻视素中的所述动作单元对应的基础权重和所述插值权重,确定所针对时刻的视素中的所述动作单元对应的更新权重。
在其中一个实施例中,所述相邻视素包括与所针对时刻的视素相邻的前序视素,以及相邻的后序视素,所述所针对时刻的视素中的所述动作单元对应的插值权重,包括所针对时刻的视素中的所述动作单元对应的前序插值权重,以及所针对时刻的视素中的所述动作单元对应的后序插值权重;
所述确定模块,还用于基于所针对时刻的视素中的所述动作单元对应的基础权重、所述前序视素中的所述动作单元对应的基础权重和所述前序插值权重,确定所针对时刻的视素中的所述动作单元对应的前序更新权重;基于所针对时刻的视素中的所述动作单元对应的基础权重、所述后序视素中的所述动作单元对应的基础权重和所述后序插值权重,确定所针对时刻的视素中的所述动作单元对应的后序更新权重;根据所针对时刻的视素中的所述动作单元对应的所述前序更新权重和所述后序更新权重,确定所针对时刻的视素中的所述动作单元对应的更新权重。
在其中一个实施例中,所述确定模块,还用于基于所针对时刻的视素中的所述动作单元对应的权重范围和所述预设权重变化速度,确定所针对时刻的视素中的所述动作单元对应的权重变化时间;根据所述权重变化时间,以及所针对时刻的视素和所述相邻视素之间的时间关系,确定所针对时刻的视素中的所述动作单元对应的插值权重。
在其中一个实施例中,所述装置还包括迭代模块;所述迭代模块,用于从所述各时刻的视素中的所述动作单元对应的更新权重中,确定处于所述权重范围外的更新权重所对应的目标时刻;将每个所述目标时刻作为所述动作单元在下一迭代中的所针对时刻,将所针对时刻的视素的更新权重,作为所述下一迭代中所针对时刻的视素的基础权重;在所述下一迭代中,按照所述确定所针对时刻的视素在所述各时刻的视素中的相邻视素的步骤并继续执行,直至迭代得到所针对时刻的视素中的所述动作单元对应的目标权重;所述相邻视素中的所述动作单元对应的更新权重作为所述下一迭代中的基础权重。
在其中一个实施例中,所述确定模块,还用于当所述视素序列各时刻的视素中的所述动作单元对应的更新权重中,存在处于相应的权重范围外的更新权重,确定处于相应的权重范围外的更新权重所对应的目标时刻;针对每个所述目标时刻,确定所针对目标时刻视素中的所述动作单元所对应的权重范围的上限值和下限值;当所针对目标时刻视素中的所述动作单元对应的更新权重大于所述上限值,将所述上限值作为所针对目标时刻视素中的所述动作单元对应的目标权重。
在其中一个实施例中,所述确定模块,还用于当所针对目标时刻视素中的所述动作单元对应的更新权重小于所述下限值,将所述下限值作为所针对目标时刻视素中的所述动作单元对应的目标权重。
在其中一个实施例中,所述权重约束条件包括权重变化速度约束条件;所述确定模块,还用于基于所述视素序列各时刻的视素中的所述动作单元对应的基础权重和所述各时刻的视素的时间关系,确定所述视素序列各时刻的视素中的所述动作单元对应的更新权重;基于所述各时刻的视素中的所述动作单元对应的更新权重和所述各时刻的视素的时间关系,确定所述各时刻的视素中的所述动作单元对应的更新权重变化速度;获取所述动作单元对应的权重变化速度约束条件,当所述各时刻的视素中的所述动作单元对应的更新权重变化速度满足所述权重变化速度约束条件,将所述各时刻的视素中的所述动作单元对应的更新权重,作为所述视素序列各时刻的视素中的所述动作单元对应的目标权重。
在其中一个实施例中,所述装置还包括迭代模块;所述迭代模块,用于当所述各时刻的视素中的所述动作单元对应的更新权重变化速度不满足所述权重变化速度约束条件,将所述各时刻的视素中的所述动作单元对应的更新权重,作为下一迭代中所述各时刻的视素中的所述动作单元对应的基础权重;在所述下一迭代中,按照所述基于所述视素序列各时刻的视素中的所述动作单元对应的基础权重和所述各时刻的视素的时间关系,确定所述视素序列各时刻的视素中的所述动作单元对应的更新权重的步骤并继续执行,直至迭代获得所述视素序列各时刻的视素中的所述动作单元对应的目标权重。
在其中一个实施例中,所述生成模块,还用于获取与所述音频关联的待处理动画;根据所述视素序列各时刻的视素,以及每个所述视素包括的动作单元对应的目标权重,对所述待处理动画中的虚拟角色进行口型形变,获得口型动画。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
从音频中提取出音素序列,将所述音素序列转换为视素序列,所述音素序列中的音素与所述视素序列中的视素按时刻对应,每个所述视素包括动作单元;
获取所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述视素序列各时刻的视素的时间关系;
基于所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述各时刻的视素的时间关系,按照预设的权重约束条件,确定所述视素序列各时刻的视素中的所述动作单元对应的目标权重;所述权重约束条件用于通过约束所述目标权重约束口型变化;
根据所述视素序列各时刻的视素,以及每个所述视素包括的动作单元对应的目标权重,生成口型动画,所述口型动画中口型随所述音频的播放声音同步变化。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
从音频中提取出音素序列,将所述音素序列转换为视素序列,所述音素序列中的音素与所述视素序列中的视素按时刻对应,每个所述视素包括动作单元;
获取所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述视素序列各时刻的视素的时间关系;
基于所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述各时刻的视素的时间关系,按照预设的权重约束条件,确定所述视素序列各时刻的视素中的所述动作单元对应的目标权重;所述权重约束条件用于通过约束所述目标权重约束口型变化;
根据所述视素序列各时刻的视素,以及每个所述视素包括的动作单元对应的目标权重,生成口型动画,所述口型动画中口型随所述音频的播放声音同步变化。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现以下步骤:
从音频中提取出音素序列,将所述音素序列转换为视素序列,所述音素序列中的音素与所述视素序列中的视素按时刻对应,每个所述视素包括动作单元;
获取所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述视素序列各时刻的视素的时间关系;
基于所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述各时刻的视素的时间关系,按照预设的权重约束条件,确定所述视素序列各时刻的视素中的所述动作单元对应的目标权重;所述权重约束条件用于通过约束所述目标权重约束口型变化;
根据所述视素序列各时刻的视素,以及每个所述视素包括的动作单元对应的目标权重,生成口型动画,所述口型动画中口型随所述音频的播放声音同步变化。
上述口型动画生成方法、装置、计算机设备、存储介质和计算机程序产品,从音频中提取出音素序列,将音素序列转换为视素序列,音素序列中的音素与视素序列中的视素按时刻对应,从而能够将音频中的每个时刻的音素转换为对应的视素,从而通过视觉方式呈现出音素。每个视素包括动作单元,而动作单元用于模拟面部肌肉的运动特性,不同动作单元按照各自的权重形成视素,获取视素序列各时刻的视素中的动作单元所对应的基础权重,以及视素序列各时刻的视素的时间关系,从而能够确定动作单元在形成每个时刻的视素时所对应基础权重,并且能够确定同一动作单元在各时刻的视素之间的时间关联性。基于各时刻视素中的同一动作单元对应的基础权重和时间关联性,按照预设的权重约束条件,确定同一动作单元在形成每个时刻的视素时所对应的目标权重,而每个时刻的目标权重均受到权重约束条件的约束,从而能够通过约束目标权重约束所生成的口型动画中的口型变化,使得口型变化能够符合面部肌肉的运动,口型变化与面部肌肉的运动状态更协调自然。
根据视素序列各时刻的视素,以及每个视素包括的动作单元对应的目标权重,生成口型动画,使得所生成的口型动画中口型随音频的播放声音同步变化,并且口型动画中的口型更接近于人的真实说话表现,使得口型动画中的口型更流畅,从而提高了口型动画生成的准确性。
附图说明
图1为一个实施例中口型动画生成方法的应用环境图;
图2为一个实施例中口型动画生成方法的流程示意图;
图3为一个实施例中音素与视素的映射关系的示意图;
图4为另一个实施例中音素与视素的映射关系的示意图;
图5为一个实施例中部分动作单元的编号、名称及肌肉群的示意图;
图6为一个实施例中“不”的发音口型的界面示意图;
图7为一个实施例中“八”的发音口型的界面示意图;
图8为一个实施例中确定视素序列各时刻的视素中的动作单元对应的目标权重的流程示意图;
图9为一个实施例中部分动作单元在不同视素中对应的基础权重和权重误差的示意图;
图10为一个实施例中确定视素序列各时刻的视素中的动作单元对应的更新权重的流程示意图;
图11为一个实施例中部分动作单元的预设权重变化速度的示意图;
图12为一个实施例中基于视素序列各时刻的视素中的动作单元所对应的基础权重,以及各时刻的视素的时间关系,按照预设的权重约束条件,确定视素序列各时刻的视素中的动作单元对应的目标权重的流程示意图;
图13为一个实施例中基础权重曲线和目标权重曲线的示意图;
图14为一个实施例中口型动画生成装置的结构框图;
图15为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的口型动画生成方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。终端102从服务器104获取音频,从音频中提取出音素序列,将音素序列转换为视素序列,音素序列中的音素与视素序列中的视素按时刻对应,每个视素包括动作单元。终端102获取视素序列各时刻的视素中的该动作单元所对应的基础权重,以及视素序列各时刻的视素的时间关系。终端102基于视素序列各时刻的视素中的动作单元所对应的基础权重,以及各时刻的视素的时间关系,按照预设的权重约束条件,确定视素序列各时刻的视素中的该动作单元对应的目标权重;权重约束条件用于通过约束目标权重约束口型变化。终端102根据视素序列各时刻的视素,以及每个视素包括的动作单元对应的目标权重,生成口型动画,口型动画中口型随音频的播放声音同步变化。其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种口型动画生成方法,以该方法应用于计算机设备(计算机设备如图1中的终端或服务器)为例进行说明,包括以下步骤:
步骤S202,从音频中提取出音素序列,将音素序列转换为视素序列,音素序列中的音素与视素序列中的视素按时刻对应,每个视素包括动作单元。
其中,音素(Phoneme),是根据语音的自然属性划分出来的最小语音单位,依据音节里的发音动作来分析,一个动作构成一个音素。视素(Viseme),是音素的视觉等价物,是通过视觉方式呈现出的音素,描绘出发音时的嘴部姿态。
音频的语音信号首先被转化为由一串发音单元构成的序列,这些发音单元成为音素。序列中的音素会被映射到一个口型动作单元上,这些口型动作单元成为视素。口型动作单元用于描绘发音单元发音时的嘴部姿态。
音素与视素是多对一的关系,如图3,音素“b”、“m”、“p”都对应同一个视素“BPM”,“ɑ”、“^”、“æ”都对应同一个视素“A”。
如图4所示的映射表中展示了部分音素和视素之间的映射关系,以及音素的音标IPA和视素的音标IPA之间的映射关系。
具体地,计算机设备获取需要生成口型动画的音频,从音频中解析出对应的音素序列。确定音素序列中每个时刻的音素,获取音素和视素之间的映射表,从映射表中确定每个时刻的音素对应的视素,从而将音素序列转换为视素序列。音频序列中的每个时刻有一个音素。音素序列中的音素与视素序列中的视素按时刻对应,即一个时刻的音素与该时刻的视素相对应,使得音素序列中的每个音素与视素序列中的每个视素一一对应。
视素包括动作单元,一个视素通过多个动作单元组合构成。一个视素可通过多个动作单元按照各自的基础权重组合形成,同一动作单元在不同的视素中可对应相同或不同的基础权重。例如,有动作单元A、B、C,动作单元A在形成该视素1时的基础权重为0.23,在形成视素2时的基础权重为0.17,动作单元B在形成该视素1时的基础权重为0.26,在形成视素2时的基础权重为0,动作单元C在形成该视素1时的基础权重为0,在形成视素2时的基础权重为0.27。
其中,基础权重表征动作单元的动作幅度的大小,基础权重与动作单元的动作幅度正相关,即基础权重越大表示动作单元的动作幅度越大,基础权重越小表示动作单元的动作幅度越小。当基础权重为0时,可表征动作单元的幅度为默认值。
例如,动作单元为“嘴唇拉宽”,则该动作单元的基础权重表征嘴唇拉宽的幅度大小,基础权重为0.27时嘴唇拉宽幅度比基础权重为0.26时的嘴唇拉宽幅度大。
步骤S204,获取视素序列各时刻的视素中的动作单元所对应的基础权重,以及视素序列各时刻的视素的时间关系。
其中,动作单元用于模拟面部肌肉,具体用于模拟人作出口型时面部特定区域的肌肉。例如动作单元为“嘴唇拉宽”,模拟的是“嘴唇拉宽”时所使用的到的面部肌肉。
动作单元对应的权重用于模拟人作出口型时面部肌肉的运动特性,即模仿面部肌肉的运动状态。
动作单元的基础权重用于模拟面部肌肉的运动幅度,基础权重与面部肌肉的运动幅度正相关,即基础权重越大表示面部肌肉的运动幅度越大,基础权重越小表示面部肌肉的运动幅度越小。
视素序列各时刻的视素中的动作单元所对应的基础权重,是指同一动作单元在形成视素序列各时刻的视素时分别对应的基础权重,即同一个动作单元对应视素序列的每个时刻的视素的基础权重。
时间关系可通过两个时刻的视素之间的时间差表征。其他实施例中,时间关系还可以是相邻两个时刻的视素之间的时间差。
具体地,计算机设备预先配置了每个视素中的每个动作单元对应的基础权重。该基础权重为经验值。计算机设备可确定视素序列各时刻的视素,并获取每个时刻的视素中的同一动作单元所对应的基础权重。
计算机设备获取视素序列中各时刻的视素之间的时间关系。进一步地,计算机设备可确定视素序列中每两个时刻的视素之间的时间关系。其他实施例中,可确定相邻两个时刻的视素之间的时间关系。
本实施例中,每个视素可包括多个动作单元,对于一个视素包括的多个动作单元,每个动作单元可按照步骤S202至步骤S204进行处理,从而得到每个视素中的各个动作单元分别对应的基础权重。
步骤S206,基于视素序列各时刻的视素中的动作单元所对应的基础权重,以及各时刻的视素的时间关系,按照预设的权重约束条件,确定视素序列各时刻的视素中的动作单元对应的目标权重;权重约束条件用于通过约束目标权重约束口型变化。
其中,权重约束条件用于通过约束目标权重约束口型变化。权重约束条件表征人在做口型时面部肌肉的运动特性。
权重约束条件包括权重范围约束条件或权重变化速度约束条件中的至少一种。
权重范围约束条件表征对动作单元的更新权重的约束,也是对动作单元的目标权重的约束。权重变化速度约束条件表征对动作单元的权重变化速度的约束,具体可以是对动作单元在不同时刻视素的更新权重之间的权重变化速度的约束,也是对动作单元在不同时刻视素的目标权重之间的权重变化速度的约束。
权重范围约束条件用于通过权重范围约束目标权重,即通过权重范围约束目标权重,以约束口型变化。权重变化速度约束条件用于通过权重变化速度约束目标权重,即通过权重变化速度约束目标权重,以约束口型变化。
具体地,计算机设备获取预设的权重约束条件,基于视素序列各时刻的视素中的动作单元对应的基础权重,以及视素序列各时刻的视素的时间关系,按照预设的权重约束条件,调整视素序列各时刻的视素中的该动作单元对应的基础权重,以得到视素序列各时刻的视素中的该动作单元对应的目标权重。
按照相同处理,可获得视素序列各时刻的视素中的每个动作单元对应的目标权重。
本实施中,针对视素序列中每个时刻的视素,基于所针对时刻的视素中的该动作单元对应的基础权重、其他时刻的视素中的该动作单元对应的基础权重,以及所针对时刻的视素与其他时刻的视素之间的时间关系,按照预设的权重约束条件,调整所针对时刻的视素中的该动作单元对应的基础权重,获得所针对时刻的视素中的该动作单元对应的目标权重。其他时刻,是指视素序列中除所针对时刻之外的时刻,也可以是所针对时刻在视素序列中的相邻时刻。其他时刻的视素,是指视素序列中除所针对时刻的视素之外的视素,也可以是所针对时刻的视素在视素序列中的相邻视素。
其他实施例中,基于各时刻视素中的该动作单元对应的基础权重和各时刻的视素的时间关系,按照权重范围约束条件或权重变化速度约束条件中的至少一种,确定视素序列各时刻的视素中的该动作单元对应的目标权重。
进一步地,基于各时刻视素中的该动作单元对应的基础权重和各时刻的视素的时间关系,按照权重范围约束条件,确定视素序列各时刻视素中的该动作单元对应的更新权重;按照权重变化速度约束条件,确定视素序列各时刻视素中的该动作单元对应的目标权重。
其他实施例中,预设的权重约束条件可包括视素序列各时刻视素中的动作单元所对应的权重约束条件,即不同时刻的视素中的同一动作单元,可对应不同的权重约束条件。
权重约束条件不同,可以是权重范围约束条件或权重变化速度约束条件中的至少一种不同,例如,不同时刻的视素中的同一动作单元,可对应不同的权重范围约束条件,对应相同的权重变化速度约束条件,也可以对应不同的权重变化速度约束条件。
步骤S208,根据视素序列各时刻的视素,以及每个视素包括的动作单元对应的目标权重,生成口型动画,口型动画中口型随音频的播放声音同步变化。
其中,口型动画是指至少包括虚拟角色的口部的动画。
具体地,计算机设备根据视素序列各时刻的视素,以及每个视素包括的动作单元对应的目标权重,生成音频对应的口型动画。该口型动画中口型随音频的播放声音同步变化。
本实施例中,从音频中提取出音素序列,将音素序列转换为视素序列,音素序列中的音素与视素序列中的视素按时刻对应,从而能够将音频中的每个时刻的音素转换为对应的视素,从而通过视觉方式呈现出音素。每个视素包括动作单元,而动作单元用于模拟面部肌肉的运动特性,不同动作单元按照各自的权重组合形成视素,获取视素序列各时刻的视素中的动作单元所对应的基础权重,以及视素序列各时刻的视素的时间关系,从而能够确定动作单元在形成每个时刻的视素时所对应基础权重,并且能够确定同一动作单元在各时刻的视素之间的时间关联性。基于各时刻视素中的同一动作单元对应的基础权重和时间关联性,按照预设的权重约束条件,确定该动作单元在形成每个时刻的视素时所对应的目标权重,而每个时刻的目标权重均受到权重约束条件的约束,从而能够通过约束目标权重约束所生成的口型动画中的口型变化,使得口型变化能够符合面部肌肉的运动,口型变化与面部肌肉的运动之间更协调自然。根据视素序列各时刻的视素,以及每个视素包括的动作单元对应的目标权重,生成口型动画,使得所生成的口型动画中口型随音频的播放声音同步变化,并且,所生成的口型动画中的口型在不同时刻的变化能够更接近于真实的人说话时面部肌肉的运动状态,使得口型动画中的口型变化更流畅,从而提高了口型动画生成的准确性。
本实施例中的口型动画生成方法,考虑到协同发音现象产生的原因与面部肌肉的运动密不可分,因此通过模拟面部肌肉运动特性的方式来表现协同发音现象,以约束口型动画中的口型变化。首先,将面部肌肉分成不同的肌肉群,并认为不同的肌肉群之间可以在一定程度下独立的运动。将肌肉群依照FACS来拆分动作单元,例如发“U”口型的肌肉群不能划分为一个动作单元,因为这同时涉及到了下巴张开和收紧嘴唇两部分,则至少应该拆分为下巴张开和收紧嘴唇两个动作单元。其中,面部动作编码系统(Facial Action CodingSystem,FACS)是一种用于描述和测量人物面部表情的系统,基于面部肌肉的运动,将面部肌肉的运动分解为几十个动作单元。
如图5所示,展示了部分与说话密切相关的动作单元的编号、名称及肌肉群。名称为“上唇抬起(Upper Lip Raiser)”的动作单元对应的肌肉群为“提上唇肌(Levator LabiiSuperioris, Caput infraorbitalis)”。名称为“加深鼻唇沟(Nasolabial Deepener)”的动作单元对应的肌肉群为“颧小肌(Zygomatic Minor)”。名称为“唇角拉升(Lip CornerPuller)”的动作单元对应的肌肉群为“颧大肌(Zygomatic Major)”。名称为“颊部提升(Cheek Puller)”的动作单元对应的肌肉群为“提口角肌(Levator anguli oris(Caninus))”。名称为“酒窝(Dimpler)”的动作单元对应的肌肉群为“颊肌(Buccinator)”。名称为“唇角压低(Lip Corner Depressor)”的动作单元对应的肌肉群为“降口角肌(Depressor anguli oris (Triangularis))”。
比如以“B”这个音为例,它的口型会受到前后音素的影响,比如“Bu”和“Ba”这两个音在发“B”的时候口型就是不一样的。如图6与图7分别是发“不”和“八”两个音的截图,左边部分是都是发“B”的部分。可以看出来虽然都是发“B”这个音素,但是由于受到后面音素的影响,导致口型有明显的差别。可以看出对于一个音素来说,不同的动作单元的精确性的要求是有差别的。以“B”这个发音为例,“嘴唇闭合”这个动作单元的精确度要求很高,必须要完全满足。而“嘴唇宽度”的精确性要求不高,可以受到前面和后面音素的影响。通过划分不同的精确度,则本实施例中的口型动画生成方法可以通过预设的权重约束条件,在对精确度要求不高的动作单元上尽可能的平滑,而对于精确额度要求很高的动作单元,则尽可能做到精确,以此来兼顾平滑度和精确性。
在其中一个实施例中,如图8所示,权重约束条件表征通过权重范围约束目标权重;基于视素序列各时刻的视素中的动作单元所对应的基础权重,以及各时刻的视素的时间关系,按照预设的权重约束条件,确定视素序列各时刻的视素中的动作单元对应的目标权重,包括:
步骤S802,获取视素序列各时刻的视素中的动作单元对应的权重误差。
其中,权重误差是指在基础权重上的权重波动范围,即视素中的动作单元对应的基础权重的权重波动范围。同一动作单元在不同视素中对应的基础权重和权重误差可通过经验值确定,如图9所示,展示了部分动作单元在不同视素中对应的基础权重和权重误差。下巴张开(AU_JawOpen)在视素BPM中对应的基础权重为0.23、权重误差为±0.02,在视素F中对应的基础权重为0.17、权重误差为±0.02,在视素DT中对应的基础权重为0.14、权重误差为±0,在视素A中对应的基础权重为0.54、权重误差为±0.20,在视素O中对应的基础权重为0.34、权重误差为±0.15。图9中还提供了嘴唇拉宽(AU_MouthDimple)、漏斗嘴(AU_MouthFunnel)、咬下嘴唇(AU_Mouth_Lower_Lip_Bite)、嘴唇并拢(AU_Mouth_Lower_Lips_Together)、撅嘴(AU_Mouth_Pucker)等动作单元在视素BPM、F、DT、A和O中各自的基础权重和权重误差。
步骤S804,根据各时刻的视素中的动作单元对应的基础权重和权重误差,确定视素序列各时刻的视素中的动作单元的权重范围。
具体地,针对视素序列中每个时刻的视素,将所针对时刻视素中的动作单元对应的基础权重和所针对时刻视素中该动作单元对应的权重误差求和,得到所针对时刻视素中该动作单元对应的权重范围。按照相同处理,可获得视素序列各时刻的视素中的该动作单元对应的权重范围。
例如,下巴张开在视素序列中某个时刻的视素BPM中对应的基础权重为0.23、权重误差为±0.02,则下巴张开在该时刻的视素BPM中对应的的权重范围即为[0.21,0.25]。
步骤S806,基于各时刻的视素中的动作单元对应的基础权重、权重范围和各时刻的视素的时间关系,确定视素序列各时刻是视素中的动作单元对应的更新权重。
其中,更新权重,是指基于各时刻视素中的动作单元对应的基础权重、权重范围和各时刻的视素的时间关系,调整该动作单元的基础权重后得到的权重。
具体地,计算机设备基于各时刻的视素中的同一动作单元对应的基础权重和权重范围,以及各时刻的视素的时间关系,确定视素序列各时刻视素中该同一动作单元对应的更新权重。
进一步地,计算机设备基于各时刻视素中同一动作单元对应的权重范围和各时刻的视素的时间关系,确定视素序列各时刻视素中同一动作单元对应的插值权重。基于各时刻视素中同一动作单元对应的基础权重和插值权重,确定视素序列各时刻视素中同一动作单元对应的更新权重。
本实施例中,针对视素序列中每个时刻的视素,基于所针对时刻的视素中同一动作单元对应的基础权重、其他时刻的视素中同一动作单元对应的基础权重,以及所针对时刻的视素与其他时刻的视素之间的时间关系,调整所针对时刻的视素中同一动作单元对应的基础权重,获得所针对时刻的视素中同一动作单元对应的更新权重。其他时刻,是指视素序列中除所针对时刻之外的时刻,也可以是所针对时刻在视素序列中的相邻时刻。
步骤S808,当视素序列各时刻的视素中的动作单元对应的更新权重处于各自的权重范围内,将各时刻的视素中的动作单元对应的更新权重,作为视素序列各时刻的视素中的动作单元对应的目标权重。
其中,权重约束条件包括权重范围约束条件,权重范围约束条件表征通过权重范围约束目标权重。
具体地,计算机设备将视素序列各时刻的视素中同一动作单元对应的更新权重,分别相同时刻的视素中同一动作单元对应的权重范围比较,以判断各更新权重是否处于各自的权重范围内。当视素序列各时刻的视素中每个动作单元对应的更新权重均处于各自的权重范围内,将各时刻的视素中每个动作单元对应的更新权重,作为视素序列相同时刻的视素中每个动作单元对应的目标权重。
本实施中,当视素序列各时刻的视素中的动作单元对应的更新权重均处于各自的权重范围外,从各自的权重范围内确定目标权重。
本实施中,当视素序列各时刻的视素中的动作单元所对应的更新权重中,存在处于权重范围外的更新权重,确定处于权重范围外的更新权重的目标时刻;从目标时刻的视素对应的权重范围内确定目标权重。
在其中一个实施例中,基于视素序列各时刻的视素中的动作单元所对应的基础权重,以及各时刻的视素的时间关系,按照预设的权重约束条件,确定视素序列各时刻的视素中的动作单元对应的目标权重,包括:
针对每个时刻的视素,根据所针对时刻的视素中同一动作单元对应的基础权重和权重误差,确定所针对时刻的视素中同一动作单元对应的权重范围;
基于所针对时刻的视素中同一动作单元对应的基础权重、所针对时刻的相邻时刻的相邻视素中同一动作单元对应的基础权重,所针对时刻的视素中同一动作单元对应的权重范围,以及所针对时刻的视素和相邻视素之间的时间关系,确定视素序列中所针对时刻的视素中同一动作单元对应的更新权重;
针对每个时刻的视素,当所针对时刻的视素中同一动作单元对应的更新权重处于相同时刻的视素中同一动作单元对应的权重范围内,将所针对时刻的视素中同一动作单元对应的更新权重,作为视素序列中所针对时刻的视素中同一动作单元对应的目标权重。
本实施例中,当视素序列中所针对时刻的视素中同一动作单元对应的更新权重处于相同时刻的视素中同一动作单元对应的权重范围之外,进入下一迭代,将所针对时刻的视素中同一动作单元对应的更新权重,作为下一迭代中相同时刻的视素中同一动作单元对应的基础权重;返回根据各时刻的视素中的动作单元对应的基础权重和权重误差,确定视素序列各时刻的视素中的动作单元对应的权重范围的步骤并继续执行,直至迭代得到视素序列中所针对时刻的视素中同一动作单元对应的目标权重。
其他实施例中,权重约束条件还包括权重变化速度约束条件;当视素序列各时刻的视素中的动作单元对应的更新权重处于各自的权重范围内,将各时刻的视素中的动作单元对应的更新权重,作为视素序列各时刻的视素中的动作单元对应的目标权重,包括:
当视素序列各时刻的视素中的动作单元对应的更新权重处于各自的权重范围内,基于各时刻视素中的动作单元对应的更新权重和各时刻的视素的时间关系,确定各时刻视素中的动作单元对应更新权重变化速度;
获取动作单元对应的权重变化速度约束条件,当各时刻视素中的动作单元对应的更新权重变化速度满足权重变化速度约束条件,将各时刻的视素中的动作单元对应的更新权重,作为视素序列各时刻的视素中的动作单元对应的目标权重。
本实施例中,当各时刻视素中的动作单元对应的更新权重变化速度不满足权重变化速度约束条件,将各时刻视素中的动作单元对应的更新权重,作为下一迭代中相同时刻的视素中的动作单元对应的基础权重;在下一迭代中,按照根据各时刻的视素中的动作单元对应的基础权重和权重误差,确定视素序列各时刻的视素中的动作单元对应的权重范围的步骤并继续执行,直至迭代得到视素序列各时刻的视素中的动作单元对应的目标权重。
本实施例中,权重约束条件表征通过权重范围约束目标权重,从而约束口型变化。获取视素序列各时刻的视素中的动作单元对应的权重误差,以根据各时刻视素中该动作单元对应的基础权重和权重误差,确定视素序列各时刻视素中该动作单元对应的权重范围,从而能够模拟口型变化时肌肉运动的运动幅度的大小。基于各时刻的视素中该动作单元对应的基础权重、权重范围和各时刻的视素的时间关系,确定视素序列各时刻的视素中该动作单元对应的更新权重,能够考虑到各个视素对一个视素的权重变化的影响和时间变化的影响,从而基于这些影响尽量将动作单元在不同时刻均调整为更符合面部肌肉运动的运动幅度。
当视素序列各时刻视素中该动作单元的更新权重处于权重范围内,表示此时的该动作单元的动作幅度的符合肌肉运动的运动幅度,从而将各时刻视素中该动作单元的更新权重,作为相同时刻的视素中该动作单元的目标权重,使得最后生成的口型动画中口型变化符合真实人物说话时的面部肌肉的运动幅度,有效避免口型变化幅度超过真实人物说话时的正常幅度所导致的口型不协调、不自然的现象,从而提高口型动画的质量。
在其中一个实施例中,如图10所示,基于各时刻的视素中的动作单元对应的基础权重、权重范围和各时刻的视素的时间关系,确定视素序列各时刻的视素中的动作单元对应的更新权重,包括:
步骤S1002,针对视素序列各时刻的视素中每个时刻的视素,确定所针对时刻的视素在视素序列中的相邻视素。
其中,相邻视素是指在视素序列中,与所针对时刻的视素相邻的视素。所针对时刻在视素序列中的相邻时刻的视素,即为针对时刻的视素在视素序列中的相邻视素。
相邻时刻包括以下至少一种:所针对时刻在视素序列各时刻中相邻的前序时刻,或者所针对时刻在视素序列各时刻中相邻的后序时刻。
前序时刻,可以是所针对时刻在视素序列各时刻中相邻的前一个时刻、前两个时刻等,具体可根据需求设置。
后序时刻,可以是所针对时刻在视素序列各时刻中相邻的后一个时刻、后两个时刻等,具体可根据需求设置。
相邻视素包括以下至少一种:所针对时刻的视素在视素序列中的相邻的前序视素,或者所针对时刻的视素在视素序列中的相邻的后序视素。
前序视素,可以是所针对时刻的视素在视素序列中相邻的前一个视素、前两个视素等,具体可根据需求设置。
后序视素,可以是所针对时刻在视素序列中相邻的后一个视素、后两个视素等,具体可根据需求设置。
具体地,针对各时刻的视素中每个时刻的视素,计算机设备确定所针对时刻的视素在视素序列各视素中的相邻视素。进一步地,针对每个时刻的视素,计算机设备确定所针对时刻的视素在视素序列各视素中相邻的前序视素或相邻的后序视素中的至少一种,将相邻的前序视素或相邻的后序视素中的至少一种,作为所针对时刻的视素的相邻视素。
本实施例中,针对各时刻中的每个时刻,计算机设备确定所针对时刻在视素序列各时刻中的相邻时刻。进一步地,针对各时刻中的每个时刻,计算机设备确定所针对时刻在视素序列各时刻中的前序时刻或后序时刻中的至少一种,将前序时刻或后序时刻中的至少一种,作为所针对时刻的相邻时刻。
步骤S1004,获取动作单元对应的预设权重变化速度,基于预设权重变化速度、所针对时刻的视素中的动作单元对应的权重范围、所针对时刻的视素和相邻视素之间的时间关系,确定所针对时刻的视素中的动作单元对应的插值权重。
其中,预设权重变化速度是指预设配置的每个动作单元在两个时刻的权重对应的变化速度。该两个时刻可以是相邻时刻。例如,一个动作单元对应的预设权重变化速度,是指该动作单元在相邻两个时刻的权重之间的权重变化速度。即该动作单元从第一个时刻的权重变换到相邻时刻的权重时的权重变化速度。
如图11所示,展示了部分动作单元分别对应的预设权重变化速度。
每个动作单元的预设权重变化速度如图11所示,“下巴张开”对应的预设权重变化速度为0.2,“嘴唇拉宽”对应的预设权重变化速度为0.1,“漏斗嘴”对应的预设权重变化速度为0.2,“咬下嘴唇”对应的预设权重变化速度为0.3,“嘴唇并拢”对应的预设权重变化速度为0.1,“噘嘴”对应的预设权重变化速度为0.1。
本实施例中,预设权重变化速度是动作单元在两个时刻的权重对应的最大变化速度。
具体地,计算机设备获取动作单元对应的预设权重变化速度,基于预设权重变化速度、所针对时刻的视素中的动作单元对应的权重范围、所针对时刻的视素和相邻视素之间的时间关系,计算出所针对时刻的视素中的动作单元对应的插值权重。
例如,动作单元对应的预设权重变化速度为AUChangeSpeed,Range为动作单元在视素序列中所针对时刻的视素中对应的权重范围,将权重范围Range的上限值和下限值的差值,与预设权重变化速度AUChangeSpeed的比值,作为权重变化时间。确定所针对时刻t[i]和相邻时刻t[x]之间的时间差(t[i]- t[x]),将该时间差(t[i]- t[x])与权重变化时间的比值作为权重插值。其他实施例中,该权重插值处于0至1之间。
步骤S1006,基于所针对时刻的视素中的动作单元对应的基础权重、相邻视素中的动作单元对应的基础权重和插值权重,确定所针对时刻的视素中的动作单元对应的更新权重。
具体地,计算机设备根据所针对时刻的视素中的动作单元对应的插值权重,确定相邻视素中的动作单元对应的插值权重。确定所针对时刻的视素中同一动作单元对应的基础权重与的插值权重的乘积,确定相邻视素中同一动作单元对应的基础权重与插值权重的乘积,将两个乘积之和作为视素序列中所针对时刻的视素中同一动作单元对应的更新权重。
本实施例中,该相邻视素对应的插值权重,为预设值与所针对时刻的视素对应的插值权重间的差值。
本实施例中,针对视素序列各时刻的视素中每个时刻的视素,确定所针对时刻的视素在视素序列中的相邻视素,包括:
针对视素序列各时刻的视素中每个时刻的视素,确定所针对时刻的视素在视素序列中相邻的前序视素和后序视素;
基于预设权重变化速度、所针对时刻的视素中的动作单元对应的权重范围、所针对时刻的视素和相邻视素之间的时间关系,确定所针对时刻的视素中的动作单元对应的插值权重,包括:
基于预设权重变化速度、所针对时刻的视素中的动作单元对应的权重范围、所针对时刻的视素和前序视素之间的时间关系,确定所针对时刻的视素中的动作单元对应的前序插值权重;
基于预设权重变化速度、所针对时刻的视素中的动作单元对应的权重范围、所针对时刻的视素和后序视素之间的时间关系,确定所针对时刻的视素中的动作单元对应的后序插值权重;
基于所针对时刻的视素中的动作单元对应的基础权重、相邻视素中的动作单元对应的基础权重和插值权重,确定所针对时刻的视素中的动作单元对应的更新权重,包括:
基于所针对时刻的视素中的动作单元对应的基础权重、相邻视素中的动作单元对应的基础权重、前序插值权重和后序插值权重,确定视素序列中所针对时刻的视素中的动作单元对应的更新权重。
本实施例中,针对视素序列各时刻的视素中的每个时刻的视素,确定所针对时刻的视素在视素序列中的相邻视素,以确定对所针对时刻的视素关联紧密的视素。获取动作单元对应的预设权重变化速度,该预设权重变化速度表征动作单元在两个相邻时刻的权重对应的变化速度。基于预设权重变化速度、所针对时刻的视素中的动作单元对应的权重范围、所针对时刻的视素和相邻视素之间的时间关系,确定所针对时刻的视素中的动作单元对应的插值权重,能够确定相邻视素中同一动作单元的动作幅度对所针对时刻视素中同一动作单元的动作幅度产生的影响程度,以考虑到每个时刻的动作单元被相邻时刻的相同动作单元的影响程度,从而考虑到每个时刻的视素被相邻视素的影响程度。基于所针对时刻的视素中的动作单元对应的基础权重、相邻视素中的动作单元对应的基础权重和相邻时刻的影响程度,能够准确地确定视素序列中所针对时刻的视素中的动作单元对应的更新权重。
在其中一个实施例中,相邻视素包括与所针对时刻的视素相邻的前序视素,以及相邻的后序视素,所针对时刻的视素中的动作单元对应的插值权重,包括所针对时刻的视素中的动作单元对应的前序插值权重,以及所针对时刻的视素中的动作单元对应的后序插值权重;
基于所针对时刻的视素中的动作单元对应的基础权重、相邻视素中的动作单元对应的基础权重和插值权重,确定所针对时刻的视素中的动作单元对应的更新权重,包括:
基于所针对时刻的视素中的动作单元对应的基础权重、前序视素中的动作单元对应的基础权重和前序插值权重,确定所针对时刻的视素中的动作单元对应的前序更新权重;基于所针对时刻的视素中的动作单元对应的基础权重、后序视素中的动作单元对应的基础权重和后序插值权重,确定所针对时刻的视素中的动作单元对应的后序更新权重;根据所针对时刻的视素中的动作单元对应的前序更新权重和后序更新权重,确定所针对时刻的视素中的动作单元对应的更新权重。
具体地,针对各时刻的视素中的每个时刻的视素,计算机设备确定所针对时刻的视素在视素序列中相邻的前序视素和后序视素。计算机设备基于预设权重变化速度、所针对时刻的视素中的动作单元对应的权重范围、所针对时刻的视素和前序视素之间的时间关系,确定所针对时刻的视素中的动作单元对应的前序插值权重。计算机设备基于预设权重变化速度、所针对时刻的视素中的动作单元对应的权重范围、所针对时刻的视素和后序视素之间的时间关系,确定所针对时刻的视素中的动作单元对应的后序插值权重。
计算机设备基于所针对时刻视素中的动作单元对应的前序插值权重,计算出前序视素中的动作单元对应的插值权重,根据所针对时刻的视素中的动作单元对应的基础权重和前序插值权重,以及前序视素中的动作单元对应的基础权重和对应的插值权重,确定所针对时刻的视素中的动作单元对应的前序更新权重。进一步地,确定所针对时刻的视素中的动作单元对应的基础权重和前序插值权重的乘积,确定所针对时刻的视素中的动作单元对应的基础权重和前序插值权重的乘积,将两个乘积之和作为所针对时刻的视素中的动作单元对应的前序更新权重。
计算机设备基于所针对时刻的视素中的动作单元对应的后序权重,计算出后序视素对应的插值权重,根据所针对时刻的视素中的动作单元对应的基础权重和后序插值权重,以及后序视素对应的基础权重和对应的插值权重,确定所针对时刻的视素中的动作单元对应的后序更新权重。进一步地,确定所针对时刻的视素中的动作单元对应的基础权重和后序插值权重的乘积,确定所针对时刻的视素中的动作单元对应的基础权重和后序插值权重的乘积,将两个乘积之和作为所针对时刻的视素中的动作单元对应的后序更新权重。
计算机设备计算所针对时刻的视素中的动作单元对应的前序更新权重和后序更新权重之间的均值,将该均值作为所针对时刻的视素中的动作单元对应的更新权重。
例如,可通过如下公式计算更新权重:
PreValue[i] =(1-alpha0)*v[i-1]+ alpha0 * v[i];
NextValue[i] = (1-alpha1)*v[i+1]+ alpha1 * v[i];
TempValue[i]=(PreValue[i]+ NextValue[i])/ 2;
其中,PreValue[i]为所针对时刻的视素i中的动作单元对应的前序更新权重,NextValue[i]为所针对时刻的视素i中该动作单元对应的后序更新权重;alpha0所针对时刻的视素i中该动作单元对应的前序插值权重,alpha1所针对时刻的视素i中该动作单元对应的后序插值权重,TempValue[i]为视素序列中所针对时刻的视素i中该动作单元对应的更新权重。
本实施例中,基于所针对时刻的视素中的动作单元对应的基础权重、前序视素中的动作单元对应的基础权重和前序插值权重,确定所针对时刻的视素中的动作单元对应的前序更新权重,能够确定相邻前序视素中同一动作单元的动作幅度对所针对时刻视素中同一动作单元的动作幅度产生的影响程度。基于所针对时刻的视素中的动作单元对应的基础权重、后序视素中的动作单元对应的基础权重和后序插值权重,确定所针对时刻的视素中的动作单元对应的后序更新权重,能够确定相邻后序视素中同一动作单元的动作幅度对所针对时刻视素中同一动作单元的动作幅度产生的影响程度,从而考虑到每个时刻的视素被相邻前后视素的影响程度,以根据所针对时刻的视素中的动作单元对应的前序更新权重和后序更新权重,准确地确定所针对时刻的视素中的动作单元对应的更新权重。
在其中一个实施例中,基于预设权重变化速度、所针对时刻的视素中的动作单元对应的权重范围、所针对时刻的视素和相邻视素之间的时间关系,确定所针对时刻的视素中的动作单元对应的插值权重,包括:
基于所针对时刻的视素中的动作单元对应的权重范围和预设权重变化速度,确定所针对时刻的视素中的动作单元对应的权重变化时间;根据权重变化时间,以及所针对时刻的视素和相邻视素之间的时间关系,确定所针对时刻的视素中的动作单元对应的插值权重。
具体地,计算机设备确定视素序列中所针对时刻的视素中的动作单元对应的权重范围,并确定该权重范围的上限值和下限值。计算上限值和下限值的差值,将差值与预设权重变化速度的比值,作为该动作单元在所针对时刻和相邻时刻间的权重变化时间,即所针对时刻的视素中的动作单元对应的权重变化时间。
计算机设备确定所针对时刻和相邻时刻之间的时间差,将该时间差和权重变化时间的比值,作为视素序列中所针对时刻的视素中的动作单元对应的插值权重。
本实施例中,基于所针对时刻的视素中的动作单元对应的权重范围和预设权重变化速度,确定所针对时刻的视素中的动作单元对应的权重变化时间,从而能够确定动作单元从权重上限值改变到权重下限值所需要的时间。根据该权重变化时间,以及所针对时刻的视素和相邻视素之间的时间关系,确定所针对时刻的视素中的动作单元对应的插值权重,从而能够将权重的变化时间作为影响动作单元的权重改变的因素,由此更新的权重考虑了权重变化时间的因素,所更新的权重更准确。并且,权重变化时间基于权重范围计算获得,使得所更新获得的权重能够被权重范围所约束。
在其中一个实施例中,该方法还包括:
从各时刻视素中的动作单元对应的更新权重中,确定处于权重范围外的更新权重所对应的目标时刻;将每个目标时刻作为动作单元在下一迭代中的所针对时刻,将所针对时刻的视素中的动作单元对应的更新权重,作为下一迭代中所针对时刻的视素中的动作单元对应的基础权重;在下一迭代中,按照确定所针对时刻的视素在视素序列中的相邻视素的步骤并继续执行,直至迭代得到所针对时刻的视素中的动作单元对应的目标权重;相邻视素中的动作单元对应的更新权重作为下一迭代中的基础权重。
具体地,当视素序列各时刻视素中的动作单元对应的更新权重中,存在处于各自的权重范围外的更新权重,计算机设备可筛选出处于各自的权重范围外的更新权重,筛查出处于权重范围外的更新权重所对应的目标时刻。
计算机设备将每个目标时刻作为动作单元在下一迭代中的所针对时刻,将所针对时刻的视素中的动作单元对应的更新权重,作为下一迭代中相同时刻的视素中的相同动作单元对应的基础权重。并且,相邻视素中的动作单元对应的更新权重作为下一迭代中的基础权重。
进入下一迭代,在下一迭代中,按照确定所针对时刻的视素在视素序列中的相邻视素的步骤并继续执行,以得到迭代出的更新权重,直至更新权重处于相应的权重范围内时停止迭代,将处于相应的权重范围内的更新权重作为目标权重。
可以理解的是,每次迭代获得更新权重后,处于相应的权重范围内的更新权重直接作为目标权重,不处于相应的权重范围内的更新权重参与下一迭代,直至获得处于相应的权重范围内的更新权重位置。
本实施例中,更新权重超出权重范围表征动作单元的动作幅度大于所模拟的面部肌肉的运动幅度,即超出了面部肌肉运动的极限。当视素序列各时刻视素中的动作单元对应的更新权重中,存在处于权重范围外的更新权重,从各时刻视素中的动作单元对应的更新权重中,确定处于权重范围外的更新权重所对应的目标时刻,从而能够确定出动作单元在哪个时刻的视素的动作幅度超出了所模拟的面部肌肉的运动极限。将每个目标时刻作为动作单元在下一迭代中的所针对时刻,将所针对时刻的视素中的动作单元对应的更新权重,作为下一迭代中相同时刻的视素中相同动作单元对应的基础权重,以在超出运动极限的更新权重的基础上再次调整,使得通过多次迭代准确得到处于所模拟的面部肌肉的运动幅度内的权重,使得后续生成的口型动画中的口型更自然。
在其中一个实施例中,该方法还包括:
当视素序列各时刻的视素中的动作单元对应的更新权重中,存在处于相应的权重范围外的更新权重,确定处于相应的权重范围外的更新权重所对应的目标时刻;针对每个目标时刻,确定所针对目标时刻的视素中的动作单元所对应的权重范围的上限值和下限值;当所针对目标时刻的视素中的动作单元对应的更新权重大于上限值,将上限值作为所针对目标时刻的视素中的动作单元对应的目标权重。
具体地,当各时刻视素中的动作单元对应的更新权重中,存在处于各自的权重范围外的更新权重,计算机设备可筛选出处于各自的权重范围外的更新权重,筛查出处于权重范围外的更新权重所对应的目标时刻。
针对每个目标时刻,确定所针对目标时刻视素中的动作单元对应的权重范围的上限值和下限值。将所针对目标时刻视素中的动作单元对应的更新权重与上限值、下限值对比,当所针对目标时刻视素中的动作单元对应的更新权重大于上限值,将上限值作为相同时刻的视素中的相同动作单元对应的目标权重。
本实施例中,当视素序列各时刻的视素中的动作单元对应的更新权重中,存在处于相应的权重范围外的更新权重,确定处于相应的权重范围外的更新权重所对应的目标时刻,以将目标时刻视素中的动作单元所对应的权重范围的上限值作为该时刻的动作单元的目标权重,使得所得到的目标权重能够被权重范围约束。更新权重超出权重范围表征动作单元的动作幅度大于所模拟的面部肌肉的运动幅度,即超出了面部肌肉运动的极限,则将权重范围的上限值作为目标权重,能够将动作单元的动作幅度限制在面部肌肉的运动幅度范围内,使得后续生成的口型动画中的口型更符合真实的口型。
在其中一个实施例中,该方法还包括:
当所针对目标时刻的视素中的动作单元对应的更新权重小于下限值,将下限值作为所针对目标时刻的视素中的动作单元对应的目标权重。
具体地,针对每个目标时刻的视素,计算机设备确定所针对视素中的动作单元对应的权重范围,并确定该权重范围的上限值和下限值。将所针对视素中该动作单元所对应的更新权重与上限值、下限值对比,当更新权重小于下限值,将下限值作为所针对目标时刻的视素中该动作单元所对应的目标权重。
本实施例中,更新权重超出权重范围表征动作单元的动作幅度大于所模拟的面部肌肉的运动幅度,即超出了面部肌肉运动的极限。当所针对目标时刻视素中动作单元所对应的更新权重小于下限值,将下限值作为该动作单元在所针对目标时刻的视素中对应的目标权重,能够将动作单元的动作幅度限制在面部肌肉的运动幅度范围内,使得后续生成的口型动画中的口型更符合真实的口型。
在其中一个实施例中,如图12所示,权重约束条件包括权重变化速度约束条件;基于视素序列各时刻的视素中的动作单元所对应的基础权重,以及各时刻的视素的时间关系,按照预设的权重约束条件,确定视素序列各时刻的视素中的动作单元对应的目标权重,包括:
步骤S1202,基于视素序列各时刻的视素中的动作单元对应的基础权重和各时刻的视素的时间关系,确定视素序列各时刻的视素中的动作单元对应的更新权重。
具体地,计算机设备获取视素序列各时刻的视素中同一动作单元对应的权重误差,根据各时刻的视素中同一动作单元对应的基础权重和权重误差,确定各时刻的视素中同一动作单元对应的权重范围。基于各时刻视素中同一动作单元对应的基础权重、权重范围和各时刻的视素的时间关系,确定各时刻的视素中同一动作单元对应的更新权重。
步骤S1204,基于各时刻的视素中的动作单元对应的更新权重和各时刻的视素的时间关系,确定各时刻的视素中的动作单元对应的更新权重变化速度。
其中,更新权重变化速度是指动作单元在两个时刻的更新权重对应的变化速度。该两个时刻可以是相邻时刻。例如,一个动作单元对应的更新权重变化速度,是指该动作单元在相邻两个时刻的更新权重之间的权重变化速度。即该动作单元从第一个时刻的更新权重变换到相邻时刻的更新权重时的权重变化速度。
具体地,视素间的时间关系通过各视素对应的时刻之间时间差表征,计算机设备确定各时刻间的时间差,该时间差作为各时刻的视素间的时间关系。
计算机设备确定各时刻的视素中同一动作单元对应的更新权重之间的权重差值,基于各时刻的视素中同一动作单元间对应的权重差值和各时刻的时间差,确定动作单元在各时刻间的更新权重变化速。动作单元在各时刻间的更新权重变化速即为各时刻的视素中的该动作单元对应的更新权重变化速度。
进一步地,可将各时刻视素中同一动作单元间的权重差值和各时刻的时间差的比值,作为动作单元在各时刻间的更新权重变化速。
本实施例中,针对每个时刻的视素,确定所针对时刻的视素在视素序列中的相邻视素;基于所针对时刻的视素中的动作单元对应的基础权重、相邻视素中该动作单元对应的基础权重,所针对时刻的视素中该动作单元对应的权重范围,以及所针对时刻的视素和相邻视素之间的时间关系,确定所针对时刻的视素中该动作单元对应的更新权重;基于所针对时刻的视素中该动作单元对应的更新权重、相邻视素中该动作单元对应的更新权重,以及所针对时刻的视素和相邻视素之间的时间关系,确定动作单元在所针对时刻和相邻时刻之间的更新权重变化速度。进一步地,确定所针对时刻视素中该动作单元对应的更新权重和相邻视素中该动作单元对应的更新权重之间的差值,以及所针对时刻和相邻时刻之间的时间差,将该差值和时间差的比值,作为动作单元在所针对时刻和相邻时刻之间的更新权重变化速度。
步骤S1206,获取动作单元对应的权重变化速度约束条件,当各时刻的视素中的动作单元对应的更新权重变化速度满足权重变化速度约束条件,将各时刻视素中的动作单元对应的更新权重,作为视素序列各时刻的视素中的动作单元对应的目标权重。
其中,权重约束条件包括权重变化速度约束条件表征通过权重变化速度约束目标权重。
具体地,计算机设备获取动作单元对应的权重变化速度约束条件,将每个动作单元在各时刻对应的更新权重变化速度分别与该权重变化速度约束条件匹配,当该动作单元在各时刻间的更新权重变化速度满足权重变化速度约束条件,将各时刻视素中该动作单元对应的更新权重,作为视素序列各时刻的视素中该动作单元对应的目标权重。
本实施例中,权重约束条件通过预设权重变化速度表征;当动作单元在各时刻的更新权重变化速度小于或等于预设权重变化速度,将各时刻视素中该动作单元对应的更新权重,作为视素序列各时刻的视素中该动作单元对应的目标权重。
当动作单元在各时刻的更新权重变化速度大于预设权重变化速度,将各时刻的视素中该动作单元对应的更新权重,作为下一迭代中各时刻的视素中该动作单元对应的基础权重;在下一迭代中,按照基于各时刻的视素中的动作单元对应的更新权重和各时刻的视素的时间关系,确定各时刻的视素中的动作单元对应的更新权重变化速度的步骤并继续执行,直至迭代获得视素序列各时刻的视素中每个动作单元对应的目标权重。
本实施例中,更新权重变化速度满足权重变化速度约束条件,表示动作单元在不同时刻的运动幅度改变,符合真实的面部肌肉运动时的改变快慢,即符合真实的肌肉运动特性,则将同一动作单元在视素序列各时刻视素中对应的更新权重,作为该动作单元在视素序列相同时刻的视素中对应的目标权重,能够有效模拟真实的人说话的面部肌肉运动变化的快慢,使得后续生成的口型动画中的口型符合真实人体说话的口型,从而使得口型动画的口型在不同时刻的变化更协调、自然。
在其中一个实施例中,该方法还包括:
当各时刻的视素中的动作单元对应的更新权重变化速度不满足权重变化速度约束条件,将各时刻的视素中的动作单元对应的更新权重,作为下一迭代中各时刻的视素中的动作单元对应的基础权重;在下一迭代中,按照基于视素序列各时刻的视素中的动作单元对应的基础权重和各时刻的视素的时间关系,确定视素序列各时刻的视素中的动作单元对应的更新权重的步骤并继续执行,直至迭代获得视素序列各时刻的视素中的动作单元对应的目标权重。
具体地,当动作单元在各时刻间的更新权重变化速度不满足权重变化速度约束条件,将各时刻视素中该动作单元对应的更新权重,作为下一迭代中相同时刻的视素中该动作单元对应的基础权重。在下一迭代中,按照基于视素序列各时刻的视素中的动作单元对应的基础权重和各时刻的视素的时间关系,确定视素序列各时刻的视素中的动作单元对应的更新权重的步骤并继续执行,直至迭代获得视素序列各时刻的视素中每个动作单元对应的目标权重。
本实施例中,当动作单元在各时刻间的更新权重变化速度不满足权重变化速度约束条件,筛选不满足权重变化速度约束条件的更新权重变化速度对应的目标时刻;针对每个目标时刻,将所针对目标时刻的视素中该动作单元对应的更新权重,作为下一迭代中所针对目标时刻的视素中该动作单元对应的基础权重,将所针对目标时刻作为下一迭代中的所针对时刻,并按照针对视素序列各时刻的视素中每个时刻的视素,确定所针对时刻的视素在视素序列中的相邻视素的步骤继续执行,直至迭代获得视素序列每个目标时刻的视素中每个动作单元对应的目标权重。即,将所针对目标时刻的相邻视素中该动作单元对应的更新权重,也作为下一迭代中相邻视素中该动作单元对应的基础权重。
本实施例中,当动作单元在各时刻间的更新权重变化速度不满足权重变化速度约束条件,表示动作单元在不同时刻的运动幅度改变太快,超出了真实的面部肌肉运动时的改变快慢,则将各时刻视素中同一动作单元的更新权重,作为该动作单元在下一迭代中在相同时刻的视素中对应的基础权重,以在不满足权重变化速度约束条件的更新权重的基础上再次调整,使得通过多次迭代准确得到符合真实的面部肌肉运动时的改变快慢的目标权重,使得后续生成的口型动画中的口型更自然。
在其中一个实施例中,根据视素序列各时刻的视素,以及每个视素包括的动作单元对应的目标权重,生成口型动画,包括:
获取与音频关联的待处理动画;根据视素序列各时刻的视素,以及每个视素包括的动作单元对应的目标权重,对待处理动画中的虚拟角色进行口型形变,获得口型动画。
具体地,计算机设备获取与音频关联的待处理动画,并将待处理动画按时刻划分为多个帧,待处理动画中的帧与视素序列中的视素按时刻对应。根据视素序列各时刻的视素,以及每个视素包括的动作单元对应的目标权重,对相应时刻的帧中的虚拟对象进行口型形变,得到口型形变后的各个帧。将各个帧按时刻融合,获得口型动画。
本实施例中,获取与音频关联的待处理动画,以根据视素序列各时刻的视素,以及每个视素包括的动作单元对应的目标权重,对待处理动画中的虚拟角色进行口型形变,获得口型动画使得所生成的口型动画中口型随音频的播放声音同步变化,所生成的口型动画中的口型在不同时刻的变化能够更接近于真实的人说话时面部肌肉的运动特效,使得口型动画中的口型变化更流畅,从而提高了口型动画生成的准确性。
在一个实施例中,根据视素序列各时刻视素中的同一动作单元对应的基础权重,生成该动作单元对应的基础权重曲线。根据视素序列各时刻视素中的同一动作单元的目标权重,生成该动作单元对应的目标权重曲线。根据各目标权重曲线上各时刻视素的目标权重,对待处理动画中的虚拟角色进行口型形变,获得口型动画。
本实施例中,对目标权重曲线进行采样,得到采样权重,基于采样权重和采样权重对应的时刻,对待处理动画中的虚拟角色进行口型形变,获得口型动画。
在一个实施例中,提供了一种口型动画生成方法,应用于计算机设备,包括:
从音频中提取出音素序列,将音素序列转换为视素序列,音素序列中的音素与视素序列中的视素按时刻对应,每个视素包括动作单元。
获取视素序列各时刻的视素中同一动作单元所对应的基础权重和权重误差,以及视素序列各时刻的视素的时间关系;根据各时刻的视素中同一动作单元所对应的基础权重和权重误差,确定视素序列各时刻的视素中同一动作单元所对应的权重范围。
针对每个时刻,确定所针对时刻在各时刻中相邻的前序时刻和后序时刻;获取动作单元对应的预设权重变化速度,基于所针对时刻的视素中同一动作单元对应的权重范围和预设权重变化速度,确定动作单元在所针对时刻和前序时刻间的权重变化时间;根据权重变化时间,以及所针对时刻和前序时刻之间的时间关系,确定所针对时刻的视素中同一动作单元对应的前序插值权重。所针对时刻和前序时刻之间的时间关系,即为所针对时刻的视素和前序时刻的前序视素之间的时间关系。
基于所针对时刻的视素中同一动作单元对应的权重范围和预设权重变化速度,确定动作单元在所针对时刻和后序时刻间的权重变化时间;根据权重变化时间,以及所针对时刻和后序时刻之间的时间关系,确定所针对时刻的视素中同一动作单元对应的后序插值权重。所针对时刻和后序时刻之间的时间关系,即为所针对时刻的视素和后序时刻的后序视素之间的时间关系。
基于所针对时刻的视素中同一动作单元对应的基础权重、前序视素中同一动作单元对应的基础权重和前序插值权重,确定视素序列中所针对时刻的视素中同一动作单元对应的前序更新权重;基于所针对时刻的视素中同一动作单元对应的基础权重、后序视素中同一动作单元对应的基础权重和后序插值权重,确定视素序列中所针对时刻的视素中同一动作单元对应的后序更新权重;根据前序更新权重和后序更新权重,确定所针对时刻的视素中同一动作单元对应的更新权重。
当各时刻的视素中同一动作单元的更新权重中,存在处于各自的权重范围内的更新权重和处于各自的权重范围外的更新权重,确定处于各自的权重范围外的更新权重所对应的时刻。
针对每个处于权重范围外的更新权重所对应的时刻,确定所针对时刻视素中同一动作单元的权重范围的上限值和下限值;当所针对时刻视素中同一动作单元的更新权重大于上限值,将上限值作为中所针对时刻的视素中同一动作单元的更新权重;当所针对时刻的视素中同一动作单元的更新权重小于下限值,将下限值作为所针对时刻的视素中同一动作单元的更新权重。
接着,基于各时刻的视素中同一动作单元对应的更新权重和各时刻的时间关系,确定该同一动作单元在各时刻间的更新权重变化速度;
当同一动作单元在各时刻间的更新权重变化速度小于或等于预设权重变化速度,将各时刻视素中同一动作单元的更新权重,作为各时刻视素中同一动作单元的目标权重。
当同一动作单元在各时刻间的更新权重变化速度大于预设权重变化速度,将各时刻的视素中同一动作单元的更新权重,作为下一迭代中各时刻的视素中同一动作单元的基础权重;在下一迭代中,按照根据各时刻的视素中的动作单元对应的基础权重和权重误差,确定视素序列各时刻的视素中的动作单元对应的权重范围的步骤并继续执行,直至迭代获得视素序列各时刻的视素中每个动作单元的目标权重。
获取与音频关联的待处理动画;根据视素序列各时刻的视素,以及每个视素包括的动作单元对应的目标权重,对待处理动画中的虚拟角色进行口型形变,获得口型动画,口型动画中口型随音频的播放声音同步变化。
本实施例中,从音频中提取出音素序列,将音素序列转换为视素序列,音素序列中的音素与视素序列中的视素按时刻对应,从而能够将音频中的每个时刻的音素转换为对应的视素,从而通过视觉方式呈现出音素。每个视素包括动作单元,动作单元用于模拟面部肌肉的运动特性,不同动作单元按照各自的权重形成视素,获取视素序列各时刻的视素中的动作单元所对应的基础权重,以及视素序列各时刻的视素的时间关系,从而能够确定动作单元在形成每个时刻的视素时所对应基础权重,并且能够确定同一动作单元在各时刻视素的时间关联性。
基于所针对时刻的视素中同一动作单元所的权重范围和预设权重变化速度,确定该动作单元在所针对时刻和相邻时刻间的权重变化时间,从而能够确定该动作单元从权重上限值改变到权重下限值所需要的时间。根据该权重变化时间,以及所针对时刻的视素和相邻视素之间的时间关系,确定所针对时刻的视素对应的插值权重,从而能够将权重的变化时间作为影响动作单元的权重改变的因素,由此更新的权重考虑了权重变化时间的因素,所更新的权重更准确。并且,权重变化时间基于权重范围和预设权重变化速度计算获得,使得所更新获得的权重能够被权重范围和预设权重变化速度所共同约束。
当视素序列各时刻的视素中同一动作单元对应的更新权重中,存在处于权重范围外的更新权重,从各更新权重中,确定处于权重范围外的更新权重所对应的目标时刻,以将目标时刻的视素中该动作单元对应的权重范围的上限值作为所针对目标时刻视素中该动作单元对应的更新权重,当更新权重小于下限值,将下限值作为所针对目标时刻的视素中该动作单元对应的目标权重,使得所得到的更新权重能够被权重范围约束。更新权重超出权重范围表征动作单元的动作幅度大于所模拟的面部肌肉的运动幅度,即超出了面部肌肉运动的极限,则将权重范围的上限值作为更新权重。
更新权重变化速度满足权重变化速度约束条件,表示动作单元在不同时刻的运动幅度改变,符合真实的面部肌肉运动时的改变快慢,即符合真实的肌肉运动特性,则将各时刻视素中该动作单元对应的更新权重,作为相同时刻的该动作单元对应的目标权重,能够有效模拟真实的人说话的面部肌肉运动变化的快慢,使得后续生成的口型动画中的口型符合真实人体说话的口型。
当动作单元在各时刻间的更新权重变化速度不满足权重变化速度约束条件,表示动作单元在不同时刻的运动幅度改变太快,超出了真实的面部肌肉运动时的改变快慢,则将各时刻的视素中该动作单元对应的更新权重,作为下一迭代中相同时刻的动作单元对应的基础权重,以在不满足权重变化速度约束条件的更新权重的基础上再次调整,使得通过多次迭代准确得到符合真实的面部肌肉运动时的改变快慢的目标权重。
获取与音频关联的待处理动画,根据视素序列各时刻的视素,以及每个视素包括的动作单元对应的目标权重,对待处理动画中的虚拟角色进行口型形变,获得口型动画,所生成的口型动画中口型随音频的播放声音同步变化,使得口型动画中的口型更接近于人的真实说话表现,口型动画中的口型更流畅,从而提高了口型动画生成的准确性。虚拟角色的口型变化与面部肌肉的变化之间更协调。
在一个实施例中,提供了一种口型动画生成方法的应用场景,包括:
获取音频,从音频中提取出音素序列,将音素序列转换为视素序列,该音素序列中的音素与视素序列中的视素按时刻对应,每个时刻有一个视素,视素包括各动作单元。从权重表中获取每个动作单元在视素序列中各时刻的视素中对应的基础权重,生成每个动作单元对应的基础权重曲线。该原始权重曲线的横坐标与视素序列中的视素按时刻对应,纵坐标为基础权重。基础权重曲线即基础AU曲线。
如图13所示,以音频中的“大海”二字为例。其中,第一个曲线图中是动作单元“下巴张开”所对应的曲线,第二个曲线图中是动作单元“嘴唇拉宽”所对应的曲线。生成图中的各曲线的具体处理步骤如下:
第一步,生成基础AU曲线,基础AU曲线即基础权重曲线。“大海”对应的音素为:“D”、“A”、“H”、“A”、“I”,t[1] 时刻的音素为“D”,其对应的视素为“DT”。视素“DT”,从权重表中可查到,动作单元“下巴张开”在形成t[1]时刻视素“DT”时的基础权重v[1]为 0.14。t[2]时刻的音素为“A”,其对应视素为“A”,从权重表中可查到,动作单元“下巴张开”在形成t[2]时刻的视素“A”时的基础权重v[2]为 0.54,从而生成动作单元“下巴张开”在t[1] 至t[2]时刻的基础AU曲线。由此,基于动作单元“下巴张开”在音频的每个时刻的基础权重,可生成动作单元“下巴张开”对应该音频的基础曲线。
按照相同的处理,可生成动作单元“嘴唇拉宽”对应该音频的基础曲线。
第二步,设置每条基础AU曲线上每个时刻的基础权重的可移动范围,即权重范围。同样查表可得,动作单元“下巴张开”在形成t[1] 时刻视素“DT”时的权重误差为±0.02,因此在t[1]时刻设置动作单元“下巴张开”的权重范围range[1]为[0.12,0.16]。同理,动作单元“下巴张开”在形成t[2] 时刻的视素“A”时的权重误差为0.2,因此在t2时刻设置动作单元“下巴张开”的权重范围range2为[0.34,0.74].各权重范围如图13的曲线上的柱状图所示。
第三步,懒惰优化。由于真实的人在说话时,面部肌肉总是试图节省能量,因此肌肉会在能保证正确发音的情况下尽量少移动、尽量缓慢移动。因此,也就是说所生成的目标AU曲线中的每个权重,要尽量趋近相邻时刻的权重,同时又不超过权重范围,以此来模拟肌肉的“懒惰”现象,以使生成的口型动画中的口型变化尽可能与肌肉的“懒惰”现象相似。懒惰优化的过程如下:
查表获得动作单元“下巴张开”对应的预设权重变化速度AUChangeSpeed,计算出动作单元“下巴张开”在t[i]时刻的权重范围range[i]中上限值和下限值之间的权重差值Range。根据AUChangeTime = Range / AUChangeSpeed,计算出t[i]时刻的动作单元“下巴张开”对应的权重变化时间AUChangeTime。
计算t[i] 时刻和相邻前序时刻t[i-1]时刻之间的时间差(t[i] - t[i-1]),根据alpha0 =(t[i] -t[i-1]) / AUChangeTime,计算出前序插值权重alpha0。计算t[i]时刻和相邻前序时刻t[i+1]时刻之间的时间差(t[i]- t[i+1]),根据alpha1 =(t[i]- t[i+1]) /AUChangeTime,计算出后序插值权重alpha1。alpha0和alpha1处于0至1之间。时间差越大,t[i]时刻的插值权重就越大,反之则越小。
接着,按照以下公式计算出动作单元“下巴张开”在t[i]时刻对应的更新权重TempValue[i]:
PreValue[i] =(1-alpha0)*v[i-1]+ alpha0 * v[i];
NextValue[i] =(1-alpha1)*v[i+1]+ alpha1 * v[i];
TempValue[i]=(PreValue[i]+ NextValue[i])/ 2;
其中,PreValue[i]为动作单元“下巴张开”在t[i]时刻对应的前序更新权重,NextValue[i]为动作单元“下巴张开”在t[i]时刻对应的后序更新权重。
当动作单元“下巴张开”在t[i]时刻对应的更新权重TempValue[i]超出对应的权重范围,若更新权重TempValue[i]大于权重范围的上限值,则将该上限值作为动作单元“下巴张开”在t[i]时刻对应的更新权重TempValue[i];若更新权重TempValue[i]小于该权重范围的下限值,则将该下限值作为动作单元“下巴张开”在t[i]时刻对应的更新权重TempValue[i]。
第四步,迟钝优化。由于肌肉的灵活度有限,因此当连续的发音超过肌肉的运动幅度时,不能每个音都准确发出。也就是要限制权重变化速度不能超过最大变化速度,以此来模拟肌肉的“迟钝”现象。迟钝优化的过程如下:
经过懒惰优化之后,每条基础AU曲线上的每个时刻t[i],都会得到一个更新权重TempValue[i]。要求更新权重TempValue[i]与前一个时刻的斜率不能大于预设权重变化速度AUChangeSpeed。该预设权重变化速度AUChangeSpeed为最大变化速度MaxSpeed。
例如,对于动作单元“下巴张开”在t[i]时刻对应的更新权重TempValue[i],判断(TempValue[i] - V[i-1])/ t[i] – t[i-1])是否小于或等于 MaxSpeed。
当(TempValue[i] - V[i-1])/ t[i] – t[i-1])小于或等于 MaxSpeed,该更新权重TempValue[i]作为动作单元“下巴张开”在t[i]时刻对应的目标权重。
当(TempValue[i] - V[i-1])/ t[i] – t[i-1])﹥ MaxSpeed,将动作单元“下巴张开”在t[i]时刻对应的更新权重TempValue[i],作为动作单元“下巴张开”在下一次迭代中的t[i]时刻对应的基础权重v[i],从而进入下一次迭代。每次迭代包括一次懒惰优化和一次迟钝优化。
经过多次懒惰优化和迟钝优化后,即可得到图13中所示的目标AU曲线,目标AU曲线即目标权重曲线。按照相同的处理,可得到每个动作单元对应的目标AU曲线。
最后,按照目标AU曲线对待处理动画中相应的虚拟角色进行口型形变,即可获得口型动画。
本实施例中,通过懒惰优化和迟钝优化对基础权重曲线进行优化后,可以使自动生成的口型动画更接近于人的真实说话表现,并且完全可制,效果可预期,算法高效,生效速度快。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的口型动画生成方法的口型动画生成装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个口型动画生成装置实施例中的具体限定可以参见上文中对于口型动画生成方法的限定,在此不再赘述。
在一个实施例中,如图14所示,提供了一种口型动画生成装置1400,包括:转换模块1402、获取模块1404、确定模块1406和生成模块1408,其中:
转换模块1402,用于从音频中提取出音素序列,将音素序列转换为视素序列,音素序列中的音素与视素序列中的视素按时刻对应,每个视素包括动作单元。
获取模块1404,用于获取视素序列各时刻的视素中的动作单元所对应的基础权重,以及视素序列各时刻的视素的时间关系。
确定模块1406,用于基于视素序列各时刻的视素中的动作单元所对应的基础权重,以及各时刻的视素的时间关系,按照预设的权重约束条件,确定视素序列各时刻的视素中的动作单元对应的目标权重;权重约束条件用于通过约束目标权重约束口型变化。
生成模块1408,用于根据视素序列各时刻的视素,以及每个视素包括的动作单元对应的目标权重,生成口型动画,口型动画中口型随音频的播放声音同步变化。
本实施例中,从音频中提取出音素序列,将音素序列转换为视素序列,音素序列中的音素与视素序列中的视素按时刻对应,从而能够将音频中的每个时刻的音素转换为对应的视素,从而通过视觉方式呈现出音素。每个视素包括动作单元,动作单元用于模拟面部肌肉的运动特性,不同动作单元按照各自的权重形成视素,获取动视素序列各时刻视素中的动作单元所对应的基础权重,以及视素序列各时刻的视素的时间关系,从而能够确定动作单元在形成每个时刻的视素时所对应基础权重,并且能够确定同一动作单元在各时刻的视素之间的时间关联性。基于各时刻视素中的同一动作单元对应的基础权重和时间关联性,按照预设的权重约束条件,确定同一动作单元在形成每个时刻的视素时所对应的目标权重,而每个时刻的目标权重均受到权重约束条件的约束,从而能够通过约束目标权重约束所生成的口型动画中的口型变化,使得口型变化能够符合面部肌肉的运动,口型变化与面部肌肉的运动之间更协调自然。根据视素序列各时刻的视素,以及每个视素包括的动作单元相对于视素序列各时刻视素的目标权重,生成口型动画,使得所生成的口型动画中口型随音频的播放声音同步变化,并且口型动画中的口型更接近于人的真实说话表现,使得口型动画中的口型更流畅,从而提高了口型动画生成的准确性。
在其中一个实施例中,权重约束条件表征通过权重范围约束目标权重;确定模块1406,用于获取视素序列各时刻的视素中的动作单元对应的权重误差;根据各时刻的视素中的动作单元对应的基础权重和权重误差,确定视素序列各时刻的视素中的动作单元对应的权重范围;基于各时刻的视素中的动作单元对应的基础权重、权重范围和各时刻的视素的时间关系,确定视素序列各时刻的视素中的动作单元对应的更新权重;当视素序列各时刻的视素中的动作单元对应的更新权重处于各自的权重范围内,将各时刻的视素中的动作单元对应的更新权重,作为视素序列各时刻的视素中的动作单元对应的目标权重。
本实施例中,权重约束条件表征通过权重范围约束目标权重,从而约束口型变化。获取视素序列各时刻的视素中的动作单元对应的权重误差,以根据各时刻视素中该动作单元对应的基础权重和权重误差,确定视素序列各时刻视素中该动作单元对应的权重范围,从而能够模拟口型变化时肌肉运动的运动幅度的大小。基于各时刻的视素中该动作单元对应的基础权重、权重范围和各时刻的视素的时间关系,确定视素序列各时刻的视素中该动作单元对应的更新权重,能够考虑到各个视素对一个视素的权重变化的影响和时间变化的影响,从而基于这些影响尽量将动作单元在不同时刻均调整为更符合面部肌肉运动的运动幅度。
当视素序列各时刻视素中该动作单元的更新权重处于权重范围内,表示此时的该动作单元的动作幅度的符合肌肉运动的运动幅度,从而将各时刻视素中该动作单元的更新权重,作为相同时刻的视素中该动作单元的目标权重,使得最后生成的口型动画中口型变化符合真实人物说话时的面部肌肉的运动幅度,有效避免口型变化幅度超过真实人物说话时的正常幅度所导致的口型不协调、不自然的现象,从而提高口型动画的质量。
在其中一个实施例中,确定模块1406,还用于针对视素序列各时刻的视素中每个时刻的视素,确定所针对时刻的视素在视素序列中的相邻视素;获取动作单元对应的预设权重变化速度,基于预设权重变化速度、所针对时刻的视素中的动作单元对应的权重范围、所针对时刻的视素和相邻视素之间的时间关系,确定所针对时刻的视素中的动作单元对应的插值权重;基于所针对时刻的视素中的动作单元对应的基础权重、相邻视素中的动作单元对应的基础权重和插值权重,确定所针对时刻的视素中的动作单元对应的更新权重。
本实施例中,针对视素序列各时刻的视素中的每个时刻的视素,确定所针对时刻的视素在视素序列中的相邻视素,以确定对所针对时刻的视素关联紧密的视素。获取动作单元对应的预设权重变化速度,该预设权重变化速度表征动作单元在两个相邻时刻的权重对应的变化速度。基于预设权重变化速度、所针对时刻的视素中的动作单元对应的权重范围、所针对时刻的视素和相邻视素之间的时间关系,确定所针对时刻的视素中的动作单元对应的插值权重,能够确定相邻视素中同一动作单元的动作幅度对所针对时刻视素中同一动作单元的动作幅度产生的影响程度,以考虑到每个时刻的动作单元被相邻时刻的相同动作单元的影响程度,从而考虑到每个时刻的视素被相邻视素的影响程度。基于所针对时刻的视素中的动作单元对应的基础权重、相邻视素中的动作单元对应的基础权重和相邻时刻的影响程度,能够准确地确定视素序列中所针对时刻的视素中的动作单元对应的更新权重。
在其中一个实施例中,相邻视素包括与所针对时刻的视素相邻的前序视素,以及相邻的后序视素,所针对时刻的视素中的动作单元对应的插值权重,包括所针对时刻的视素中的动作单元对应的前序插值权重,以及所针对时刻的视素中的动作单元对应的后序插值权重;
确定模块1406,还用于基于所针对时刻的视素中的动作单元对应的基础权重、前序视素中的动作单元对应的基础权重和前序插值权重,确定所针对时刻的视素中的动作单元对应的前序更新权重;基于所针对时刻的视素中的动作单元对应的基础权重、后序视素中的动作单元对应的基础权重和后序插值权重,确定所针对时刻的视素中的动作单元对应的后序更新权重;根据所针对时刻的视素中的动作单元对应的前序更新权重和后序更新权重,确定所针对时刻的视素中的动作单元对应的更新权重。
本实施例中,基于所针对时刻的视素中的动作单元对应的基础权重、前序视素中的动作单元对应的基础权重和前序插值权重,确定所针对时刻的视素中的动作单元对应的前序更新权重,能够确定相邻前序视素中同一动作单元的动作幅度对所针对时刻视素中同一动作单元的动作幅度产生的影响程度。基于所针对时刻的视素中的动作单元对应的基础权重、后序视素中的动作单元对应的基础权重和后序插值权重,确定所针对时刻的视素中的动作单元对应的后序更新权重,能够确定相邻后序视素中同一动作单元的动作幅度对所针对时刻视素中同一动作单元的动作幅度产生的影响程度,从而考虑到每个时刻的视素被相邻前后视素的影响程度,以根据所针对时刻的视素中的动作单元对应的前序更新权重和后序更新权重,准确地确定所针对时刻的视素中的动作单元对应的更新权重。
在其中一个实施例中,确定模块1406,还用于基于所针对时刻的视素中的动作单元对应的权重范围和预设权重变化速度,确定所针对时刻的视素中的动作单元对应的权重变化时间;根据权重变化时间,以及所针对时刻的视素和相邻视素之间的时间关系,确定所针对时刻的视素中的动作单元对应的插值权重。
本实施例中,基于所针对时刻的视素中的动作单元对应的权重范围和预设权重变化速度,确定所针对时刻的视素中的动作单元对应的权重变化时间,从而能够确定动作单元从权重上限值改变到权重下限值所需要的时间。根据该权重变化时间,以及所针对时刻的视素和相邻视素之间的时间关系,确定所针对时刻的视素中的动作单元对应的插值权重,从而能够将权重的变化时间作为影响动作单元的权重改变的因素,由此更新的权重考虑了权重变化时间的因素,所更新的权重更准确。
在其中一个实施例中,该装置还包括迭代模块;迭代模块,用于从各时刻视素中的动作单元对应的更新权重中,确定处于权重范围外的更新权重所对应的目标时刻;将每个目标时刻作为动作单元在下一迭代中的所针对时刻,将所针对时刻的视素中的动作单元对应的更新权重,作为下一迭代中所针对时刻的视素中的动作单元对应的基础权重;在下一迭代中,按照确定所针对时刻的视素在视素序列中的相邻视素的步骤并继续执行,直至迭代得到所针对时刻的视素中的动作单元对应的目标权重,相邻视素中的动作单元对应的更新权重作为下一迭代中的基础权重。
本实施例中,更新权重超出权重范围表征动作单元的动作幅度大于所模拟的面部肌肉的运动幅度,即超出了面部肌肉运动的极限。当视素序列各时刻视素中的动作单元对应的更新权重中,存在处于权重范围外的更新权重,从各时刻视素中的动作单元对应的更新权重中,确定处于权重范围外的更新权重所对应的目标时刻,从而能够确定出动作单元在哪个时刻的视素的动作幅度超出了所模拟的面部肌肉的运动极限。将每个目标时刻作为动作单元在下一迭代中的所针对时刻,将所针对时刻的视素中的动作单元对应的更新权重,作为下一迭代中相同时刻的视素中相同动作单元对应的基础权重,以在超出运动极限的更新权重的基础上再次调整,使得通过多次迭代准确得到处于所模拟的面部肌肉的运动幅度内的权重,使得后续生成的口型动画中的口型更自然。
在其中一个实施例中,确定模块1406,还用于当视素序列各时刻的视素中的动作单元对应的更新权重中,存在处于相应的权重范围外的更新权重,确定处于相应的权重范围外的更新权重所对应的目标时刻;针对每个目标时刻,确定所针对目标时刻的视素中的动作单元所对应的权重范围的上限值和下限值;当所针对目标时刻的视素中的动作单元对应的更新权重大于上限值,将上限值作为所针对目标时刻的视素中的动作单元对应的目标权重。
本实施例中,当视素序列各时刻的视素中的动作单元对应的更新权重中,存在处于权重范围外的更新权重,从各时刻视素的更新权重中,确定处于权重范围外的更新权重所对应的目标时刻,以将目标时刻的视素中的动作单元所对应的权重范围的上限值作为该时刻的动作单元的目标权重,使得所得到的目标权重能够被权重范围约束。更新权重超出权重范围表征动作单元的动作幅度大于所模拟的面部肌肉的运动幅度,即超出了面部肌肉运动的极限,则将权重范围的上限值作为目标权重,能够将动作单元的动作幅度限制在面部肌肉的运动幅度范围内,使得后续生成的口型动画中的口型更符合真实的口型。
在其中一个实施例中,确定模块1406,还用于当所针对目标时刻的视素中的动作单元对应的更新权重小于下限值,将下限值作为所针对目标时刻的视素中的动作单元对应的目标权重。
本实施例中,更新权重超出权重范围表征动作单元的动作幅度大于所模拟的面部肌肉的运动幅度,即超出了面部肌肉运动的极限。当所针对目标时刻视素中动作单元所对应的更新权重小于下限值,将下限值作为该动作单元在所针对目标时刻的视素中对应的目标权重,能够将动作单元的动作幅度限制在面部肌肉的运动幅度范围内,使得后续生成的口型动画中的口型更符合真实的口型。
在其中一个实施例中,权重约束条件包括权重变化速度约束条件;确定模块1406,还用于基于视素序列各时刻的视素中的动作单元对应的基础权重和各时刻的视素的时间关系,确定视素序列各时刻的视素中的动作单元对应的更新权重;基于各时刻的视素中的动作单元对应的更新权重和各时刻的视素的时间关系,确定各时刻的视素中的动作单元对应的更新权重变化速度;获取动作单元对应的权重变化速度约束条件,当各时刻的视素中的动作单元对应的更新权重变化速度满足权重变化速度约束条件,将各时刻视素中的动作单元对应的更新权重,作为视素序列各时刻的视素中的动作单元对应的目标权重。
本实施例中,更新权重变化速度满足权重变化速度约束条件,表示动作单元在不同时刻的运动幅度改变,符合真实的面部肌肉运动时的改变快慢,即符合真实的肌肉运动特性,则将同一动作单元在视素序列各时刻视素中对应的更新权重,作为该动作单元在视素序列相同时刻的视素中对应的目标权重,能够有效模拟真实的人说话的面部肌肉运动变化的快慢,使得后续生成的口型动画中的口型符合真实人体说话的口型,从而使得口型动画的口型在不同时刻的变化更协调、自然。
在其中一个实施例中,该装置还包括迭代模块;迭代模块,用于当各时刻的视素中的动作单元对应的更新权重变化速度不满足权重变化速度约束条件,将各时刻的视素中的动作单元对应的更新权重,作为下一迭代中各时刻的视素中的动作单元对应的基础权重;在下一迭代中,按照基于视素序列各时刻的视素中的动作单元对应的基础权重和各时刻的视素的时间关系,确定视素序列各时刻的视素中的动作单元对应的更新权重的步骤并继续执行,直至迭代获得视素序列各时刻的视素中的动作单元对应的目标权重。
本实施例中,当动作单元在各时刻间的更新权重变化速度不满足权重变化速度约束条件,表示动作单元在不同时刻的运动幅度改变太快,超出了真实的面部肌肉运动时的改变快慢,则将各时刻视素中同一动作单元的更新权重,作为该动作单元在下一迭代中在相同时刻的视素中对应的基础权重,以在不满足权重变化速度约束条件的更新权重的基础上再次调整,使得通过多次迭代准确得到符合真实的面部肌肉运动时的改变快慢的目标权重,使得后续生成的口型动画中的口型更自然。
在其中一个实施例中,生成模块1408,还用于获取与音频关联的待处理动画;根据视素序列各时刻的视素,以及每个视素包括的动作单元对应的目标权重,对待处理动画中的虚拟角色进行口型形变,获得口型动画。
本实施例中,获取与音频关联的待处理动画,以根据视素序列各时刻的视素,以及每个视素包括的动作单元对应的目标权重,对待处理动画中的虚拟角色进行口型形变,获得口型动画使得所生成的口型动画中口型随音频的播放声音同步变化,所生成的口型动画中的口型在不同时刻的变化能够更接近于真实的人说话时面部肌肉的运动特效,使得口型动画中的口型变化更流畅,从而提高了口型动画生成的准确性。
上述口型动画生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图15所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储口型动画生成数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种口型动画生成方法。
本领域技术人员可以理解,图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random AccessMemory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (15)
1.一种口型动画生成方法,其特征在于,所述方法包括:
从音频中提取出音素序列,将所述音素序列转换为视素序列,所述音素序列中的音素与所述视素序列中的视素按时刻对应,每个所述视素包括动作单元;
获取所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述视素序列各时刻的视素的时间关系;
基于所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述各时刻的视素的时间关系,按照预设的权重约束条件,确定所述视素序列各时刻的视素中的所述动作单元对应的目标权重;所述权重约束条件用于通过约束所述目标权重约束口型变化;
根据所述视素序列各时刻的视素,以及每个所述视素包括的动作单元对应的目标权重,生成口型动画,所述口型动画中口型随所述音频的播放声音同步变化。
2.根据权利要求1所述的方法,其特征在于,所述权重约束条件表征通过权重范围约束所述目标权重;所述基于所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述各时刻的视素的时间关系,按照预设的权重约束条件,确定所述视素序列各时刻的视素中的所述动作单元对应的目标权重,包括:
获取所述视素序列各时刻的视素中的所述动作单元对应的权重误差;
根据所述各时刻的视素中的所述动作单元对应的基础权重和所述权重误差,确定所述视素序列各时刻的视素中的所述动作单元对应的权重范围;
基于所述各时刻的视素中的所述动作单元对应的基础权重、所述权重范围和所述各时刻的视素的时间关系,确定所述视素序列各时刻的视素中的所述动作单元对应的更新权重;
当所述视素序列各时刻的视素中的所述动作单元对应的更新权重处于各自的所述权重范围内,将所述各时刻的视素中的所述动作单元对应的更新权重,作为所述视素序列各时刻的视素中的所述动作单元对应的目标权重。
3.根据权利要求2所述的方法,其特征在于,所述基于所述各时刻的视素中的所述动作单元对应的基础权重、所述权重范围和所述各时刻的视素的时间关系,确定所述视素序列各时刻的视素中的所述动作单元对应的更新权重,包括:
针对所述视素序列各时刻的视素中每个所述时刻的视素,确定所针对时刻的视素在所述视素序列中的相邻视素;
获取所述动作单元对应的预设权重变化速度,基于所述预设权重变化速度、所针对时刻的视素中的所述动作单元对应的权重范围、所针对时刻的视素和所述相邻视素之间的时间关系,确定所针对时刻的视素中的所述动作单元对应的插值权重;
基于所针对时刻的视素中的所述动作单元对应的基础权重、所述相邻视素中的所述动作单元对应的基础权重和所述插值权重,确定所针对时刻的视素中的所述动作单元对应的更新权重。
4.根据权利要求3所述的方法,其特征在于,所述相邻视素包括与所针对时刻的视素相邻的前序视素,以及相邻的后序视素,所述所针对时刻的视素中的所述动作单元对应的插值权重,包括所针对时刻的视素中的所述动作单元对应的前序插值权重,以及所针对时刻的视素中的所述动作单元对应的后序插值权重;
所述基于所针对时刻的视素中的所述动作单元对应的基础权重、所述相邻视素中的所述动作单元对应的基础权重和所述插值权重,确定所针对时刻的视素中的所述动作单元对应的更新权重,包括:
基于所针对时刻的视素中的所述动作单元对应的基础权重、所述前序视素中的所述动作单元对应的基础权重和所述前序插值权重,确定所针对时刻的视素中的所述动作单元对应的前序更新权重;
基于所针对时刻的视素中的所述动作单元对应的基础权重、所述后序视素中的所述动作单元对应的基础权重和所述后序插值权重,确定所针对时刻的视素中的所述动作单元对应的后序更新权重;
根据所针对时刻的视素中的所述动作单元对应的所述前序更新权重和所述后序更新权重,确定所针对时刻的视素中的所述动作单元对应的更新权重。
5.根据权利要求3所述的方法,其特征在于,所述基于所述预设权重变化速度、所针对时刻的视素中的所述动作单元对应的权重范围、所针对时刻的视素和所述相邻视素之间的时间关系,确定所针对时刻的视素中的所述动作单元对应的插值权重,包括:
基于所针对时刻的视素中的所述动作单元对应的权重范围和所述预设权重变化速度,确定所针对时刻的视素中的所述动作单元对应的权重变化时间;
根据所述权重变化时间,以及所针对时刻的视素和所述相邻视素之间的时间关系,确定所针对时刻的视素中的所述动作单元对应的插值权重。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
从所述各时刻的视素中的所述动作单元对应的更新权重中,确定处于所述权重范围外的更新权重所对应的目标时刻;
将每个所述目标时刻作为所述动作单元在下一迭代中的所针对时刻,将所针对时刻的视素中的所述动作单元对应的更新权重,作为所述下一迭代中所针对时刻的视素中的所述动作单元对应的基础权重;
在所述下一迭代中,按照所述确定所针对时刻的视素在所述视素序列中的相邻视素的步骤并继续执行,直至迭代得到所针对时刻的视素中的所述动作单元对应的目标权重;所述相邻视素中的所述动作单元对应的更新权重作为所述下一迭代中的基础权重。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述视素序列各时刻的视素中的所述动作单元对应的更新权重中,存在处于相应的权重范围外的更新权重,确定处于相应的权重范围外的更新权重所对应的目标时刻;
针对每个所述目标时刻,确定所针对目标时刻的视素中的所述动作单元所对应的权重范围的上限值和下限值;
当所针对目标时刻的视素中的所述动作单元对应的更新权重大于所述上限值,将所述上限值作为所针对目标时刻的视素中的所述动作单元对应的目标权重。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当所针对目标时刻的视素中的所述动作单元对应的更新权重小于所述下限值,将所述下限值作为所针对目标时刻的视素中的所述动作单元对应的目标权重。
9.根据权利要求1所述的方法,其特征在于,所述权重约束条件包括权重变化速度约束条件;所述基于所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述各时刻的视素的时间关系,按照预设的权重约束条件,确定所述视素序列各时刻的视素中的所述动作单元对应的目标权重,包括:
基于所述视素序列各时刻的视素中的所述动作单元对应的基础权重和所述各时刻的视素的时间关系,确定所述视素序列各时刻的视素中的所述动作单元对应的更新权重;
基于所述各时刻的视素中的所述动作单元对应的更新权重和所述各时刻的视素的时间关系,确定所述各时刻的视素中的所述动作单元对应的更新权重变化速度;
获取所述动作单元对应的权重变化速度约束条件,当所述各时刻的视素中的所述动作单元对应的更新权重变化速度满足所述权重变化速度约束条件,将所述各时刻的视素中的所述动作单元对应的更新权重,作为所述视素序列各时刻的视素中的所述动作单元对应的目标权重。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当所述各时刻的视素中的所述动作单元对应的更新权重变化速度不满足所述权重变化速度约束条件,将所述各时刻的视素中的所述动作单元对应的更新权重,作为下一迭代中所述各时刻的视素中的所述动作单元对应的基础权重;
在所述下一迭代中,按照所述基于所述视素序列各时刻的视素中的所述动作单元对应的基础权重和所述各时刻的视素的时间关系,确定所述视素序列各时刻的视素中的所述动作单元对应的更新权重的步骤并继续执行,直至迭代获得所述视素序列各时刻的视素中的所述动作单元对应的目标权重。
11.根据权利要求1至10任意一项所述的方法,其特征在于,所述根据所述视素序列各时刻的视素,以及每个所述视素包括的动作单元对应的目标权重,生成口型动画,包括:
获取与所述音频关联的待处理动画;
根据所述视素序列各时刻的视素,以及每个所述视素包括的动作单元对应的目标权重,对所述待处理动画中的虚拟角色进行口型形变,获得口型动画。
12.一种口型动画生成装置,其特征在于,所述装置包括:
转换模块,用于从音频中提取出音素序列,将所述音素序列转换为视素序列,所述音素序列中的音素与所述视素序列中的视素按时刻对应,每个所述视素包括动作单元;
获取模块,用于获取所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述视素序列各时刻的视素的时间关系;
确定模块,用于基于所述视素序列各时刻的视素中的所述动作单元所对应的基础权重,以及所述各时刻的视素的时间关系,按照预设的权重约束条件,确定所述视素序列各时刻的视素中的所述动作单元对应的目标权重;所述权重约束条件用于通过约束所述目标权重约束口型变化;
生成模块,用于根据所述视素序列各时刻的视素,以及每个所述视素包括的动作单元对应的目标权重,生成口型动画,所述口型动画中口型随所述音频的播放声音同步变化。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311184566.XA CN116912376B (zh) | 2023-09-14 | 2023-09-14 | 口型动画生成方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311184566.XA CN116912376B (zh) | 2023-09-14 | 2023-09-14 | 口型动画生成方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116912376A true CN116912376A (zh) | 2023-10-20 |
CN116912376B CN116912376B (zh) | 2023-12-22 |
Family
ID=88353538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311184566.XA Active CN116912376B (zh) | 2023-09-14 | 2023-09-14 | 口型动画生成方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116912376B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100057455A1 (en) * | 2008-08-26 | 2010-03-04 | Ig-Jae Kim | Method and System for 3D Lip-Synch Generation with Data-Faithful Machine Learning |
CN101923726A (zh) * | 2009-06-09 | 2010-12-22 | 华为技术有限公司 | 一种语音动画生成方法及系统 |
CA2959862A1 (en) * | 2017-03-03 | 2018-09-03 | The Governing Council Of The University Of Toronto | System and method for animated lip synchronization |
US20180253881A1 (en) * | 2017-03-03 | 2018-09-06 | The Governing Council Of The University Of Toronto | System and method for animated lip synchronization |
US20190057533A1 (en) * | 2017-08-16 | 2019-02-21 | Td Ameritrade Ip Company, Inc. | Real-Time Lip Synchronization Animation |
CN111915707A (zh) * | 2020-07-01 | 2020-11-10 | 天津洪恩完美未来教育科技有限公司 | 一种基于音频信息的口型动画展示方法、装置及存储介质 |
CN112348932A (zh) * | 2020-11-13 | 2021-02-09 | 广州博冠信息科技有限公司 | 口型动画录制方法及装置、电子设备、存储介质 |
CN112734889A (zh) * | 2021-02-19 | 2021-04-30 | 北京中科深智科技有限公司 | 一种2d角色的口型动画实时驱动方法和系统 |
CN113383384A (zh) * | 2019-01-25 | 2021-09-10 | 索美智能有限公司 | 语音动画的实时生成 |
WO2021227308A1 (zh) * | 2020-05-15 | 2021-11-18 | 完美世界(北京)软件科技发展有限公司 | 一种视频资源的生成方法和装置 |
CN115330913A (zh) * | 2022-10-17 | 2022-11-11 | 广州趣丸网络科技有限公司 | 三维数字人口型生成方法、装置、电子设备及存储介质 |
US20220375456A1 (en) * | 2021-08-12 | 2022-11-24 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method for animation synthesis, electronic device and storage medium |
CN115423904A (zh) * | 2022-08-31 | 2022-12-02 | 厦门黑镜科技有限公司 | 一种口型动画的生成方法、装置、电子设备及存储介质 |
CN116366872A (zh) * | 2023-04-07 | 2023-06-30 | 世优(北京)科技有限公司 | 基于中之人和人工智能的直播方法、装置及系统 |
CN116721191A (zh) * | 2023-08-09 | 2023-09-08 | 腾讯科技(深圳)有限公司 | 口型动画处理方法、装置及存储介质 |
-
2023
- 2023-09-14 CN CN202311184566.XA patent/CN116912376B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100057455A1 (en) * | 2008-08-26 | 2010-03-04 | Ig-Jae Kim | Method and System for 3D Lip-Synch Generation with Data-Faithful Machine Learning |
CN101923726A (zh) * | 2009-06-09 | 2010-12-22 | 华为技术有限公司 | 一种语音动画生成方法及系统 |
CA2959862A1 (en) * | 2017-03-03 | 2018-09-03 | The Governing Council Of The University Of Toronto | System and method for animated lip synchronization |
US20180253881A1 (en) * | 2017-03-03 | 2018-09-06 | The Governing Council Of The University Of Toronto | System and method for animated lip synchronization |
US20190057533A1 (en) * | 2017-08-16 | 2019-02-21 | Td Ameritrade Ip Company, Inc. | Real-Time Lip Synchronization Animation |
CN113383384A (zh) * | 2019-01-25 | 2021-09-10 | 索美智能有限公司 | 语音动画的实时生成 |
WO2021227308A1 (zh) * | 2020-05-15 | 2021-11-18 | 完美世界(北京)软件科技发展有限公司 | 一种视频资源的生成方法和装置 |
CN111915707A (zh) * | 2020-07-01 | 2020-11-10 | 天津洪恩完美未来教育科技有限公司 | 一种基于音频信息的口型动画展示方法、装置及存储介质 |
CN112348932A (zh) * | 2020-11-13 | 2021-02-09 | 广州博冠信息科技有限公司 | 口型动画录制方法及装置、电子设备、存储介质 |
CN112734889A (zh) * | 2021-02-19 | 2021-04-30 | 北京中科深智科技有限公司 | 一种2d角色的口型动画实时驱动方法和系统 |
US20220375456A1 (en) * | 2021-08-12 | 2022-11-24 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method for animation synthesis, electronic device and storage medium |
CN115423904A (zh) * | 2022-08-31 | 2022-12-02 | 厦门黑镜科技有限公司 | 一种口型动画的生成方法、装置、电子设备及存储介质 |
CN115330913A (zh) * | 2022-10-17 | 2022-11-11 | 广州趣丸网络科技有限公司 | 三维数字人口型生成方法、装置、电子设备及存储介质 |
CN116366872A (zh) * | 2023-04-07 | 2023-06-30 | 世优(北京)科技有限公司 | 基于中之人和人工智能的直播方法、装置及系统 |
CN116721191A (zh) * | 2023-08-09 | 2023-09-08 | 腾讯科技(深圳)有限公司 | 口型动画处理方法、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
LINCHAO BAO ET AL: "Learning Audio-Driven Viseme Dynamics for 3D Face Animation", ARXIV, pages 1 - 10 * |
Also Published As
Publication number | Publication date |
---|---|
CN116912376B (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cao et al. | Expressive speech-driven facial animation | |
CN110751708B (zh) | 一种实时的语音驱动人脸动画的方法和系统 | |
KR101558202B1 (ko) | 아바타를 이용한 애니메이션 생성 장치 및 방법 | |
CA2375350C (en) | Method of animating a synthesised model of a human face driven by an acoustic signal | |
CN110910479B (zh) | 视频处理方法、装置、电子设备及可读存储介质 | |
CN110942502B (zh) | 语音唇形拟合方法、系统及存储介质 | |
Ma et al. | Styletalk: One-shot talking head generation with controllable speaking styles | |
CN108538308B (zh) | 基于语音的口型和/或表情模拟方法及装置 | |
US20060221084A1 (en) | Method and apparatus for animation | |
CN108090940A (zh) | 基于文本的视频生成 | |
CN113901894A (zh) | 一种视频生成方法、装置、服务器及存储介质 | |
Mattos et al. | Improving CNN-based viseme recognition using synthetic data | |
CN111724458A (zh) | 一种语音驱动的三维人脸动画生成方法及网络结构 | |
CN116597857A (zh) | 一种语音驱动图像的方法、系统、装置及存储介质 | |
CN116363268A (zh) | 一种口型动画的生成方法、装置、电子设备和存储介质 | |
CN116912376B (zh) | 口型动画生成方法、装置、计算机设备和存储介质 | |
Tang et al. | Real-time conversion from a single 2D face image to a 3D text-driven emotive audio-visual avatar | |
CN116758189A (zh) | 基于语音驱动的数字人图像生成方法、装置及存储介质 | |
JP2974655B1 (ja) | アニメーションシステム | |
CN114581811B (zh) | 基于时空注意力机制的视觉语言识别方法和相关设备 | |
CN114202605B (zh) | 3d视频生成方法、模型训练方法、装置、设备和介质 | |
CN113449590B (zh) | 说话视频生成方法及装置 | |
CN113362432B (zh) | 一种面部动画生成方法及装置 | |
CN114445529A (zh) | 一种基于动作及语音特征的人脸图像动画方法和系统 | |
WO2023032224A1 (ja) | 画像処理装置、学習装置、画像処理方法、学習方法、画像処理プログラム及び学習プログラム |
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: 40098477 Country of ref document: HK |