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%,并且无法加速视频;否则会发生明显的跳跃或冻结。
  • 它更喜欢目标视频中放慢速度最不明显的部分,即在眨眼或快速表情变化期间不会放慢脚步。
<think>嗯,用户想了解SpeechFace的技术文档或教程,但关于这个主题的信息似乎不多。首先,我需要确认“SpeechFace”这个术语是否正确,是否存在拼写错误或者是否是一个较新的技术。可能用户指的是将语音处理与面部表情或面部识别相结合的技术,比如语音驱动面部动画之类的应用。 接下来,我应该检查是否有相关的知名技术或框架使用类似的名字。例如,Speech-Driven Facial Animation或者Audio-Driven Talking Face Generation,这些是近年来研究的热点。可能需要考虑像Google的AVStar、Meta的Codec Avatars,或者一些学术项目如Wav2Lip、MakeItTalk等。这些技术通常涉及多模态学习,结合语音信号和视觉信息。 然后,用户需要技术文档或教程,所以应该推荐一些可靠的资源。比如,GitHub上的开源项目,相关的论文,或者博客文章。需要确保推荐的资源是最新的,因为该领域发展迅速。另外,用户可能需要基础教程,比如如何使用Python和相关库(如PyTorch、TensorFlow)来实现语音到面部的模型。 还要考虑到用户可能对具体的应用场景感兴趣,比如虚拟助手、游戏角色动画、视频会议中的虚拟形象等。因此,在回答中可以提及这些应用,并推荐相应的案例研究或项目实例。 此外,需要检查是否有引用来源。例如,某些技术可能有官方文档,或者知名的研究论文。如果找不到直接的“SpeechFace”资料,可能需要解释类似技术,并建议用户查阅相关文献。 最后,确保回答结构清晰,分点说明可能的替代技术、推荐的学习资源、应用场景以及相关开源工具。同时,生成的问题要围绕用户可能进一步感兴趣的方向,比如技术原理、实现步骤、挑战等。</think>### SpeechFace 技术相关介绍 目前公开资料中并未有明确以“SpeechFace”命名的成熟技术框架,但根据名称推测,该技术可能与**语音驱动面部表情生成**或**语音-面部特征关联分析**相关。以下是类似技术的解析及学习资源: --- ### 一、技术方向推测 1. **语音到面部动画(Speech-Driven Facial Animation)** 通过语音信号生成对应的面部动画(如嘴唇运动、表情变化),应用于虚拟数字人、游戏角色等[^1]。 代表方法: - *Wav2Lip*:基于音频与唇部同步的模型(GitHub开源) - *VOCA* (Voice Operated Character Animation):通过语音驱动3D面部网格 2. **语音-面部特征关联分析** 研究语音信号与说话人面部特征的关联性,例如通过声音重建人脸或进行身份验证[^2]。 --- ### 二、学习资源推荐 #### 1. 开源项目与工具 - **Wav2Lip** GitHub仓库:https://github.com/Rudrabha/Wav2Lip 教程:提供Colab Notebook快速实现音频到唇部同步 ```python # 示例代码(简化) from wav2lip import Wav2Lip model = Wav2Lip() model.generate_video(audio="input.wav", face="face_image.jpg") ``` - **VOCA** 论文与代码:https://github.com/TimoBolkart/voca #### 2. 论文与文档 - 《A Lip Sync Expert Is All You Need for Speech to Lip Generation》 (Wav2Lip论文)[^3] -Learning Speech-driven 3D Conversational Gestures from Video》 (多模态语音-面部-手势生成)[^4] #### 3. 实践教程 - **Google Colab教程**:搜索“Audio-driven Talking Face Generation Colab”可找到实时演示 - **Unity面部动画集成**:Unity插件如`Oculus LipSync`支持语音驱动模型 --- ### 三、应用场景 1. 虚拟主播/数字人直播 2. 影视配音自动化 3. 无障碍通信(为听障者提供唇语视觉辅助) ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值