📄 KSDIFF: Keyframe-Augmented Speech-Aware Dual-Path Diffusion for Facial Animation
#音频生成 #扩散模型 #跨模态 #关键帧检测
✅ 7.5/10 | 前25% | #音频生成 | #扩散模型 | #跨模态 #关键帧检测
学术质量 6.0/7 | 选题价值 1.5/2 | 复现加成 0.0 | 置信度 高
👥 作者与机构
- 第一作者:Tianle Lyu†, Junchuan Zhao†(论文中标注†表示同等贡献)
- 通讯作者:Ye Wang⋆(新加坡国立大学计算学院, wangye@comp.nus.edu.sg)
- 作者列表:Tianle Lyu(新加坡国立大学计算学院)、Junchuan Zhao(新加坡国立大学计算学院)、Ye Wang(新加坡国立大学计算学院)
💡 毒舌点评
亮点在于将语音特征显式解耦为表情和头部姿势两个独立路径进行建模,这一设计思路抓住了面部动作驱动的核心差异,实验也证实了其有效性;但短板在于对“关键帧”的选择和建模仍依赖于启发式规则(基于真值帧间变化的阈值),其自回归预测模块的鲁棒性和泛化边界未得到充分探讨。
📌 核心摘要
- 问题:现有音频驱动面部动画方法通常将语音特征视为一个整体,忽略了其对表情(高频变化)和头部姿势(低频变化)的差异化驱动作用,同时未能有效建模运动中的关键动态帧。
- 方法:提出KSDiff框架,核心包括:(1) 双路径语音编码器(DPSE),利用多尺度扩张卷积和Prosody信息,将语音特征解耦为表情相关和头部姿势相关两个分支;(2) 关键帧建立学习(KEL)模块,通过自回归Transformer预测运动最剧烈的帧;(3) 基于DiffSpeaker的双路径扩散生成器,分别合成表情和头部姿势系数。
- 创新:主要创新在于明确提出并实现了语音特征的“解耦”处理,以及引入了数据驱动的、具有物理意义的关键帧预测模块,将两者协同融入扩散生成流程。
- 实验:在HDTF和VoxCeleb数据集上,KSDiff在多项指标上优于或媲美SOTA方法。例如,在HDTF测试集上,其LVE(唇部顶点误差)降至4.835×10⁻⁵ mm,LSE-C(同步置信度)提升至0.708,头部姿势Diversity(多样性)达0.318,Beat Align(节奏对齐)达0.354(表1)。消融研究(表3)证明,移除语音特征分离、双路径扩散、关键帧或韵律模块均会导致性能下降。
- 意义:该工作推动了音频驱动面部动画向更精细化、物理一致性的方向发展,为虚拟人生成提供了更逼真的运动控制方案。
- 局限性:关键帧提取依赖于真值运动序列的后处理,其在线预测性能上限受限;对极端或非常规的面部表情与头部运动组合的生成能力未做深入探讨。
🏗️ 模型架构
KSDiff的整体架构如图2所示。系统接收原始音频 a1:N 和转录文本 x1:L 作为输入。
双路径语音编码器 (DPSE):
- 输入:原始音频波形。
- 核心组件:
- 特征提取:使用预训练的Wav2Vec编码器提取帧级语音特征,然后通过一个轻量级投影层。
- 多尺度扩张卷积 (MSDC):包含多个并行分支,每个分支使用不同扩张率的深度卷积来捕获不同时间尺度的上下文,最后融合并残差连接。
- 特征解耦:将融合后的隐藏特征
hs分为两个路径处理:- 头部姿势分支:采用不同窗口大小的池化操作(长窗
w_c^h和中窗w_f^h)生成粗、细粒度的头部姿势特征,并通过多头交叉注意力(MHCA)与底层语音特征交互,最终拼接投影得到f_h。 - 表情分支:提取音频的韵律特征(F0和能量),通过FiLM调制模块生成“韵律感知”的语音特征,再经过短窗池化和线性层得到表情特征
c_e。同样使用MHCA与底层特征交互,输出f_e。
- 头部姿势分支:采用不同窗口大小的池化操作(长窗
- 输出:头部姿势相关语音特征
f_h和表情相关语音特征f_e。
关键帧建立学习 (KEL):
- 监督信号生成:根据真值头部姿势和表情参数,计算帧间变化量(旋转角度差、欧氏距离等),经过高斯平滑和阈值筛选,得到目标关键帧序列
ˆk_h和ˆk_e。 - 预测器:两个基于Transformer的自回归预测器,分别以
f_h/f_e和文本x为条件,预测关键帧概率序列k_h和k_e。 - 损失:采用加权二元交叉熵损失(BCE)来处理正负样本不平衡问题。
- 监督信号生成:根据真值头部姿势和表情参数,计算帧间变化量(旋转角度差、欧氏距离等),经过高斯平滑和阈值筛选,得到目标关键帧序列
双路径运动生成器:
- 基于DiffSpeaker的扩散Transformer架构。
- 头部姿势路径:以文本
x、语音特征f_h和关键帧k_h为条件,通过扩散过程去噪生成头部姿势系数h1:T。 - 表情路径:以文本
x、语音特征f_e和关键帧k_e为条件,生成表情系数e1:T。 - 最终渲染:生成的系数通过DECA模型渲染成完整的说话人头部动画
m1:T。
架构图说明:
此图清晰展示了从音频输入到DPSE特征分离,再到KEL关键帧预测,最后通过双路径扩散生成器输出系数的整体��据流。图2(b)则详细展示了DPSE的内部结构,包括MSDC、FiLM调制、MHCA等模块的连接关系。
💡 核心创新点
- 双路径语音特征解耦 (DPSE):针对已有方法将语音视为单一表征的局限,设计专门模块将语音信号显式分解为驱动表情的高频成分和驱动头部姿势的低频成分。通过多尺度卷积、韵律调制(FiLM)和注意力机制实现,使生成模型能更精准地利用不同语音线索。
- 数据驱动的自动回归关键帧预测 (KEL):改进了以往启发式或基于锚点的关键帧选择方法。通过计算真值运动的剧烈程度来标注关键帧,并训练一个Transformer模型来预测这些帧,从而为扩散生成器提供明确的运动“锚点”,增强生成动画的动态感和节奏感。
- 双路径扩散生成框架:将解耦的语音特征、文本和预测的关键帧作为条件,并行地、独立地对头部姿势和表情进行扩散建模。这避免了不同运动类型在单一生成器中的干扰,使得每种运动都能得到更充分、更专业的条件引导。
🔬 细节详述
- 训练数据:
- 数据集:HDTF(高清说话人脸数据集)和VoxCeleb(大规模、无约束条件的说话人视频数据集)。
- 预处理:使用DECA提取每帧的表达系数
ˆe(50维)和头部姿势系数ˆh(9维);使用Whisper提取转录文本x;音频重采样至16kHz。 - 未提供具体视频片段数量和时长统计。
- 损失函数:
- 关键帧预测损失:
L_h_BCE和L_e_BCE,加权二元交叉熵损失,权重w1 > w0。 - 扩散损失:
L_h_diff = L_h_rec + L_h_vel,包含重建损失和速度损失,权重λ1 = λ2 = 1。表情路径L_e_diff同理。 - 多分辨率谱损失:
L_h_mr和L_e_mr,将MR-STFT损失应用于运动序列,权重λ_mr = 0.3。 - 总损失:
L_h = λ_mrL_h_mr + λ_BCEL_h_BCE + λ_diff*L_h_diff,L_e同理。权重设置为λ_mr = 0.3,λ_BCE = 0.5,λ_diff = 1。
- 关键帧预测损失:
- 训练策略:
- 优化器:AdamW。
- 学习率:1e-4,带5k步预热(warmup)。
- 批大小:32。
- 总迭代次数:100k。
- 关键超参数:
- 隐藏特征维度
D:512。 - MSDC卷积核大小
k:5。 - 池化窗口:
w_c^h = 1.0,w_f^h = 0.25,w_e = 0.1(这些值应为归一化后的窗口长度比例)。 - 关键帧Transformer预测器:6层,8个注意力头。
- Dropout率:0.1。
- 隐藏特征维度
- 训练硬件:4块NVIDIA RTX A5000 GPU,训练时长约16小时。
- 推理细节:论文未详细说明推理时的采样步数、温度等扩散模型常用的超参数。
- 正则化技巧:使用Dropout(率0.1);在关键帧预测中使用加权BCE损失缓解类别不平衡。
📊 实验结果
主要对比结果 (表1):
| 方法 | HDTF数据集 | VoxCeleb数据集 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| LSE-C↑ | LSE-D↓ | LVE↓ (×10⁻⁵mm) | Diversity↑ | Beat Align↑ | LSE-C↑ | LSE-D↓ | LVE↓ (×10⁻⁵mm) | Diversity↑ | Beat Align↑ | |
| SadTalker [5] | 0.625 | 10.121 | 5.918 | 0.246 | 0.274 | 0.653 | 9.981 | 5.802 | 0.296 | 0.305 |
| FaceDiffuser [1] | 0.594 | 11.156 | 6.226 | - | - | 0.627 | 10.530 | 6.091 | - | - |
| DiffTalk [2] | 0.689 | 9.884 | 5.279 | 0.281 | 0.295 | 0.706 | 9.743 | 5.026 | 0.297 | 0.324 |
| Hallo2 [21] | 0.704 | 9.629 | 5.437 | 0.293 | 0.302 | 0.711 | 9.841 | 5.174 | 0.316 | 0.347 |
| KeyFace [8] | 0.717 | 9.541 | 5.095 | 0.274 | 0.331 | 0.732 | 9.415 | 4.821 | 0.310 | 0.354 |
| DiffSpeaker [3] | 0.702 | 9.916 | 4.926 | - | - | 0.707 | 9.732 | 4.684 | - | - |
| KSDiff (Ours) | 0.708 | 9.204 | 4.835 | 0.318 | 0.354 | 0.713 | 9.037 | 4.327 | 0.328 | 0.377 |
结论:KSDiff在LSE-D、LVE、Diversity和Beat Align等多项指标上取得了最佳或接近最佳的成绩,尤其在VoxCeleb数据集上LSE-D(9.037)和LVE(4.327)的优势明显。
主观评价结果 (表2):
| 方法 | 全脸自然度↑ | 唇部同步↑ | 头部运动↑ | 流畅度↑ |
|---|---|---|---|---|
| SadTalker [5] | 3.77 | 3.64 | 4.06 | 3.62 |
| FaceDiffuser [1] | 3.24 | 3.36 | 1.58 | 3.37 |
| DiffTalk [2] | 4.06 | 3.91 | 4.27 | 4.16 |
| Hallo2 [21] | 4.05 | 4.31 | 3.98 | 3.94 |
| KeyFace [8] | 4.12 | 4.24 | 4.42 | 4.27 |
| DiffSpeaker [3] | 3.69 | 4.32 | 1.37 | 3.63 |
| KSDiff (Ours) | 4.22 | 4.48 | 4.60 | 4.45 |
结论:在26位参与者的主观评估中,KSDiff在四个评价维度上均获得最高分,表明其生成结果在感知质量上也具有优势。
消融实验 (表3,在HDTF数据集):
| 方法 | LSE-C↑ | LSE-D↓ | LVE↓ | Diversity↑ | Beat Align↑ |
|---|---|---|---|---|---|
| w/o speech split | 0.640 | 9.865 | 5.445 | 0.238 | 0.261 |
| w/o dual-path diff | 0.652 | 9.629 | 5.172 | 0.270 | 0.316 |
| w/o keyframe | 0.663 | 9.570 | 5.329 | 0.256 | 0.292 |
| w/o prosody | 0.683 | 9.481 | 4.818 | 0.296 | 0.331 |
| w/o transcript | 0.699 | 9.372 | 5.720 | 0.305 | 0.342 |
| wav2vec only | 0.576 | 10.528 | 5.584 | 0.221 | 0.254 |
| Ours | 0.708 | 9.204 | 4.635 | 0.318 | 0.354 |
结论:每个组件的去除都导致性能不同程度下降,其中“w/o speech split”对LSE-C和Diversity影响最大,“w/o transcript”导致LVE显著上升,证明了所有模块的必要性。
可视化结果:
结论:图3显示,在单词“bread”的发音过程中,KSDiff生成的头部运动轨迹和表情变化比DiffSpeaker和SadTalker更贴近真实序列,且运动更自然,没有SadTalker中出现的夸张动态。
⚖️ 评分理由
- 学术质量:6.0/7。论文针对现有方法的明确不足(语音表征单一、忽略关键帧)提出了系统性的解决方案(DPSE解耦、KEL预测、双路径生成)。技术路线合理,各模块设计有明确动机。实验全面,包括客观指标对比和主观用户研究,并在两个数据集上验证,消融实验充分支持了各模块的贡献。主要失分点在于方法属于改进型创新,且部分设计(如关键帧监督信号的生成)较为传统。
- 选题价值:1.5/2。音频驱动面部动画是当前多媒体和虚拟现实领域的热点,具有广阔的应用前景。本文聚焦于提升生成内容的自然度和可控性,对该领域的技术发展有积极的推动作用,属于有价值的应用驱动型研究。
- 开源与复现加成:0.0/1。论文提供了项目主页链接,但未承诺或提及开源代码、预训练模型权重。虽然论文详细列出了超参数和训练硬件,但缺乏可直接获取的模型和代码,显著增加了复现难度。
🔗 开源详情
- 代码:论文提供了项目主页链接(https://kincin.github.io/KSDiff/),但论文中未明确提及代码仓库链接。
- 模型权重:未提及公开的模型权重。
- 数据集:训练所用HDTF和VoxCeleb是公开数据集,但论文未说明其具体预处理后的版本获取方式。
- Demo:未提及。
- 复现材料:论文提供了较为详细的训练超参数(学习率、batch size、迭代次数、优化器等)、网络结构参数(维度、层数、头数)和硬件配置(4×RTX A5000,16小时)。但未提供代码、配置文件或检查点。
- 论文中引用的开源项目:明确引用了Wav2Vec(语音特征提取)、DECA(3D面部模型)、Whisper(文本转录)、DiffSpeaker(生成框架基础)、MR-STFT损失等开源工作或工具。