【虚拟数字人】--Wav2lip--对口型的技术

文中提到,早期的研究主要集中在特定发言者(如巴拉克·奥巴马)的视频上,通过学习音频输入与唇部标记之间的映射来生成说话面孔视频,但这些方法需要大量的特定发言者数据,并且无法适应新的身份或声音。另外,一些新的研究尝试通过修改现有视频中的语句来减少对大量数据的依赖,或者采用两阶段学习方法,首先学习与发言者无关的特征,然后使用较少的数据进行训练。然而,这些方法仍然面临着数据集大小和词汇限制的挑战,影响了模型处理真实视频中音素和视素映射的能力。与此相对,我们的研究旨在开发一种能够在不受身份、声音或词汇限制的情况下,对任何目标语音进行唇同步的无约束说话面孔视频生成技术。这将大大扩展生成说话面孔视频的应用范围和灵活性。

2020年,来自印度海德拉巴大学和英国巴斯大学的团队,在ACM MM2020发表了的一篇论文**《A Lip Sync Expert Is All You Need for Speech to Lip Generation In The Wild 》**,在文章中,他们提出一个叫做Wav2Lip的AI模型,只需要一段人物视频和一段目标语音,就能够让音频和视频合二为一,人物嘴型与音频完全匹配。
Wav2Lip 则可以直接将动态的视频,进行唇形转换,输出与目标语音相匹配的视频结果。
https://bhaasha.iiit.ac.in/lipsync/example_upload3
https://learn.thinkdiffusion.com/wav2lip-lip-sync-any-existing-video/
https://medium.com/@jacksaunders909/wav2lip-generalized-lip-sync-models-e0effc4e8ed3
在这里插入图片描述

  1. 输入: 输入包括一个Mel频谱图段(音频特征)和一个随机参考视频段(一系列连续的视频帧)。 处理: 生成器的任务是通过这两个输入来生成一系列新的视频帧,这些帧中的嘴型应该与Mel频谱图中的音频信息同步。 掩蔽策略: 在视频帧中,下半部分可能被掩蔽,并与另一随机视频段连接,这有助于生成器专注于嘴唇区域的生成。 Skip Connections: 在网络中使用跳过连接技术,有助于在深度网络中保留低层特征信息。 L1重建损失: 生成器在训练过程中会用到L1重建损失,以确保生成的帧与真实帧(Ground truth segment)在像素级别上尽可能接近。
  2. 同步判别器 (Lip-Sync Expert) 预训练: 该部分是预先训练过的专家系统,用于检测生成的帧和原始音频之间的同步性。 同步损失 (Sync loss): 在训练过程中,同步损失用于衡量生成的视频帧与音频的同步精度。
  3. 视觉质量判别器 (Visual Quality Discriminator) 判别器 (Discriminator): 判别器的任务是区分生成的视频帧与真实视频帧,判别其是否看起来自然和真实。 二元交叉熵损失 (Binary cross-entropy loss): 使用二元交叉熵损失来优化判别器,使得它能够更好地区分真实帧和生成帧。
  4. 输出 生成帧 (Generated frames): 这是模型输出的最终视频帧,它们应当在视觉上看起来自然,并且与输入的音频同步。")
    从嘴唇运动中产生语言的结构
    我们的方法是通过向“训练有素的对口型专家”学习来生成准确的对口型。与以前的工作不同,在GAN设置中只使用重建损失或训练鉴别器,我们使用了一个预训练的鉴别器,该鉴别器在检测口型同步错误方面已经非常准确。我们的研究表明,在嘈杂的人脸上进一步微调会阻碍鉴别器测量口型同步的能力,从而也会影响生成的唇形。

1. 输入数据和预处理

Wav2Lip 可以接受任意的静态图像或视频帧以及与之对应的音频片段作为输入。输入的图像被用来提取面部特征,而音频则用于分析发音和语音特征。这些数据在输入模型之前通常会经过一定的预处理,比如标准化、裁剪和同步对齐。
Wav2Lip 处理的核心环节之一是对输入数据进行恰当的预处理,以确保模型能够有效地生成准确的唇部同步视频。以下是对 Wav2Lip 输入数据和预处理步骤的详细介绍:

输入数据

Wav2Lip 主要接收两种类型的输入数据:

  1. 视频帧:这通常是一连串的视频帧,可以是从视频文件中提取的单个帧或连续帧。视频帧提供了说话人的脸部图像,这是生成唇部动作的基础。
  2. 音频信号:与视频帧同步的音频信号,包含说话人的声音。音频信号用于指导唇部运动的生成,以确保视频中的唇动与音频中的发音精确匹配。

预处理步骤

为了提高模型的性能和效率,输入数据需要经过一系列预处理步骤:

  1. 面部检测和对齐
  • 使用面部检测算法(如 MTCNN 或 Haar Cascade)识别视频帧中的人脸。
  • 应用面部关键点检测(如 Dlib 或 OpenCV 的 face landmarks 检测器)来获取面部结构的关键点,如眼睛、鼻子和嘴巴的位置。
  • 根据检测到的关键点对齐脸部,确保脸部位于帧的中心,并且嘴巴和眼睛的位置标准化。这通常涉及到缩放和旋转变换。
  1. 视频帧预处理
  • 视频帧经过裁剪,只保留脸部的重要区域,特别是嘴巴周围区域,这是生成唇动的关键区域。
  • 应用图像标准化处理,如调整亮度和对比度,以及归一化像素值至一定范围(通常是 0 到 1 或 -1 到 1)。
  1. 音频信号预处理
  • 音频信号首先被裁剪以与视频帧的长度匹配。这通常涉及选择与视频帧同步的音频段。
  • 进行音频特征提取,如计算 Mel 频谱或 MFCC(梅尔频率倒谱系数)。这些特征能有效地捕捉音频的关键属性,帮助模型学习音频与唇动之间的关系。
  • 音频数据也可能经过归一化处理,以保持数据范围的一致性。
  1. 数据批处理
  • 为了提高训练效率,将预处理后的数据组织成批次(batch)。每个批次包含多个视频帧和相应的音频特征,这些批次数据将直接输入到神经网络中进行训练。

通过这些预处理步骤,Wav2Lip 能够确保输入数据的质量和一致性,为生成高质量的唇同步视频提供了坚实的基础。这些步骤不仅帮助模型更好地学习面部动态和音频特征之间的关系,还提高了模型处理不同环境和条件下输入数据的鲁棒性。

2. 生成器和判别器架构

Wav2Lip 使用了一个基于生成对抗网络(GAN)的架构,其中包括两个主要部分:生成器和判别器。
Wav2Lip 的核心功能是通过输入的音频信号和视频帧生成与音频精确同步的唇部动画。这一过程涉及到复杂的生成器和判别器设计,下面是对 Wav2Lip 中生成器和判别器的更详细介绍:

生成器 (Generator)

Wav2Lip 的生成器设计旨在将输入的静态图像(或视频帧)与对应的音频信号结合,生成与音频同步的唇部动画。生成器的架构通常包括以下几个关键部分:

  1. 身份编码器:该部分首先接收输入的面部图像(通常是视频帧的一部分),通过一系列卷积层来提取面部特征。这些特征捕捉了说话人的独特身份信息,如面部结构、皮肤质地等。
  2. 语音编码器:语音编码器处理输入的音频信号,通过一系列卷积层或循环神经网络(如LSTM)来提取与语音相关的特征。这些特征反映了语音的节奏、音调和语音内容,这对于生成准确的唇部动作至关重要。
  3. 解码器:解码器的任务是将身份编码器和语音编码器提取的特征融合,并生成最终的唇部动画。这通常通过一系列的上采样卷积层实现,逐步构建出与原始输入图像尺寸相同的输出图像,但唇部动作与输入音频同步。

判别器 (Discriminator)

为了提高生成视频的真实性和同步精度,Wav2Lip 使用了两种类型的判别器:唇同步判别器和视觉质量判别器。

  1. 唇同步判别器:这个判别器的主要任务是评估生成的视频帧和输入音频之间的同步精度。它通过评估音频特征和视频帧中唇部运动的匹配程度来工作。唇同步判别器通常是一个预训练的深度学习模型,如 SyncNet,专门用于判定视频和音频是否同步。
  2. 视觉质量判别器:除了同步精度外,生成的视频的视觉质量同样重要。视觉质量判别器的任务是确保生成的视频帧在视觉上看起来自然且无明显生成痕迹。这通常涉及到使用 GAN(生成对抗网络)中的判别器结构,评估生成图像的真实性,以及与原始视频帧的一致性。

训练与优化

在训练过程中,生成器和判别器通常是交替优化的。生成器试图生成越来越真实且与音频同步的视频帧,而判别器则尝试区分真实视频帧与生成视频帧的差异。通过这种对抗训练,模型逐渐学习如何改进生成效果,直到判别器无法轻易区分生成的视频与真实视频。

3. 训练过程

Wav2Lip 的训练涉及大量的音视频数据,包括来自不同发言者的多种语言和口音。该模型使用大规模的数据集进行训练,如LRS2和LRS3,这些数据集提供了大量的音视频同步样本。训练过程中,模型学习如何从任意的音频信号中生成匹配的唇部动作,而不仅限于在训练数据中见过的样本。
LRS2(Lip Reading Sentences 2)和LRS3(Lip Reading Sentences 3)是两个广泛用于视觉语音识别和唇读任务的公开数据集。这些数据集是为了促进自动唇读技术的发展而设计的,它们包含了大量的视频样本,这些样本配备了说话人的脸部视频和相对应的音频。下面是关于这两个数据集的更详细的介绍:

LRS2 数据集

  • 来源与内容:LRS2数据集是由牛津大学的视觉几何组(Visual Geometry Group, VGG)开发的。它包含数千个来自英国广播公司(BBC)的节目片段。这些视频涵盖了新闻、访谈和其他类型的节目。
  • 特点:LRS2数据集的主要特点是其多样性和复杂性,视频中的说话人表现出多种自然的口型和表情变化。此外,数据集中的语音和视觉数据都是自然同步的,非常适合用来训练和测试唇读系统。
  • 用途:LRS2常用于训练和评估唇读模型的性能,尤其是在视音频同步和语音识别的研究中。由于其视频质量和多样性,LRS2也经常被用于深度学习和计算机视觉的相关研究。

LRS3 数据集

  • 来源与内容:LRS3数据集是LRS2的扩展,它也是由牛津大学的视觉几何组开发的。这个数据集特别收录了TED演讲的视频,提供了大量的教育和科技相关内容。
  • 特点:LRS3数据集包含了超过400小时的视频内容,涵盖了大约1000多位说话人的演讲。这些视频不仅语言内容丰富,而且场景涵盖了从小型研讨会到大型会议的多种环境。
  • 用途:LRS3由于其庞大的数据量和高质量的视频,常用于更加复杂的视觉语音识别任务。数据集中的演讲内容和专业术语的多样性使其成为理解和生成专业领域内语音的理想资源。

4. 评估方法和基准

Wav2Lip 提出了一套新的评估指标和基准,特别是针对无约束环境中的唇同步精度进行量化评估。这些指标包括:

  • 同步准确度:通过专门的同步网络(如 SyncNet)来衡量音频和视频之间的同步精度。
  • 视觉质量评估:使用传统的图像质量评估指标(如 SSIM 和 PSNR)以及特定的GAN训练指标(如 Fréchet Inception Distance, FID)来评价生成图像的质量。

技术细节的逐点解释

训练损失

  • L1 重建损失:这是最基本的损失函数,用于评估生成的视频帧与真实视频帧之间的像素级差异。L1 损失函数计算的是生成帧与真实帧之间的绝对差值的平均,这有助于确保生成的图像在视觉上与实际图像保持一致。

口型同步专家网络(SyncNet)

  • 功能和目的:SyncNet 是用来判断视频帧(视觉)与音频(听觉)是否同步的专家系统。该网络通过分析音频和视频数据的时间对齐程度来帮助确保生成的视频在视觉上与听觉内容匹配。
  • 工作机制:SyncNet 并不是直接对每一帧进行处理,而是在一组帧(帧窗口)上进行操作。这是因为单帧可能不足以准确判断视频与音频之间的同步性,而多帧数据可以提供更多关于运动和音频连续性的信息。

多帧生成与数据处理

  • 生成多帧:为了适应 SyncNet 的需要,模型在训练时并不是单独生成一帧,而是一次性生成多帧。这样做可以模拟视频中连续的动态变化,更好地训练模型捕捉音视频同步的能力。
  • 数据堆叠与张量重塑
    • 张量堆叠:在生成多帧后,为了让 SyncNet 处理,需要将这些帧按照一定方式堆叠起来。具体方法是按通道堆叠,即将多个帧的像素值按通道维度合并。
    • 张量形状变换:堆叠后,张量的形状会从 (N _ T, W, H, 6) 调整为 (N, T, W, H, 3) 并进一步转化为 (N, W, H, 3 _ T)。这样的变换使得模型可以在保持批次维度 N 不变的情况下,将 T 帧作为一个整体输入到 SyncNet 中。
  • 鉴别器输入:最后生成的张量 (N, W, H, 3 * T) 同样也是输入到鉴别器的数据。鉴别器通过这种方式可以观察到连续帧之间的关系,有助于判断生成的视频在时间上的连贯性和稳定性。

SyncNet的核心任务

SyncNet 的主要任务是预测给定的一对视频和音频是否处于同步状态。这种预测不仅需要准确,还需要包含不确定性,这样才能将其作为损失函数(比如二元交叉熵损失)来优化生成的视频,以改善口型同步的质量。

训练方法:对比学习

  • 对比学习的应用:作者采用了一种对比学习的策略来训练 SyncNet,这种策略涉及将单独的视频和音频输入通过各自的编码器映射到一个公共的潜在空间,并计算这两个表示之间的余弦相似度。余弦相似度衡量了两个向量在方向上的接近程度,从而反映了视频和音频之间的同步程度。
  • 余弦相似度:通过计算视频和音频的潜在表示之间的余弦相似度,模型可以评估它们的相似性。余弦相似度的结果在0到1之间,可以被解释为同步概率,0 表示完全不同步,1 表示完全同步。

训练过程细节

  1. 数据选择和准备
  • 从视频中选择一个连续的 T 帧片段。
  • 以相同的概率,选择与这些帧匹配的音频窗口,或者选择来自同一视频但时间点不同的音频窗口。这种方法可以生成正样本(同步)和负样本(不同步),对比学习需要这两种类型的样本来训练。
  1. 数据处理
  • 将选定的帧沿通道轴堆叠。
  • 将音频转换为 MEL 频谱图,这是一种常用的音频处理方法,能够有效捕获音频数据的特征。
  1. 编码器处理
  • 使用单独的视频和音频编码器对堆叠的视频帧和 MEL 频谱图进行编码,得到各自的表示向量。
  1. 同步概率计算
  • 计算两个表示向量之间的余弦相似度,将其视为同步的概率。
  1. 损失计算和优化
  • 使用二元交叉熵损失函数来衡量预测的同步概率与实际同步状态之间的误差。
  • 通过反向传播更新模型参数以减少损失,优化视频和音频之间的同步预测能力。

通过这种方法,SyncNet 能够学习如何准确地判断视频和音频是否同步,并通过不断优化这一能力来提高生成视频的口型同步质量。这种训练策略有效地利用了对比学习的优势,即通过比较正负样本来提升模型的判别能力。

动态视频处理的工作原理

  1. 视频帧序列处理
    • 在处理动态视频时,Wav2Lip 会连续处理视频中的每一帧。与处理静态图像相比,这要求模型必须能够快速并准确地从一帧到下一帧转换,保持唇形动态连贯和自然。
    • 对于视频序列,Wav2Lip 会对整个视频片段进行帧的提取和面部关键点的跟踪,确保面部特征在序列中的一致性和对齐。
  2. 音频与视频同步
    • 处理视频序列时,必须确保视频中的每一帧与相应的音频片段保持同步。Wav2Lip 利用高效的算法确保音频和视频帧之间的对应关系准确,以实现精确的唇形同步。
    • 音频处理同样需要按帧划分,确保每个视频帧对应的音频片段可以正确地驱动相应的唇形动作。
  3. 时间连贯性
    • 在动态视频处理中,保持时间上的连贯性至关重要。Wav2Lip 需要确保生成的唇形不仅与当前帧的音频同步,而且与前后帧的唇形平滑过渡,避免产生跳跃或抖动现象。
    • 模型可能会引入时间序列建模技术,如循环神经网络(RNN)或长短期记忆网络(LSTM),来处理序列数据,增强视频帧之间唇形的连贯性和自然性。
  4. 性能优化
    • 动态视频的处理要求模型必须高效且响应迅速。Wav2Lip 在设计时就考虑了这一点,通过优化算法和网络结构,减少处理延迟,实现接近实时的唇形同步。
    • 此外,模型可能采用更高效的卷积网络结构或通过模型剪枝和量化技术来提高处理速度和降低计算资源消耗。
  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值