CN118229891A - 一种语音驱动三维人脸生成方法、系统及设备 - Google Patents
一种语音驱动三维人脸生成方法、系统及设备 Download PDFInfo
- Publication number
- CN118229891A CN118229891A CN202410645944.8A CN202410645944A CN118229891A CN 118229891 A CN118229891 A CN 118229891A CN 202410645944 A CN202410645944 A CN 202410645944A CN 118229891 A CN118229891 A CN 118229891A
- Authority
- CN
- China
- Prior art keywords
- dimensional face
- voice
- video
- predicted
- data
- 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 96
- 238000012549 training Methods 0.000 claims abstract description 56
- 238000004364 calculation method Methods 0.000 claims abstract description 10
- 230000014509 gene expression Effects 0.000 claims description 68
- 238000000605 extraction Methods 0.000 claims description 45
- 230000008569 process Effects 0.000 claims description 45
- 230000006870 function Effects 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 29
- 238000013507 mapping Methods 0.000 claims description 18
- 230000004927 fusion Effects 0.000 claims description 16
- 239000011159 matrix material Substances 0.000 claims description 16
- 230000009467 reduction Effects 0.000 claims description 10
- 238000000513 principal component analysis Methods 0.000 description 7
- 238000005070 sampling Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 230000001815 facial effect Effects 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000009193 crawling Effects 0.000 description 2
- 230000008921 facial expression Effects 0.000 description 2
- 210000001097 facial muscle Anatomy 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/27—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/48—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
- G10L25/51—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
- G10L25/57—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination for processing of video signals
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Acoustics & Sound (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供一种语音驱动三维人脸生成方法、系统及设备,所述方法包括:采集包含人脸并说话的视频样本,对所述视频样本提取视频数据和对应的音频数据;获取所述视频数据每一帧的三维人脸数据,并构建每个所述视频数据的标准四维人脸数据集和对应所述视频数据的三维人脸模板;提取所述音频数据的语音特征;与现有技术相比,本发明通过将提取到的所述音频数据的语音特征输入构建的语音驱动模型中进行训练,得到预测四维人脸数据集,并与基于所述视频数据获得的标准四维人脸数据集进行损失计算,能够在较少的训练样本的情况下,实现对模型的快速训练。
Description
技术领域
本发明涉及计算机信息处理领域,更具体地,涉及一种语音驱动三维人脸生成方法、系统及设备。
背景技术
三维人脸语音驱动是指通过解析语音信号,驱动数字人做出和语音内容相符的表情。这种技术广泛应用于人机交互、电影特效、动画制作等领域。现有的技术多数都是估计人脸网格每个顶点相对模板的运动量。这种方法要求产品中的人脸拓扑结构和训练神经网络时的人脸拓扑结构必须一致。这导致了产品的多样性受到限制。另外,现有技术的一些应用中还需要获取四维训练数据,四维数据是指随时间变化的三维人脸,通过用三维人脸采集装置和麦克风记录说话者说话的整个过程。为了获得四维训练数据,需要昂贵的三维人脸采集装置,而且三维人脸采集装置获得的原始点云需要经过注册才可以获得和模板相同的拓扑结构,这个过程非常繁琐且耗时。
发明内容
本发明旨在克服上述现有技术的至少一种缺陷,提供一种语音驱动三维人脸生成方法及系统,能够快速地获得较高精度的三维人脸。
本发明采取的技术方案为:
本发明提供一种语音驱动三维人脸生成方法,所述方法包括:
采集若干段包含有人脸并进行讲话的视频作为视频训练样本;
提取每段所述视频的视频数据和对应的音频数据;
获取所述视频数据每一帧的三维人脸数据,并根据每个所述视频数据所有帧的三维人脸数据构建每个所述视频的标准四维人脸数据集;
根据所述音频数据提取对应的语音特征;
构建语音驱动模型,并根据所述视频训练样本对所述语音驱动模型进行训练,具体包括:
将每段所述音频数据对应的所述语音特征输入所述语音驱动模型进行预测,得到对应于每段所述视频的预测四维人脸数据集;
在每次预测得到每段所述视频的所述预测四维人脸数据集后,通过损失函数计算所述视频的所述预测四维人脸数据集与所述标准四维人脸数据集的损失值,并通过反向传播更新所述语音驱动模型的参数,更新所述语音驱动模型的参数后,再将下一段所述视频的所述音频数据对应的所述语音特征输入所述语音驱动模型中进行预测,最终得到训练好的语音驱动模型;最终得到训练好的语音驱动模型;
获取目标语音数据,提取所述目标语音数据的目标语音特征,将所述目标语音特征输入训练好的所述语音驱动模型获取目标四维人脸数据集,根据所述目标四维人脸数据集构建动态的目标三维人脸。
通过对所述视频样本直接提取出视频数据和对应的音频数据,将所述音频数据输入构建的语音驱动模型中进行预测,得到预测四维人脸数据集,并与基于所述视频数据获得的标准四维人脸数据集进行损失计算,能够在较少的训练样本的情况下,实现对模型的快速训练。
进一步的,所述根据所述音频数据提取对应的语音特征,具体为通过预训练的语音特征提取网络对音频数据进行特征提取;
所述语音特征提取网络至少包括特征提取层、频率插值层、编码层和维度重构层;
所述通过预训练的语音特征提取网络对音频数据进行特征提取,具体包括:
通过所述特征提取层提取所述音频数据的语音信号特征;
通过所述频率插值层对所述语音信号特征进行插值处理,使所述语音信号特征的频率与所述音频数据对应的所述视频数据的频率匹配;
通过所述编码层对插值处理后的所述语音信号特征进行编码处理;
通过所述维度重构层对所述编码后的所述语音信号特征进行降维处理,得到语音特征矩阵,将所述语音特征矩阵作为所述语音特征。
通过对语音信号进行特征提取得到对应的语音特征,使语音特征能够与对应的视频数据的标准四维人脸数据集内的数据在帧数和维度上进行匹配,使基于所述语音特征训练得到的预测四维人脸数据集与所述标准四维人脸数据集匹配,进而更好的计算损失,然后反向更新所述语音驱动模型的参数。
进一步的,所述特征提取层包括若干时间卷积网络;
和/或,所述编码层包括若干Transformer编码器;
和/或,所述维度重构层至少包括一层全连接层。
进一步的,所述将每段所述音频数据对应的所述语音特征输入所述语音驱动模型进行预测时,所述语音驱动模型逐帧对所述语音特征进行预测,其中,所述语音驱动模型将当前帧的所述语音特征,与所述语音驱动模型对前一帧的所述语音特征预测的输出结果作为输入进行预测;如当前帧为所述语音特征的第一帧,则前一帧的所述语音特征预测的输出结果为空。
所述语音驱动模型对所述语音特征进行预测是逐帧进行的,并且在对当前帧的所述语音特征进行预测时,将前一帧的输出结果与当前帧的所述语音特征一同作为输入,通过自回归的方式来获取前一帧的信息,能够捕捉所述语音特征趋势和历史关系,能够更好的实现对带有时序特征的音频数据进行预测。并且,当对所述语音特征的第一帧进行预测时,将前一帧的所述语音驱动模型的输出结果设置为空,使所述语音驱动模型能够更好的对自身以及所述语音特征进行学习预测,同时也使模型对于预测的输出结果,即对四维人脸数据具有一定的敏感性,在后续的通过与实际的四维人脸数据计算损失值并反向更新的过程中,使所述语音驱动模型能够更好的基于四维人脸数据来更新参数,进而使输出的结果更趋近于实际的四维人脸数据。
进一步的,所述将每段所述音频数据对应的所述语音特征输入所述语音驱动模型进行预测,得到对应于每段所述视频的预测四维人脸数据集,具体包括:
获取当前帧的所述语音特征和前一帧的所述语音驱动模型的输出结果;
根据前一帧的所述语音驱动模型的输出结果提取运动特征;
为所述运动特征添加位置编码和风格编码;所述风格编码为根据当前帧的所述语音特征对应的所述视频数据中说话者的数量进行编码;
将所述语音特征和编码后的所述运动特征进行处理,得到融合特征;
将所述融合特征映射为身份系数和表情系数;
根据映射出的所述身份系数和表情系数构建当前帧的预测三维人脸;
根据当前帧的所述预测三维人脸计算预测人脸运动量,将所述预测人脸运动量作为当前帧的所述语音驱动模型的输出结果;当前帧的所述预测人脸运动量为当前帧的所述预测三维人脸与对应视频数据中的三维人脸模板的差值;
将所述语音驱动模型预测得到的每一帧的所述预测三维人脸按照帧号顺序构建所述预测四维人脸数据集。
所述语音驱动模型采用自回归模型,能够通前一帧的运动特征在对当前帧的人脸的表情系数进行回归预测,而实际在所述语音驱动模型中,并没有实际的运动特征来参与模型的预测,而是通过自回归的方式将前一帧的运动特征传递到下一帧的预测训练中,减少了训练的数据量,提高训练的效率;最终再通过所述标准四维人脸数据集来对所述语音驱动模型进行反向更新,所述标准四维人脸数据集是由与所述语音特征对应的视频数据得到的,是实际的人脸状态,通过计算器损失来反向调整,能够使预测的结果更精确。
进一步的,所述表情系数和身份系数为3DMM中的表情系数和身份系数,所述3DMM表现为:
式中,表示三维人脸形状,/>表示平均三维人脸形状,所述平均三维人脸形状为根据若干人脸三维扫描数据平均计算得到,/>表示身份的PCA基,包含所述身份系数,/>表示表情基,包含表情系数,/>和/>分别表示对应帧的说话者的身份参数和表情参数;
所述三维人脸模板表现为:
式中,表示三维人脸模板,/>表示对应的所述视频中说话者的身份参数的平均值,T表示视频的帧数,/>表示第t帧的身份参数。
通过引入3DMM的身份系数和表情系数来表达人脸的形状,能够更快速的获得高精度的三维人脸, 同时,3DMM的表情系数能够适用于各种拓扑结构的三维人脸模型,能够提升本发明的所述方法的泛用性。
进一步的,所述语音驱动模型为自回归模型;
所述自回归模型至少包括运动量计算层、运动量编码层、解码层和映射层;
所述运动量计算层至少包括一层全连接层,用于根据所述预测人脸运动量提取运动特征;
所述运动量编码层用于为所述运动特征添加位置编码和风格编码;
所述解码层包括若干Transformer解码器,用于对运动特征和对应的语音特征进行处理,得到融合特征;
所述映射层包括两个全连接层,用于将所述融合特征映射为身份系数和表情系数。
进一步的,所述通过损失函数计算所述视频的所述预测四维人脸数据集与所述标准四维人脸数据集的损失值,具体包括:
计算根据所述视频的所述预测四维人脸数据集构建的预测三维人脸与根据所述标准四维人脸数据集构建的标准三维人脸之间的误差平方和作为损失函数,具体表现为:
式中,T和V分别表示所述视频的帧数和生成的三维人脸的顶点数,表示所述预测三维人脸在第t帧时第v个顶点的数据,/>表示所述标准三维人脸在第t帧时第v个顶点的数据,/>表示三维人脸中每一个顶点的权重;
分别计算所述预测三维人脸和所述标准三维人脸的每个顶点的速度,并计算两组速度的误差平方和作为损失函数,具体表现为:
计算所述预测三维人脸和所述标准三维人脸的嘴部张开幅度的误差平方和作为损失函数,具体表现为:
式中,和/>分别表示所述预测三维人脸在第t帧时的上下嘴部关键点;/>和分别表示所述标准三维人脸在第t帧时的上下嘴部关键点;
计算所述预测三维人脸的每一帧的身份系数与平均身份系数的误差平方和作为损失函数,具体表现为:
式中,表示所述预测三维人脸的第t帧的身份参数,/>表示所述预测三维人脸的身份参数的平均值;
计算所述预测三维人脸的身份系数和表情系数的正则化作为损失函数,具体表现为:
式中,表示所述预测三维人脸的第t帧的身份系数,/>表示所述预测三维人脸的第t帧的表情系数,w用于调整身份参数和表情参数的权重;
计算各个损失函数的总损失L,具体表现为
式中,、/>、/>、/>和/>分别为/>、/>、/>、/>和/>的权重。
通过计算所述预测三维人脸与标准三维人脸的各个部分的损失情况,能够使得到的预测结果更精确。
本发明还提供一种语音驱动三维人脸生成系统,所述系统包括:
视频采集模块,用于采集若干段包含有人脸并进行讲话的视频作为视频训练样本,并提取每段所述视频的视频数据和对应的音频数据;
音频采集模块,用于采集需要生成目标三维人脸的目标语音数据;
视频处理模块,用于获取所述视频数据每一帧的三维人脸数据,并根据每个所述视频数据所有帧的三维人脸数据构建每个所述视频的标准四维人脸数据集;
语音特征提取模块,用于根据所述音频数据提取对应的语音特征,以及根据所述目标语音数据提取目标语音特征;
模型训练模块,用于构建语音驱动模型,并根据所述视频训练样本对所述语音驱动模型进行训练,具体包括:
将每段所述音频数据对应的所述语音特征输入所述语音驱动模型进行预测,得到对应于每段所述视频的预测四维人脸数据集;
在每次预测得到每段所述视频的所述预测四维人脸数据集后,通过损失函数计算所述视频的所述预测四维人脸数据集与所述标准四维人脸数据集的损失值,并通过反向传播更新所述语音驱动模型的参数,更新所述语音驱动模型的参数后,再将下一段所述视频的所述音频数据对应的所述语音特征输入所述语音驱动模型中进行预测,最终得到训练好的语音驱动模型;
人脸生成模块,用于根据获取的所述目标语音特征,通过训练好的所述语音驱动模型获取目标四维人脸数据集,根据所述目标四维人脸数据集构建动态的目标三维人脸。
本发明还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令,实现上述所述的一种语音驱动三维人脸生成方法。
与现有技术相比,本发明的有益效果为:
1.本发明通过将视频样本提取分为视频数据和音频数据,将所述音频数据作为训练的数据集来对所述语音驱动模型进行训练,将视频数据作为所述语音驱动模型在进行预测训练时所产生的预测结果的进行损失计算,然后根据损失反向更新所述语音驱动模型,能够使用较少的数据实现更高效的训练;同时能够有效的利用语音生成模型的特点,以语音来进行训练,并用对应的视频来进行反向更新,能够使所述语音驱动模型生成的预测更准确。
2.本发明通过使用自回归的模型作为所述语音驱动模型,每一帧的输出预测作为下一帧的输入,能够模型更好地获得音频数据的时序特征,进而实现更好的对三维人脸进行预测。
附图说明
图1为本发明的实施例1的生成方法的步骤流程图。
图2为本发明的语音特征提取步骤流程图。
图3为本发明的语音驱动模型的预测步骤流程图。
图4为本发明的实施例2的系统结构图。
附图标注:视频采集模块1,音频采集模块2,视频处理模块3,语音特征提取模块4,模型训练模块5,人脸生成模块6。
具体实施方式
本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
实施例1
如图1所示,本实施例提供一种语音驱动三维人脸生成方法,所述方法包括:
S1:采集若干段包含有人脸并进行讲话的视频作为视频训练样本;
在本步骤中,所述视频为包含有单人或多人说话以及对应面部表情的视频,具体的,在本实施例中,可以通过网络爬虫等工具进行爬取获得,或通过摄像头和麦克风录制说话者的整个过程形成的视频。在采集的过程中,采集到的所述视频可能会出现不包含人说话的场景片段,此时需要对所述视频进行预处理,将其中的不包含人说话的场景片段从所述视频中剃除,所述视频可以根据剃除的位置将所述视频分割为多个视频作为所述视频训练样本。
S2:提取每段所述视频的视频数据和对应的音频数据;由同一段所述视频提取出来的所述视频数据和音频数据的每一帧都是互相对应匹配的。
S3:获取所述视频数据每一帧的三维人脸数据,并根据每个所述视频数据所有帧的三维人脸数据构建每个所述视频的标准四维人脸数据集;
具体的,在本步骤中,每段所述视频的帧率可以设置为30fps(Frames PerSecond,每秒帧数),对所述视频数据的每一帧进行处理,获得每一帧的说话者的所述三维人脸数据,并将所述视频数据中所有帧的所述三维人脸数据按照帧号顺序构建具有时序的所述标准四维人脸数据集,所述标准四维人脸数据集为所述视频的实际的人脸数据。
S4:根据所述音频数据提取对应的语音特征;
具体的,在本步骤中,通过预训练的语音特征提取网络对语音信号特征进行特征提取;
所述语音特征提取网络至少包括特征提取层、频率插值层、编码层和维度重构层,其中,所述特征提取层可以包括若干时间卷积网络,所述编码层可以包括若干Transformer编码器,所述维度重构层至少包括一层全连接层,则如图2所示,所述音频数据的特征提取过程具体包括:
A1:通过所述特征提取层的若干时间卷积网络提取所述音频数据的语音信号特征;
A2:通过所述频率差值层对所述特征提取层提取的所述语音信号特征进行插值处理,使所述语音特征信号的频率与所述音频数据对应的所述视频数据的频率匹配。
通常的,由于视频和音频的采样率不一样,导致所得到的特征的频率不同,所以需要对所述语音特征信号进行插值处理,使所述音频数据得到的特征与所述视频数据得到的特征相同。
A3:通过所述编码层的若干Transformer编码器对插值处理后的所述语音信号特征进行编码处理;
A4:通过所述维度重构层的全连接层对编码后的所述语音信号特征进行降维处理,得到语音特征矩阵,将所述语音特征矩阵作为所述语音特征;
在步骤A3中经过编码的所述语音信号特征的维度较大,为了避免训练的过程中出现过拟合的情况,以及减少运动量,需要通过所述维度重构层来对语音信号进行降维处理。
在一种具体的实施方式中,语音数据的采样率为16kHz,即在一秒的语音中包含有16000个数据,经过所述特征提取层提取特征、插值、编码以及降维后形成所述语音特征矩阵,所述语音特征矩阵的大小为frame_num * feature_dim,其中feature_dim为降维后的维度,frame_num为对应的视频数据的帧数,该帧数可以在推理阶段由音频数据得到。
S5:构建语音驱动模型,并根据所述视频训练样本对所述语音驱动模型进行训练;
所述语音驱动模型的训练步骤包括:
S51:将所述语音特征输入所述语音驱动模型进行预测,得到对应于每段所述视频的预测四维人脸数据集;
将所述语音特征输入所述语音驱动模型中进行预测的过程,既是所述语音驱动模型根据所述语音特征进行学习训练的过程,又能够输出每段所述视频对应的所述预测四维人脸数据集,作为后续更新所述语音驱动模型的依据;
具体的,在本实施例中,所述语音驱动属于自回归模型,所述语音驱动模型逐帧对每段所述音频数据对应的所述语音特征进行预测,其中,所述语音驱动模型将当前帧的所述语音特征,与所述语音驱动模型对前一帧的所述语音特征预测的输出结果作为输入进行预测;如当前帧为所述语音特征的第一帧,则前一帧的所述语音特征预测的输出结果为空。
其中,所述语音驱动模型至少包括运动量计算层、运动量编码层、解码层和映射层,则如图3所示,所述语音驱动模型的预测过程具体包括:
B1:获取当前帧的所述语音特征和前一帧的所述语音驱动模型的输出结果;
在本步骤中,如上所述的,所述语音驱动模型为自回归模型,则在所述语音驱动模型中第t帧的输出需要依赖前一帧,即t-1帧的输出,如当前帧为所述语音特征的第一帧时,没有前一帧的所述语音驱动模型的输出结果,则将所述前一帧的输出结果置为空或0,相当于当第一帧时,仅将该第一帧的所述语音特征输入所述语音驱动模型;
B2:根据前一帧的所述语音驱动模型的输出结果提取运动特征;
在本步骤中,是通过所述运动量计算层实现的,具体的,所述运动量计算层可以至少包括一层全连接层,由所述运动量计算层的全连接层提取所述前一帧的所述语音驱动模型的输出结果的运动特征;
B3:为所述运动特征添加位置编码和风格编码;
在本步骤中,是通过所述运动量编码层实现的,其中,所述位置编码可以采用绝对位置编码;
所述风格编码为添加一个大小为speaker_num * feature_dim的矩阵,其中,feature_dim如上述所述的,为语音特征矩阵的维度,speaker_num表示的是对应的视频数据中的说话者的数量,通过加入风格编码,对多人的场景进行训练,使本实施例的模型训练的样本不需要局限于单人的说话视频,能够通过对单人乃至多人的说话视频进行采样,实现对模型的训练,降低模型训练的成本。
B4:将所述语音特征和编码后的所述运动特征进行处理,得到融合特征;
在本步骤中,是通过所述解码层实现的,具体的,所述解码层包括若干Transformer解码器,通过所述若干Transformer解码器来对所述运动特征进行处理,得到融合特征。
B5:将所述融合特征映射为身份系数和表情系数;
在本步骤中,通过所述映射层实现,具体的,所述映射层包括两个全连接层,通过所述映射层的两个全连接层将所述融合特征映射为基于3DMM(3D Morphable models,三维可变形人脸模型)的80个身份系数和51个表情系数;
具体的,在本实施例中的3DMM具体表现如下:
式中,表示三维人脸形状,/>表示平均三维人脸形状,所述平均三维人脸形状为根据若干人脸三维扫描数据平均计算得到,/>表示身份的PCA基,包含所述身份系数,/>表示表情基,包含表情系数,/>和/>分别表示对应帧的说话者的身份参数和表情参数;
其中,身份的PCA(principal component analysis)基包含80个身份系数,表情基包含51个表情系数,每个表情参数都是从0到1,表示对应的表情强度从弱到强;表情基又称为Blendshapes,表情基的构建由FACS(Facial Action Coding System,面部行为编码系统)进行指导,该系统描绘了不同的脸部肌肉动作和不同表情的对应关系,所以只要生成的数字人包含同样的Blendshapes,就可以利用对应的表情参数驱动数字人做出对应的表情。
B6:根据映射出的所述身份系数和表情系数构建当前帧的预测三维人脸;
在映射出当前帧的人脸的所述80个身份系数和51个表情系数后,即可根据对应的身份系数和表情系数构建基于3DMM的当前帧的预测三维人脸。
B7:根据当前帧的所述预测三维人脸计算预测人脸运动量,将所述预测人脸运动量作为当前帧的所述语音驱动模型的输出结果;
在本步骤中,当前帧的所述预测人脸运动量为在步骤B6中构建得到的当前帧的所述预测三维人脸与对应视频数据中的三维人脸模板的差值,其中,所述三维人脸模板基于3DMM构建,具体表现为:
式中,表示三维人脸模板,/>表示平均三维人脸形状,/>表示对应的所述视频中说话者的身份参数的平均值,T表示视频的帧数,/>表示第t帧的身份参数。所述三维人脸模板是相对于每个所述视频中的对应说话者的,是如一段所述视频中只有一个说话者,那么这段所述视频的所述三维人脸模板只有一个,对应的是这一个说话者,如一段所述视频中的说话者为多个,那么这段视频的所述三维人脸模板有多个,分别对应每个说话者。
计算当前帧的所述预测三维人脸的3DMM参数与对应所述视频的三维人脸模板的差值,该差值即为当前帧的所述预测三维人脸的所述预测人脸运动量,即相对于三维人脸模板的变化量,通过获取所述预测人脸运动量作为所述语音驱动模型的输出结果来传递到下一帧进行预测,能够使所述语音驱动模型更好的捕捉人脸的动态变化的规律。
B8:重复执行上述步骤B1-B7,直到所述语音驱动模型对所述语音特征的所有帧均完成预测;
B9:将所述语音驱动模型预测得到的每一帧的所述预测三维人脸按照帧号顺序构建所述预测四维人脸数据集。
所述预测四维人脸数据集是由所述语音驱动模型进行预测得到的,需要与作为实际值的所述标准四维人脸数据集进行比较,来获取所述预测值和实际值之间的差距。
S52:在每次预测得到每段所述视频的所述预测四维人脸数据集后,通过损失函数计算所述视频的所述预测四维人脸数据集与所述标准四维人脸数据集的损失值,并通过反向传播更新所述语音驱动模型的参数,更新所述语音驱动模型的参数后,再将下一段所述视频的所述音频数据对应的所述语音特征输入所述语音驱动模型中进行预测,最终得到训练好的语音驱动模型;
在本实施例的所述语音驱动模型的训练过程中,并没有实际的将三维人脸的数据输入至模型中进行训练,在所述语音驱动模型的输入中,在第一帧时获取的前一帧的输出结果,即所述预测人脸运动量设置为“0”,然后通过自回归的方式来使所述语音驱动模型进行预测并训练,能够使所述语音驱动模型对三维人脸的数据有一定的适应性,而由于没有实际的根据三维人脸的数据进行训练,此时的所述语音驱动模型还没有“学习”三维人脸的相关信息。而在每次训练的过程中所述语音驱动模型会基于输入的所述语音特征生成一个预测四维人脸数据集,同时在步骤S2中,预先将与音频数据相对应的视频数据生成了对应的标准四维数据集,可通过设置损失函数,来计算所述预测四维人脸数据集与所述标准四维人脸数据集之间的损失值,进而能够根据损失值来反向的更新所述语音驱动模型的参数,进而使模型能够“学习”到三维人脸的相关信息,使预测的结果能够更趋近于实际的情况,提高所述语音驱动模型的预测精度。
具体的,所述损失函数的设置具体包括:
计算根据所述预测四维人脸数据集构建的预测三维人脸与根据对应视频数据的标准四维人脸数据集构建的标准三维人脸之间的误差平方和作为损失函数,具体表现为:
式中,T和V分别表示对应视频数据的帧数和生成的三维人脸的顶点数,表示根据所述音频数据的预测结果构建的三维人脸在t帧时第v个顶点的数据,/>表示对应的视频数据的四维人脸数据集构建的三维人脸在t帧时第v个顶点的数据,/>表示三维人脸中每一个顶点的权重,在实际的设置中,嘴部和下巴的权重值相较于其他区域更大;
为了能够让所述语音驱动模型学习到相邻帧之间的关系,分别计算所述预测三维人脸和所述标准三维人脸的每个顶点的速度,并计算两组速度的误差平方和作为损失函数,具体表现为:
在上述的重建的损失中给予了嘴部的顶点更大的权重,但是嘴部顶点的权重与其他顶点的权重相差太大反而会影响整体的三维人脸构建的效果,所以从上嘴唇和下嘴唇分别选取一个顶点作为关键点,计算这两个顶点之间的距离,即嘴部的张开幅度。计算所述预测三维人脸和所述标准三维人脸的嘴部张开幅度的误差平方和作为损失函数,具体表现为:
式中,和/>分别表示所述预测三维人脸的上下嘴部关键点;/>和/>分别表示所述标准三维人脸的上下嘴部关键点;
为了保证每帧的人脸的形状基本一致,则通过回归得到的所述身份系数不能够相差太多,所以计算所述预测三维人脸的每一帧的身份系数与平均身份系数的误差平方和作为损失函数,具体表现为:
式中,表示所述预测三维人脸的第t帧的身份参数,/>表示所述预测三维人脸的每一帧的身份参数的平均值;
当身份系数和表情系数的数值特别大时,会导致构建的三维人脸的效果特别差;为了使身份系数和表情系数的值不会过大,计算所述预测三维人脸的身份系数和表情系数的正则化作为损失函数,具体表现为:
式中,表示所述预测三维人脸的第t帧的身份系数,/>表示所述预测三维人脸的第t帧的表情系数,w用于调整身份参数和表情参数的权重。
在计算各个部分重建的损失后,还需要计算各个损失函数的总损失L,具体表现为
式中,、/>、/>、/>和/>分别为/>、/>、/>、/>和/>的权重。
S6:获取目标语音数据,提取所述目标语音数据的目标语音特征,将所述目标语音特征输入训练好的所述语音驱动模型获取目标四维人脸数据集,根据所述目标四维人脸数据集构建动态的目标三维人脸。
其中,所述目标语音数据可以通过麦克风等音频录入设备录入语音数据,然后将语音数据进行特征提取后得到所述目标语音数据,再将所述目标语音数据输入训练好的所述语音驱动模型,得到预测的目标四维人脸数据集,再根据的到的目标四维人脸数据集重构出动态的目标三维人脸;
或,可以将音频录入设备接收到的实时音频数据实时转换为对应的语音特征,再输入到所述语音驱动模型中实时转化为目标四维人脸数据集,进而重构为动态的目标三维人脸。
实施例2
如图4所示,本实施例提供一种语音驱动三维人脸生成系统,所述系统包括:
视频采集模块1,用于采集若干段包含有人脸并进行讲话的视频作为视频训练样本,并提取每段所述视频的视频数据和对应的音频数据;具体的,所述视频样本为包含有单人或多人说话以及对应面部表情的视频,在本实施例中,可以通过网络爬虫等工具进行爬取获得,或通过摄像头和麦克风录制说话者的整个过程形成的视频。在采集的过程中,采集到的所述视频可能会出现不包含人说话的场景片段,此时需要对所述视频进行预处理,将其中的不包含人说话的场景片段从所述视频中剃除,所述视频可以根据剃除的位置将所述视频分割为多个视频作为所述视频训练样本。
视频处理模块3,用于获取所述视频数据每一帧的三维人脸数据,并根据每个所述视频数据所有帧的三维人脸数据构建每个所述视频的标准四维人脸数据集;
具体的,每段所述视频的帧率可以设置为30fps(Frames Per Second,每秒帧数),对所述视频数据的每一帧进行处理,获得每一帧的说话者的所述三维人脸数据,并将所述视频数据中所有帧的所述三维人脸数据按照帧号顺序构建具有时序的所述标准四维人脸数据集,所述标准四维人脸数据集为所述视频的实际的人脸数据。
语音特征提取模块4,用于根据所述音频数据提取对应的语音特征,以及根据所述目标语音数据提取目标语音特征;
具体的,所述语音特征提取模块4通过预训练的语音特征提取网络对语音信号特征进行特征提取;
所述语音特征提取网络至少包括特征提取层、频率插值层、编码层和维度重构层,其中,所述特征提取层可以包括若干时间卷积网络,所述编码层可以包括若干Transformer编码器,所述维度重构层至少包括一层全连接层,其中:
所述语音特征提取模块4通过所述特征提取层的若干时间卷积网络提取所述音频数据的语音信号特征;
所述语音特征提取模块4通过所述频率差值层对所述特征提取层提取的所述语音信号特征进行插值处理,使所述语音特征信号的频率与所述音频数据对应的所述视频数据的频率匹配。
通常的,由于视频和音频的采样率不一样,导致所得到的特征的频率不同,所以需要对所述语音特征信号进行插值处理,使所述音频数据得到的特征与所述视频数据得到的特征相同。
所述语音特征提取模块4通过所述编码层的若干Transformer编码器对插值处理后的所述语音信号特征进行编码处理;
所述语音特征提取模块4通过所述维度重构层的全连接层对编码后的所述语音信号特征进行降维处理,得到语音特征矩阵,将所述语音特征矩阵作为所述语音特征;
由于经过编码的所述语音信号特征的维度较大,为了避免训练的过程中出现过拟合的情况,以及减少运动量,需要通过所述维度重构层来对语音信号进行降维处理。
在一种具体的实施方式中,语音数据的采样率为16kHz,即在一秒的语音中包含有16000个数据,经过所述特征提取层提取特征、插值、编码以及降维后形成所述语音特征矩阵,所述语音特征矩阵的大小为frame_num * feature_dim,其中feature_dim为降维后的维度,frame_num为对应的视频数据的帧数,该帧数可以在推理阶段由音频数据得到。
模型训练模块5,用于构建语音驱动模型,并根据所述视频训练样本对所述语音驱动模型进行训练,所述训练具体包括:
所述模型训练模块5将所述语音特征输入所述语音驱动模型进行预测,得到对应于每段所述视频的预测四维人脸数据集;
将所述语音特征输入所述语音驱动模型中进行预测的过程,既是所述语音驱动模型根据所述语音特征进行学习训练的过程,又能够输出每段所述视频对应的所述预测四维人脸数据集,作为后续更新所述语音驱动模型的依据;
具体的,在本实施例中,所述语音驱动属于自回归模型,所述语音驱动模型逐帧对每段所述音频数据对应的所述语音特征进行预测,其中,所述语音驱动模型将当前帧的所述语音特征,与所述语音驱动模型对前一帧的所述语音特征预测的输出结果作为输入进行预测;如当前帧为所述语音特征的第一帧,则前一帧的所述语音特征预测的输出结果为空。
其中,所述语音驱动模型至少包括运动量计算层、运动量编码层、解码层和映射层,所述语音驱动模型的预测过程具体包括:
获取当前帧的所述语音特征和前一帧的所述语音驱动模型的输出结果;
如上所述的,所述语音驱动模型为自回归模型,则在所述语音驱动模型中第t帧的输出需要依赖前一帧,即t-1帧的输出,如当前帧为所述语音特征的第一帧时,没有前一帧的所述语音驱动模型的输出结果,则将所述前一帧的输出结果置为空或0,相当于当第一帧时,仅将该第一帧的所述语音特征输入所述语音驱动模型;
通过所述运动量计算层根据前一帧的所述语音驱动模型的输出结果提取运动特征;
具体的,所述运动量计算层可以至少包括一层全连接层,由所述运动量计算层的全连接层提取所述前一帧的所述语音驱动模型的输出结果的运动特征;
通过所述运动量编码层为所述运动特征添加位置编码和风格编码;其中,所述位置编码可以采用绝对位置编码;
所述风格编码为添加一个大小为speaker_num * feature_dim的矩阵,其中,feature_dim如上述所述的,为语音特征矩阵的维度,speaker_num表示的是对应的视频数据中的说话者的数量,通过加入风格编码,对多人的场景进行训练,使本实施例的模型训练的样本不需要局限于单人的说话视频,能够通过对单人乃至多人的说话视频进行采样,实现对模型的训练,降低模型训练的成本。
通过所述解码层将所述语音特征和编码后的所述运动特征进行处理,得到融合特征;
具体的,所述解码层包括若干Transformer解码器,通过所述若干Transformer解码器来对所述运动特征进行处理,得到融合特征。
通过所述映射层将所述融合特征映射为身份系数和表情系数;
具体的,所述映射层包括两个全连接层,通过所述映射层的两个全连接层将所述融合特征映射为基于3DMM(3D Morphable models,三维可变形人脸模型)的80个身份系数和51个表情系数;
具体的,在本实施例中的3DMM具体表现如下:
式中,表示三维人脸形状,/>表示平均三维人脸形状,所述平均三维人脸形状为根据若干人脸三维扫描数据平均计算得到,/>表示身份的PCA基,包含所述身份系数,/>表示表情基,包含表情系数,/>和/>分别表示对应帧的说话者的身份参数和表情参数;
其中,身份的PCA(principal component analysis)基包含80个身份系数,表情基包含51个表情系数,每个表情参数都是从0到1,表示对应的表情强度从弱到强;表情基又称为Blendshapes,表情基的构建由FACS(Facial Action Coding System,面部行为编码系统)进行指导,该系统描绘了不同的脸部肌肉动作和不同表情的对应关系,所以只要生成的数字人包含同样的Blendshapes,就可以利用对应的表情参数驱动数字人做出对应的表情。
根据映射出的所述身份系数和表情系数构建当前帧的预测三维人脸;
在映射出当前帧的人脸的所述80个身份系数和51个表情系数后,即可根据对应的身份系数和表情系数构建基于3DMM的当前帧的预测三维人脸。
根据当前帧的所述预测三维人脸计算预测人脸运动量,将所述预测人脸运动量作为当前帧的所述语音驱动模型的输出结果;
当前帧的所述预测人脸运动量为在此之前构建得到的当前帧的所述预测三维人脸与对应视频数据中的三维人脸模板的差值,其中,所述三维人脸模板基于3DMM构建,具体表现为:
式中,表示三维人脸模板,/>表示平均三维人脸形状,/>表示对应的所述视频中说话者的身份参数的平均值,T表示视频的帧数,/>表示第t帧的身份参数。所述三维人脸模板是相对于每个所述视频中的对应说话者的,是如一段所述视频中只有一个说话者,那么这段所述视频的所述三维人脸模板只有一个,对应的是这一个说话者,如一段所述视频中的说话者为多个,那么这段视频的所述三维人脸模板有多个,分别对应每个说话者。
计算当前帧的所述预测三维人脸的3DMM参数与对应所述视频的三维人脸模板的差值,该差值即为当前帧的所述预测三维人脸的所述预测人脸运动量,即相对于三维人脸模板的变化量,通过获取所述预测人脸运动量作为所述语音驱动模型的输出结果来传递到下一帧进行预测,能够使所述语音驱动模型更好的捕捉人脸的动态变化的规律。
将所述语音驱动模型预测得到的每一帧的所述预测三维人脸按照帧号顺序构建所述预测四维人脸数据集。
所述预测四维人脸数据集是由所述语音驱动模型进行预测得到的,需要与作为实际值的所述标准四维人脸数据集进行比较,来获取所述预测值和实际值之间的差距。
所述模型训练模块5在每次预测得到每段所述视频的所述预测四维人脸数据集后,通过损失函数计算所述视频的所述预测四维人脸数据集与所述标准四维人脸数据集的损失值,并通过反向传播更新所述语音驱动模型的参数,更新所述语音驱动模型的参数后,再将下一段所述视频的所述音频数据对应的所述语音特征输入所述语音驱动模型中进行预测,最终得到训练好的语音驱动模型;
在本实施例的所述语音驱动模型的训练过程中,并没有实际的将三维人脸的数据输入至模型中进行训练,在所述语音驱动模型的输入中,在第一帧时获取的前一帧的输出结果,即所述预测人脸运动量设置为“0”,然后通过自回归的方式来使所述语音驱动模型进行预测并训练,能够使所述语音驱动模型对三维人脸的数据有一定的适应性,而由于没有实际的根据三维人脸的数据进行训练,此时的所述语音驱动模型还没有“学习”三维人脸的相关信息。而在每次训练的过程中所述语音驱动模型会基于输入的所述语音特征生成一个预测四维人脸数据集,同时在此之前,预先将与音频数据相对应的视频数据生成了对应的标准四维数据集,可通过设置损失函数,来计算所述预测四维人脸数据集与所述标准四维人脸数据集之间的损失值,进而能够根据损失值来反向的更新所述语音驱动模型的参数,进而使模型能够“学习”到三维人脸的相关信息,使预测的结果能够更趋近于实际的情况,提高所述语音驱动模型的预测精度。
具体的,所述损失函数的设置具体包括:
计算根据所述预测四维人脸数据集构建的预测三维人脸与根据对应视频数据的标准四维人脸数据集构建的标准三维人脸之间的误差平方和作为损失函数,具体表现为:
式中,T和V分别表示对应视频数据的帧数和生成的三维人脸的顶点数,表示根据所述音频数据的预测结果构建的三维人脸在t帧时第v个顶点的数据,/>表示对应的视频数据的四维人脸数据集构建的三维人脸在t帧时第v个顶点的数据,/>表示三维人脸中每一个顶点的权重,在实际的设置中,嘴部和下巴的权重值相较于其他区域更大;
为了能够让所述语音驱动模型学习到相邻帧之间的关系,分别计算所述预测三维人脸和所述标准三维人脸的每个顶点的速度,并计算两组速度的误差平方和作为损失函数,具体表现为:
在上述的重建的损失中给予了嘴部的顶点更大的权重,但是嘴部顶点的权重与其他顶点的权重相差太大反而会影响整体的三维人脸构建的效果,所以从上嘴唇和下嘴唇分别选取一个顶点作为关键点,计算这两个顶点之间的距离,即嘴部的张开幅度。计算所述预测三维人脸和所述标准三维人脸的嘴部张开幅度的误差平方和作为损失函数,具体表现为:
式中,和/>分别表示所述预测三维人脸的上下嘴部关键点;/>和/>分别表示所述标准三维人脸的上下嘴部关键点;
为了保证每帧的人脸的形状基本一致,则通过回归得到的所述身份系数不能够相差太多,所以计算所述预测三维人脸的每一帧的身份系数与平均身份系数的误差平方和作为损失函数,具体表现为:
式中,表示所述预测三维人脸的第t帧的身份参数,/>表示所述预测三维人脸的每一帧的身份参数的平均值;
当身份系数和表情系数的数值特别大时,会导致构建的三维人脸的效果特别差;为了使身份系数和表情系数的值不会过大,计算所述预测三维人脸的身份系数和表情系数的正则化作为损失函数,具体表现为:
式中,表示所述预测三维人脸的第t帧的身份系数,/>表示所述预测三维人脸的第t帧的表情系数,w用于调整身份参数和表情参数的权重。
在计算各个部分重建的损失后,还需要计算各个损失函数的总损失L,具体表现为
式中,、/>、/>、/>和/>分别为/>、/>、/>、/>和/>的权重。
音频采集模块2,用于采集需要生成目标三维人脸的目标语音数据;
所述音频采集模块2中可以设置有对应的音频录入设备,所述音频采集模块2将实时采集到的音频数据发送至所述语音特征提取模块4提取语音特征形成所述目标语音数据;也可以采集历史音频数据,并将历史音频数据发送至所述语音特征提取模块4提取语音特征形成所述目标语音数据。
人脸生成模块6,用于根据获取的所述目标语音特征,通过训练好的所述语音驱动模型获取目标四维人脸数据集,根据所述目标四维人脸数据集构建动态的目标三维人脸。
实施例3
本实施例提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令,实现实施例1所述的一种语音驱动三维人脸生成方法。
显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种语音驱动三维人脸生成方法,其特征在于,所述方法包括:
采集若干段包含有人脸并进行讲话的视频作为视频训练样本;
提取每段所述视频的视频数据和对应的音频数据;
获取所述视频数据每一帧的三维人脸数据,并根据每个所述视频数据所有帧的三维人脸数据构建每个所述视频的标准四维人脸数据集;
根据所述音频数据提取对应的语音特征;
构建语音驱动模型,并根据所述视频训练样本对所述语音驱动模型进行训练,具体包括:
将每段所述音频数据对应的所述语音特征输入所述语音驱动模型进行预测,得到对应于每段所述视频的预测四维人脸数据集;
在每次预测得到每段所述视频的所述预测四维人脸数据集后,通过损失函数计算所述视频的所述预测四维人脸数据集与所述标准四维人脸数据集的损失值,并通过反向传播更新所述语音驱动模型的参数,更新所述语音驱动模型的参数后,再将下一段所述视频的所述音频数据对应的所述语音特征输入所述语音驱动模型中进行预测,最终得到训练好的语音驱动模型;
获取目标语音数据,提取所述目标语音数据的目标语音特征,将所述目标语音特征输入训练好的所述语音驱动模型获取目标四维人脸数据集,根据所述目标四维人脸数据集构建动态的目标三维人脸。
2.根据权利要求1所述的一种语音驱动三维人脸生成方法,其特征在于,
所述根据所述音频数据提取对应的语音特征,具体为通过预训练的语音特征提取网络对音频数据进行特征提取;
所述语音特征提取网络至少包括特征提取层、频率插值层、编码层和维度重构层;
所述通过预训练的语音特征提取网络对音频数据进行特征提取,具体包括:
通过所述特征提取层提取所述音频数据的语音信号特征;
通过所述频率插值层对所述语音信号特征进行插值处理,使所述语音信号特征的频率与所述音频数据对应的所述视频数据的频率匹配;
通过所述编码层对插值处理后的所述语音信号特征进行编码处理;
通过所述维度重构层对编码后的所述语音信号特征进行降维处理,得到语音特征矩阵,将所述语音特征矩阵作为所述语音特征。
3.根据权利要求2所述的一种语音驱动三维人脸生成方法,其特征在于,
所述特征提取层包括若干时间卷积网络;
和/或,所述编码层包括若干Transformer编码器;
和/或,所述维度重构层至少包括一层全连接层。
4.根据权利要求1所述的一种语音驱动三维人脸生成方法,其特征在于,所述将每段所述音频数据对应的所述语音特征输入所述语音驱动模型进行预测时,所述语音驱动模型逐帧对每段所述音频数据对应的所述语音特征进行预测,其中,所述语音驱动模型将当前帧的所述语音特征,与所述语音驱动模型对前一帧的所述语音特征进行预测的输出结果作为输入进行预测;如当前帧为所述语音特征的第一帧,则前一帧的所述语音特征预测的输出结果为空。
5.根据权利要求4所述的一种语音驱动三维人脸生成方法,其特征在于,所述将每段所述音频数据对应的所述语音特征输入所述语音驱动模型进行预测,得到对应于每段所述视频的预测四维人脸数据集,具体包括:
获取当前帧的所述语音特征和前一帧的所述语音驱动模型的输出结果;
根据前一帧的所述语音驱动模型的输出结果提取运动特征;
为所述运动特征添加位置编码和风格编码;所述风格编码为根据当前帧的所述语音特征对应的所述视频数据中说话者的数量进行编码;
将所述语音特征和编码后的所述运动特征进行处理,得到融合特征;
将所述融合特征映射为身份系数和表情系数;
根据映射出的所述身份系数和表情系数构建当前帧的预测三维人脸;
根据当前帧的所述预测三维人脸计算预测人脸运动量,将所述预测人脸运动量作为当前帧的所述语音驱动模型的输出结果;当前帧的所述预测人脸运动量为当前帧的所述预测三维人脸与对应视频数据中的三维人脸模板的差值;
将所述语音驱动模型预测得到的每一帧的所述预测三维人脸按照帧号顺序构建所述预测四维人脸数据集。
6.根据权利要求5所述的一种语音驱动三维人脸生成方法,其特征在于,
所述表情系数和身份系数为3DMM中的表情系数和身份系数,所述3DMM表现为:
式中,表示三维人脸形状,/>表示平均三维人脸形状,所述平均三维人脸形状为根据若干人脸三维扫描数据平均计算得到,/>表示身份的PCA基,包含所述身份系数,/>表示表情基,包含表情系数,/>和/>分别表示对应帧的说话者的身份参数和表情参数;
所述三维人脸模板表现为:
式中,表示三维人脸模板,/>表示对应的所述视频中说话者的身份参数的平均值,T表示视频的帧数,/>表示第t帧的身份参数。
7.根据权利要求5所述的一种语音驱动三维人脸生成方法,其特征在于,所述语音驱动模型为自回归模型;
所述语音驱动模型至少包括运动量计算层、运动量编码层、解码层和映射层;
所述运动量计算层至少包括一层全连接层,用于根据所述预测人脸运动量提取运动特征;
所述运动量编码层用于为所述运动特征添加位置编码和风格编码;
所述解码层包括若干Transformer解码器,用于对运动特征和对应的语音特征进行处理,得到融合特征;
所述映射层包括两个全连接层,用于将所述融合特征映射为身份系数和表情系数。
8.根据权利要求7所述的一种语音驱动三维人脸生成方法,其特征在于,所述通过损失函数计算所述视频的所述预测四维人脸数据集与所述标准四维人脸数据集的损失值,具体包括:
计算根据所述视频的所述预测四维人脸数据集构建的预测三维人脸与根据所述标准四维人脸数据集构建的标准三维人脸之间的误差平方和作为损失函数,具体表现为:
式中,T和V分别表示所述视频的帧数和生成的三维人脸的顶点数,表示所述预测三维人脸在第t帧时第v个顶点的数据,/>表示所述标准三维人脸在第t帧时第v个顶点的数据,/>表示三维人脸中每一个顶点的权重;
分别计算所述预测三维人脸和所述标准三维人脸的每个顶点的速度,并计算两组速度的误差平方和作为损失函数,具体表现为:
计算所述预测三维人脸和所述标准三维人脸的嘴部张开幅度的误差平方和作为损失函数,具体表现为:
式中,和/>分别表示所述预测三维人脸在第t帧时的上下嘴部关键点;/>和/>分别表示所述标准三维人脸在第t帧时的上下嘴部关键点;
计算所述预测三维人脸的每一帧的身份系数与平均身份系数的误差平方和作为损失函数,具体表现为:
式中,表示所述预测三维人脸的第t帧的身份参数,/>表示所述预测三维人脸的身份参数的平均值;
计算所述预测三维人脸的身份系数和表情系数的正则化作为损失函数,具体表现为:
式中,表示所述预测三维人脸的第t帧的身份系数,/>表示所述预测三维人脸的第t帧的表情系数,w用于调整身份参数和表情参数的权重;
计算各个损失函数的总损失L,具体表现为
式中,、/>、/>、/>和/>分别为/>、/>、/>、/>和/>的权重。
9.一种语音驱动三维人脸生成系统,其特征在于,所述系统包括:
视频采集模块,用于采集若干段包含有人脸并进行讲话的视频作为视频训练样本,并提取每段所述视频的视频数据和对应的音频数据;
音频采集模块,用于采集需要生成目标三维人脸的目标语音数据;
视频处理模块,用于获取所述视频数据每一帧的三维人脸数据,并根据每个所述视频数据所有帧的三维人脸数据构建每个所述视频的标准四维人脸数据集;
语音特征提取模块,用于根据所述音频数据提取对应的语音特征,以及根据所述目标语音数据提取目标语音特征;
模型训练模块,用于构建语音驱动模型,并根据所述视频训练样本对所述语音驱动模型进行训练,具体包括:
将每段所述音频数据对应的所述语音特征输入所述语音驱动模型进行预测,得到对应于每段所述视频的预测四维人脸数据集;
在每次预测得到每段所述视频的所述预测四维人脸数据集后,通过损失函数计算所述视频的所述预测四维人脸数据集与所述标准四维人脸数据集的损失值,并通过反向传播更新所述语音驱动模型的参数,更新所述语音驱动模型的参数后,再将下一段所述视频的所述音频数据对应的所述语音特征输入所述语音驱动模型中进行预测,最终得到训练好的语音驱动模型;
人脸生成模块,用于根据获取的所述目标语音特征,通过训练好的所述语音驱动模型获取目标四维人脸数据集,根据所述目标四维人脸数据集构建动态的目标三维人脸。
10.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令,实现权利要求1-8任一项所述的一种语音驱动三维人脸生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410645944.8A CN118229891B (zh) | 2024-05-23 | 2024-05-23 | 一种语音驱动三维人脸生成方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410645944.8A CN118229891B (zh) | 2024-05-23 | 2024-05-23 | 一种语音驱动三维人脸生成方法、系统及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118229891A true CN118229891A (zh) | 2024-06-21 |
CN118229891B CN118229891B (zh) | 2024-07-16 |
Family
ID=91506457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410645944.8A Active CN118229891B (zh) | 2024-05-23 | 2024-05-23 | 一种语音驱动三维人脸生成方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118229891B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220005246A1 (en) * | 2020-07-03 | 2022-01-06 | Wipro Limited | System and method of generating facial expression of a user for virtual environment |
CN116188649A (zh) * | 2023-04-27 | 2023-05-30 | 科大讯飞股份有限公司 | 基于语音的三维人脸模型驱动方法及相关装置 |
CN116721190A (zh) * | 2023-06-13 | 2023-09-08 | 华北电力大学 | 一种语音驱动三维人脸动画生成方法 |
CN117237521A (zh) * | 2023-02-27 | 2023-12-15 | 长城信息股份有限公司 | 语音驱动人脸生成模型构建方法、目标人说话视频生成方法 |
-
2024
- 2024-05-23 CN CN202410645944.8A patent/CN118229891B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220005246A1 (en) * | 2020-07-03 | 2022-01-06 | Wipro Limited | System and method of generating facial expression of a user for virtual environment |
CN117237521A (zh) * | 2023-02-27 | 2023-12-15 | 长城信息股份有限公司 | 语音驱动人脸生成模型构建方法、目标人说话视频生成方法 |
CN116188649A (zh) * | 2023-04-27 | 2023-05-30 | 科大讯飞股份有限公司 | 基于语音的三维人脸模型驱动方法及相关装置 |
CN116721190A (zh) * | 2023-06-13 | 2023-09-08 | 华北电力大学 | 一种语音驱动三维人脸动画生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN118229891B (zh) | 2024-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110119703B (zh) | 一种安防场景下融合注意力机制和时空图卷积神经网络的人体动作识别方法 | |
CN110781838B (zh) | 一种复杂场景下行人的多模态轨迹预测方法 | |
CN109934300B (zh) | 模型压缩方法、装置、计算机设备及存储介质 | |
CN112308949A (zh) | 模型训练、人脸图像生成方法和装置以及存储介质 | |
CN111028319B (zh) | 一种基于面部运动单元的三维非真实感表情生成方法 | |
CN112151030A (zh) | 一种基于多模态的复杂场景语音识别方法和装置 | |
CN108538283B (zh) | 一种由唇部图像特征到语音编码参数的转换方法 | |
CN116564338B (zh) | 语音动画生成方法、装置、电子设备和介质 | |
CN114723760B (zh) | 人像分割模型的训练方法、装置及人像分割方法、装置 | |
CN114974215A (zh) | 基于音视频双模态的语音识别方法及系统 | |
CN111354246A (zh) | 一种用于帮助聋哑人交流的系统及方法 | |
CN114694255B (zh) | 基于通道注意力与时间卷积网络的句子级唇语识别方法 | |
CN116580278A (zh) | 一种基于多注意力机制的唇语识别方法、设备及存储介质 | |
CN116758451A (zh) | 基于多尺度和全局交叉注意力的视听情感识别方法及系统 | |
CN115937369A (zh) | 一种表情动画生成方法、系统、电子设备及存储介质 | |
CN116704596A (zh) | 一种基于骨骼序列的人体行为识别方法 | |
CN115984933A (zh) | 人脸动画模型的训练方法、语音数据处理方法和装置 | |
CN118071901A (zh) | 语音驱动表情生成方法、装置、设备及存储介质 | |
CN114360491A (zh) | 语音合成方法、装置、电子设备及计算机可读存储介质 | |
CN111160327B (zh) | 一种基于轻量化卷积神经网络的表情识别方法 | |
CN117292031A (zh) | 一种3d虚拟数字人唇形动画生成模型训练方法及装置 | |
CN118229891B (zh) | 一种语音驱动三维人脸生成方法、系统及设备 | |
CN114120245B (zh) | 基于深度神经网络的人群图像分析方法、装置以及设备 | |
CN114942480A (zh) | 基于信息感知注意力动态协同网络的海洋站风速预报方法 | |
CN112906815A (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 |