Learning-Lip-Sync-from-Audio 算法笔记

Learning-Lip-Sync-from-Audio

https://github.com/KeitaW/SynthesizingObama
https://github.com/supasorn/synthesizing_obama_network_training

3 AUDIO TO VIDEO

Task

给定巴拉克·奥巴马(Barack Obama)总统讲话的音轨,我们寻求合成相应的音轨。 这个问题可能被认为是学习针对一个特定个体量身定制的从音频到视频的序列到序列映射。

Challenge

映射从较低维(音频)到较高维(视频)信号
人类已高度适应唇部运动,因此有必要避免产生异常谷

To make it easier

为了使问题更容易解决,我们专注于合成与语音最相关的面部部分。

  • 对于总统演说片段,我们发现奥巴马讲话的内容与嘴巴周围的区域(嘴唇,脸颊和下巴)以及头部运动各方面的关联最为密切。
  • 当他暂停讲话时,他的头停止移动(我们通过重定时技术对其进行建模)。

因此,我们专注于合成他嘴巴周围的区域,并从素材库中借用奥巴马的其余部分(眼睛,头部,上身,背景)。

The overall pipeline works

总体流程如下(图2):

  • 给定奥巴马的音频,我们首先提取音频特征,以用作递归神经网络的输入,该神经网络为每个输出视频帧输出稀疏的嘴形(第3.1节)。
  • 从稀疏的嘴巴形状,我们合成嘴巴和脸部下部区域的纹理(第3.2节)。
  • 然后将口部纹理混合到经过修改的视频上,以使最终的头部运动看起来自然并与给定的输入语音相匹配(第3.3节)。
  • 在混合过程中,下巴线会弯曲以匹配新语音的下巴,并且脸部将以原始姿势合成目标帧。(第3.4节)。

Fig. 2. 我们的系统首先将音频输入转换为随时间变化的稀疏嘴形。基于此嘴巴形状,我们生成逼真的嘴巴纹理,将其合成到目标视频的嘴巴区域中。在最终合成之前,先对嘴部纹理序列和目标视频进行匹配并重新计时,以使头部运动看起来自然并适合输入语音。Fig. 2. 我们的系统首先将音频输入转换为随时间变化的稀疏嘴形。基于此嘴巴形状,我们生成逼真的嘴巴纹理,将其合成到目标视频的嘴巴区域中。在最终合成之前,先对嘴部纹理序列和目标视频进行匹配并重新计时,以使头部运动看起来自然并适合输入语音。

3.1 Audio to Sparse Mouth Shape

Steps

我们跳过了音素提取容易出错的过程,而是直接从音频映射到稀疏形状特征。将问题分解为两个步骤:
1)从音频特征映射到稀疏的形状系数,
2)从形状映射到嘴部纹理。
在这一步中,我们使用标准的MFCC系数表示音频,并用18个嘴唇基准点表示嘴形,然后按PCA基准排名,如下所述。

Audio Features

对于音频功能,我们使用梅尔频率倒谱系数(MFCC),其计算如下:
(1)给定16KHz单声道音频,我们在ffmpeg中使用基于RMS的归一化对音量进行归一化。
(2)在音频上每隔25ms的滑动窗口上进行离散傅立叶变换,采样间隔为10ms。
(3)在傅立叶功率谱上应用40个三角形梅尔标度滤波器,对输出应用对数
(4)应用离散余弦变换以减小13维矢量的维数。
最终的28维输出特征向量由13维向量加上占体积的对数平均能量及其一阶时间导数组成。

Mouth Shape Features

为了计算嘴形,我们首先使用[Suwajanakorn等人的方法]在每个视频帧中检测并定位奥巴马的脸。
对于每张正面的脸,我们使用[Xiong and De la Torre 2013]检测嘴唇的界标,该界标沿嘴唇的内外轮廓给出18个点。
我们将每个18点的嘴形重塑为一个36维矢量,在所有帧上应用PCA,并通过前20个PCA系数的系数表示每个嘴形; 此步骤既可以减少尺寸,又可以对所得特征集进行解相关。
最后,我们通过线性内插PCA系数在时间上将嘴形从30Hz上采样到100Hz,以匹配音频采样率。 请注意,此升采样仅用于训练; 我们最终生成30Hz的视频。

3.1.1 Recurrent Neural Network

我们试图学习从MFCC音频系数到PCA口形系数的映射,用神经网络对该映射进行建模:考虑一下奥巴马说的“美国”一词。 他从发出声音Uhhh开始,这是口腔合成器提示他应该开始张开嘴巴的提示。 显然,我们的网络需要最新的音频特征作为输入来确定嘴巴的形状。但当前的嘴形还取决于以前的嘴形。 他会继续说几小时,在这段时间内嘴巴会张大,而不是从闭合状态重新张开。这些考虑因素激发了递归神经网络(RNN)。

3.2 Facial Texture Synthesis

在本节中,我们描述了从稀疏的嘴形合成高细节面部纹理的方法。 我们专注于合成下脸区域,即嘴,下巴,脸颊以及鼻子和嘴周围的区域。 图8显示了该蒙版。
在这里插入图片描述

我们提出了一种方法,该方法结合了来自牙齿代理的加权中值和高频。给定稀疏的嘴形序列和目标视频,我们将独立处理每个嘴形。 算法概述如下:

  1. 对于每个PCA形状,选择固定数量的最匹配给定形状的目标视频帧;
  2. 对候选对象应用加权中值以合成中值纹理;
  3. 从目标视频中选择牙齿代理帧,并将高频牙齿详细信息从代理传输到媒体纹理的牙齿区域。
3.2.1 Candidate frame selection
3.2.2 Weighted median texture synthesis
3.2.3 Teeth Proxy

3.3 Video Re-timing for Natural Head Motion

我们假设有一个目标视频,我们的合成嘴巴区域将被合成到该视频中。 由于目标视频中的语音与源(输入)语音不同,因此幼稚的合成可能显得笨拙。 尤其是,我们注意到对齐音频和视频暂停很重要; 如果奥巴马暂停讲话,但头部或眉毛不停移动,那看起来是不自然的。 为了解决这个问题,我们使用动态编程对目标视频重新计时。 我们在N个合成口动画帧和M个目标视频帧之间寻找最佳单调映射,从而:

  • 它喜欢在发声时多运动而在安静时少动
  • 任何目标视频帧最多可以重复一次,但绝不会跳过。这将放慢速度限制为最多50%,并且无法加速视频;否则会发生明显的跳跃或冻结。
  • 它更喜欢目标视频中放慢速度最不明显的部分,即在眨眼或快速表情变化期间不会放慢脚步。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值