Geometry-guided Emotion Modulation for Controllable and Photorealistic Emotional Talking Face Generation
就能生成唇形对齐、且携带精准音频情绪的说话人视频。它首创了几何先验引导的隐式特征调制模块,在不损失视觉高频细节的前提下,实现了精准、连续的情感强度控制,且不对视频质量和唇音同步造成损失。
1. 全景速览
一句话总结:GemTalk 让「隐式特征决定 什么情感(语义方向)」,让「显式几何先验决定 多强情感(幅值)」,首次在扩散模型中做到连续、精确的情感强度控制。
核心模块:
| 模块 | 全称 | 输入 → 输出 |
|---|---|---|
| Backbone | 情感无关唇同步骨架 | 音频 + 参考帧 → 基础视频 |
| V-AEP | 视觉引导音频情感投影 | 音频 → 隐式唇特征 + 表情特征 |
| D-GPG | 扩散式几何先验生成器 | 音频 → 45 维 blendshape |
| LECM | 唇-表情协同模块 | 唇特征 + 表情特征 → 协同表情特征 |
| GEM(核心) | 几何引导情感调制 | → 幅值重校准特征 |
数据流:
参考人脸 I_ref + 驱动音频 a
│
├── V-AEP(隐式路径)──→ 唇特征 f_l^a + 表情特征 f_e^a
│
└── D-GPG(显式路径)──→ 45维 blendshape b_geo ──投影──→ F_geo
│
▼
GEM 模块(F_geo 作 KV,重校准隐式特征幅值)
│
▼
Denoising U-Net(情感条件 → 说话视频)
视频 1: GemTalk 在面部情感连续可控上的效果(无需任何情感强度标签)
2. 动机与核心洞察
2.1 两类现有方法的困境
音频驱动情绪说话人脸生成,长期卡在一个两难里:
| 方法类型 | 代表 | 优势 | 致命缺陷 |
|---|---|---|---|
| 隐式表示 | Hallo、Sonic、DICE-Talk | 语义丰富、视觉质量高 | 特征幅值由噪声/初始化随机决定,与肌肉激活无关 → 情感「平均化」,无法控制强度 |
| 显式几何 | SadTalker、EAT、EDTalk | 控制精准 | 依赖 warping/渲染 → 像素扭曲、高频纹理丢失、身份漂移 |
2.2 核心洞察:注意力内积的几何分解
在扩散模型的 Cross-Attention 里,注意力分数就是 Query 与 Key 的内积:
拆成两个正交分量:
- 🔹 方向分量 → 决定「哪种情感」(隐式方法擅长捕捉);
- 🔹 幅值分量 → 决定「情感有多强」(隐式方法完全失控,即 “radial invariance” 问题)。
GemTalk 的思路:保留隐式特征的语义方向 不变,用显式几何先验(blendshape 系数)动态重校准幅值 ,让 Cross-Attention 同时获得「什么情感」和「多强情感」两方面信息。
2.3 四个研究问题
- 如何在不牺牲视觉保真度的前提下,实现连续、精确的情感强度控制?
- 如何弥合音频与视觉的模态鸿沟,提取与视觉生成目标一致的情感表示?
- 如何对唇部与表情做协同建模,保证面部整体一致?
- 如何防止参考帧静态情感的泄漏污染?
3. 数据与处理
3.1 三个数据集
| 数据集 | 用途 | 内容 | 情感标签 |
|---|---|---|---|
| MEAD | 主训练集(情感) | 大规模多情感音视频 | 8 类 |
| HDTF | 骨架训练集(非情感) | 高清说话人脸 | 无 |
| RAVDESS | 评测集 | 标准化情感音视频 | 8 类 |
3.2 关键维度
| 参数 | 值 |
|---|---|
| 视频帧率 / 人脸裁剪 | 25 fps / 256×256 |
| Wav2Vec 输出 | |
| 视觉情感特征 | 512 |
| Blendshape | 52 → 45(丢弃 7 个低激活维度) |
| 音频上下文 token | 32 |
| 帧数 / batch | 16 / 见下 |
3.3 预处理
- 视频统一为 25 fps,面部中心裁剪 256×256;
- 音频送入冻结的 Wav2Vec → 帧级特征;
- 用 ARKit 兼容工具提取 52 维 blendshape,丢弃 7 个激活率 <0.05 的维度 → 45 维;
- 8 类离散标签用于对比学习正/负样本分组。
4. 方法:四个阶段
4.1 阶段零:情感无关唇同步骨架
设计哲学:先用非情感数据(HDTF)建立稳定唇同步基础,再注入情感模块,避免情感与口型特征纠缠。
组件来源:Reference Net(AnimateAnyone 的并行 2D UNet)、Motion-frame 策略(CyberHost / Diffused-Heads,前 2 帧作运动上下文)、时序模块(AnimateDiff 的帧间注意力)、以及本文设计的 Lip Attention。
Lip Attention 在标准注意力里加掩码 (口型区域外设 ),强制音频只作用于嘴部:
4.2 阶段一:V-AEP — 视觉引导音频情感投影
动机:音频与视觉存在模态鸿沟——同一段音频对应的表情因人而异,简单对齐会过拟合特定身份。
(1) 视觉对比学习
用 ResEmoteNet(带 SE 注意力的多尺度 CNN)作视觉编码器,输入 ,仅借用其特征提取能力(不做分类)。配合激进数据增强(ColorJitter、RandomGrayscale、GaussianBlur 等),迫使网络依赖肌肉运动模式而非纹理来区分情感。
4 个 Projector 把特征投影到共享情感空间:
| Projector | 输入 | 输出 |
|---|---|---|
| Visual-lip | ResEmoteNet 特征 × 唇部 mask | |
| Visual-exp | ResEmoteNet 特征 × 表情 mask | |
| Audio-lip | Wav2Vec 多尺度特征 | |
| Audio-exp | Wav2Vec 多尺度特征 |
其中 ,(音频上下文 token),mask 用二值空间掩码做区域隔离。
LECM(唇-表情协同模块):插在视觉 projector 输出后、对比学习前。先做 Cross-Attention——表情特征 作 Query、唇部特征 作 Key/Value,提取唇动上下文 ;再用 Sigmoid 门控残差注入:
其中 初始化为极小值 → 训练初期门近乎关闭,随训练逐步打开,唇-表情协同信息渐进注入。
视觉对比学习(SupCon + Hard Negative Mining,以表情分支为例):
为同情感正样本, 为最相似的 top-16 硬负样本,。相似度用点积(而非 cosine),使幅值参与梯度,与后续 GEM 重校准幅值呼应。
总视觉损失:
(2) 随机多目标音频投影
把音频特征对齐到视觉情感空间,核心是随机多目标对齐——不固定对齐到单一视觉目标,而是从同情感类别 随机采样最多 个目标帧:
这避免过拟合单一身份的表情习惯,提升泛化性。
4.3 阶段二:D-GPG — 扩散式几何先验生成器
Blendshape 是参数化的面部表情表示(ARKit 标准 52 个系数,每个 表示某肌肉激活强度)。GemTalk 丢弃 7 个低激活维度,用 45 维。
D-GPG 是音频 + 身份条件的扩散模型,在 45 维 blendshape 空间去噪:
- 输入:音频特征()+ 参考帧 blendshape(身份条件 );
- 输出:。
训练损失(标准去噪扩散):
45 个标量如何变成特征:经可学习投影层映射:
其中 、。物理含义:每个 blendshape 系数映射为一个 512 维 token,45 个 token 组成一组「结构指令集」。
4.4 阶段三:GEM — 几何引导情感调制 ★核心★
GEM 把显式几何先验 嵌入隐式情感特征 ,通过 GCA → GAA 两阶段实现「保留语义方向、重校准幅值」。下面以表情分支为例,唇部分走完全相同的流程。
输入:
| 输入 | 维度 |
|---|---|
| 隐式音频-表情特征 | |
| 几何先验 token |
GCA — 几何感知上下文聚合
步骤 ①:L2 归一化(球面语义投影)
沿特征维度 做 L2 归一化,投影到单位超球面()。这一步剥离不可控的原始幅值,只保留纯语义方向 ,后面再用几何先验注入正确幅值。
步骤 ②:几何查询 Cross-Attention
用归一化后的情感特征 作 Query,几何先验 作 Key/Value:
- Query:
- Key/Value:
- 输出:
物理含义:语义特征「主动搜索并聚合」与之匹配的肌肉激活模式(下巴张开幅度、眉毛紧张度等),得到编码精确结构指令的几何感知上下文。
GAA — 几何仿射适配器
步骤 ③:投影生成 scale 和 shift
- 输入 → 输出 。
步骤 ④:仿射调制(核心)
为什么能控制幅值? 已归一化(幅值=1),所以 的方向仍由 决定(语义不变),而幅值 由 控制—— 来自几何先验 ,因此幅值被绑定到物理肌肉激活强度上。这就是「用显式几何重校准隐式幅值」的本质。
关键设计:GAA 最终投影层初始化为零 → 训练开始时 ,即 (恒等映射),保护 V-AEP 预训练好的语义流形不被破坏。
步骤 ⑤:方向一致性损失
强制调制前后特征方向一致,确保结构强度信息只编码进幅值,不旋转特征向量导致语义漂移。消融显示去掉 后情感准确率从 59.26% 暴跌至 32.85%。
输出:注入 Denoising U-Net
唇部分 走相同流程,两个条件特征逐元素相加,经投影后残差注入 U-Net 潜变量 。
完整维度链(表情分支):
f_e^a ∈ ℝ^{B×N×m×d} ← V-AEP 输出
│ L2 归一化(沿 d)
▼
f̂_e^a ∈ ℝ^{B×N×m×d} ← 球面投影,幅值=1
│ Cross-Attention(Q=f̂_e^a, KV=F_geo∈ℝ^{B×N×K×d})
▼
C_e ∈ ℝ^{B×N×K×d} ← 几何感知上下文(K=45)
│ Proj → (γ, β)
▼
γ, β ∈ ℝ^{B×N×m×d} ← 仿射参数
│ F̂_e^a = (1+γ) ⊙ f̂_e^a + β
▼
F̂_e^a ∈ ℝ^{B×N×m×d} ← 幅值重校准特征
│ Cross-Attention(Q=z_t, KV=F̂_e^a)
▼
o_t^e ∈ ℝ^{B×N×m×d} ← 注入 U-Net 的条件特征推理时的连续控制:在情感语义方向不变的前提下,直接编辑 blendshape 系数(选取与目标情感最相关的前 10 个系数按比例缩放,加 0.15 安全边界):
编辑 b_geo → F_geo 变化 → C_e 变化 → γ 变化
→ ‖F̂_e^a‖ 变化 → Cross-Attention 的 ‖K‖ 变化
→ 注意力分数幅值分量变化 → 情感强度连续可控5. 三阶段训练策略
| 阶段 | 数据 | 目标 |
|---|---|---|
| 一:骨架重建 | HDTF | 唇同步 + 视频重建 |
| 二:唇同步增强 | HDTF + Lip Attention | 强化音频→唇型映射 |
| 三:情感注入 | MEAD | V-AEP + D-GPG + GEM |
Conflict-aware 训练:以概率 故意构造参考帧与音频情感不匹配的训练对,迫使模型忽略参考帧静态情感、只响应音频情感信号。
GEM 联合损失:
其中 、。训练 300 epochs,AdamW,骨架 lr=1e-4、情感阶段 lr=1e-5,4×A6000。
6. 实验结果
定量(MEAD + RAVDESS):GemTalk 在情感准确率 Acc_emo 59.26% 领先第二名(49.44%)近 10 个百分点,FVD 334.9 也比第二名低 28.4,兼顾情感表现力与视频质量。
消融关键发现:
- 至关重要:去掉后 Acc_emo 从 59.26% 骤降至 32.85%;
- V-AEP 是情感主力:M1→M3,Acc_emo 从 17% 跃升至 52%;
- GEM 进一步提升:M4→M5⁺ 再提升约 5.6 pp,FVD 降低 23.2;
- LECM 协同有效:M3→M4 提升 1.7 pp。
效率:V-AEP + D-GPG 仅增加 0.78 GB 显存和 2.31 秒推理时间。
6.1 效果视频
视频 2: GemTalk 长视频情感生成的效果对比(参考图和音频情感相同时)
视频 3: GemTalk 在参考图和音频情感相反时的效果对比
视频 4: GemTalk 与其他情感驱动方法的对比
视频 5: adaptive inter-frame smoothing 对人物视频抖动的去除效果
7. 总结
GemTalk 用一条「从特征到几何、再反哺特征」的回调链路,解决了情感说话人脸生成的长期两难:
- 统一混合架构:首次无缝结合显式控制精度与隐式生成保真度;
- 彻底解耦唇型与微表情:把「张嘴说话」和「情感动态」做维度分离,克服情感平均化;
- 连续精细的强度控制:像物理旋钮一样,依据几何指标实现平滑连续的强度控制,全程不丢皮肤纹理。