主页

Geometry-guided Emotion Modulation for Controllable and Photorealistic Emotional Talking Face Generation

(第一作者 Accepted by ACMMM 2026 [CCF-A])
Geometry-guided Emotion Modulation for Controllable and Photorealistic Emotional Talking Face Generation

就能生成唇形对齐、且携带精准音频情绪的说话人视频。它首创了几何先验引导的隐式特征调制模块,在不损失视觉高频细节的前提下,实现了精准、连续的情感强度控制,且不对视频质量和唇音同步造成损失。

1. 全景速览

一句话总结:GemTalk 让「隐式特征决定 什么情感(语义方向)」,让「显式几何先验决定 多强情感(幅值)」,首次在扩散模型中做到连续、精确的情感强度控制。

核心模块

模块全称输入 → 输出
Backbone情感无关唇同步骨架音频 + 参考帧 → 基础视频
V-AEP视觉引导音频情感投影音频 → 隐式唇特征 flaf_l^a + 表情特征 feaf_e^a
D-GPG扩散式几何先验生成器音频 → 45 维 blendshape bgeob_{geo}
LECM唇-表情协同模块唇特征 + 表情特征 → 协同表情特征
GEM(核心)几何引导情感调制Fgeo+(fla,fea)F_{geo} + (f_l^a, f_e^a) → 幅值重校准特征

数据流:

参考人脸 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(情感条件 → 说话视频)

GemTalk 整体框架


视频 1: GemTalk 在面部情感连续可控上的效果(无需任何情感强度标签)

2. 动机与核心洞察

2.1 两类现有方法的困境

音频驱动情绪说话人脸生成,长期卡在一个两难里:

方法类型代表优势致命缺陷
隐式表示Hallo、Sonic、DICE-Talk语义丰富、视觉质量高特征幅值由噪声/初始化随机决定,与肌肉激活无关 → 情感「平均化」,无法控制强度
显式几何SadTalker、EAT、EDTalk控制精准依赖 warping/渲染 → 像素扭曲、高频纹理丢失、身份漂移

2.2 核心洞察:注意力内积的几何分解

在扩散模型的 Cross-Attention 里,注意力分数就是 Query 与 Key 的内积:

Score=QK=QKcosθ\text{Score} = Q \cdot K = \|Q\| \cdot \|K\| \cdot \cos\theta

拆成两个正交分量:

  • 🔹 方向分量 cosθ\cos\theta → 决定「哪种情感」(隐式方法擅长捕捉);
  • 🔹 幅值分量 K\|K\| → 决定「情感有多强」(隐式方法完全失控,即 “radial invariance” 问题)。

GemTalk 的思路:保留隐式特征的语义方向 cosθ\cos\theta 不变,用显式几何先验(blendshape 系数)动态重校准幅值 K\|K\|,让 Cross-Attention 同时获得「什么情感」和「多强情感」两方面信息。

2.3 四个研究问题

  1. 如何在不牺牲视觉保真度的前提下,实现连续、精确的情感强度控制
  2. 如何弥合音频与视觉的模态鸿沟,提取与视觉生成目标一致的情感表示
  3. 如何对唇部与表情做协同建模,保证面部整体一致?
  4. 如何防止参考帧静态情感的泄漏污染

3. 数据与处理

3.1 三个数据集

数据集用途内容情感标签
MEAD主训练集(情感)大规模多情感音视频8 类
HDTF骨架训练集(非情感)高清说话人脸
RAVDESS评测集标准化情感音视频8 类

3.2 关键维度

参数
视频帧率 / 人脸裁剪25 fps / 256×256
Wav2Vec 输出Ta×768T_a \times 768
视觉情感特征 dd512
Blendshape52 → 45(丢弃 7 个低激活维度)
音频上下文 token mm32
帧数 NN / batch BB16 / 见下

3.3 预处理

  1. 视频统一为 25 fps,面部中心裁剪 256×256;
  2. 音频送入冻结的 Wav2Vec → Ta×768T_a\times768 帧级特征;
  3. 用 ARKit 兼容工具提取 52 维 blendshape,丢弃 7 个激活率 <0.05 的维度 → 45 维;
  4. 8 类离散标签用于对比学习正/负样本分组。

4. 方法:四个阶段

4.1 阶段零:情感无关唇同步骨架

设计哲学:先用非情感数据(HDTF)建立稳定唇同步基础,再注入情感模块,避免情感与口型特征纠缠。

组件来源:Reference Net(AnimateAnyone 的并行 2D UNet)、Motion-frame 策略(CyberHost / Diffused-Heads,前 2 帧作运动上下文)、时序模块(AnimateDiff 的帧间注意力)、以及本文设计的 Lip Attention

Lip Attention 在标准注意力里加掩码 MM(口型区域外设 -\infty),强制音频只作用于嘴部:

Attention(Q,K,V)=Softmax ⁣(QKd+M)V\text{Attention}(Q,K,V) = \text{Softmax}\!\left(\frac{QK^\top}{\sqrt{d}} + M\right)V

4.2 阶段一:V-AEP — 视觉引导音频情感投影

动机:音频与视觉存在模态鸿沟——同一段音频对应的表情因人而异,简单对齐会过拟合特定身份。

(1) 视觉对比学习

用 ResEmoteNet(带 SE 注意力的多尺度 CNN)作视觉编码器,输入 XRB×N×3×256×256X \in \mathbb{R}^{B\times N\times 3\times256\times256},仅借用其特征提取能力(不做分类)。配合激进数据增强(ColorJitter、RandomGrayscale、GaussianBlur 等),迫使网络依赖肌肉运动模式而非纹理来区分情感。

4 个 Projector 把特征投影到共享情感空间:

Projector输入输出
Visual-lipResEmoteNet 特征 × 唇部 maskfLvRB×N×df_L^v \in \mathbb{R}^{B\times N\times d}
Visual-expResEmoteNet 特征 × 表情 maskfEvRB×N×df_E^v \in \mathbb{R}^{B\times N\times d}
Audio-lipWav2Vec 多尺度特征flaRB×N×m×df_l^a \in \mathbb{R}^{B\times N\times m\times d}
Audio-expWav2Vec 多尺度特征feaRB×N×m×df_e^a \in \mathbb{R}^{B\times N\times m\times d}

其中 d=512d=512m=32m=32(音频上下文 token),mask 用二值空间掩码做区域隔离。

LECM(唇-表情协同模块):插在视觉 projector 输出后、对比学习前。先做 Cross-Attention——表情特征 fEvf_E^v 作 Query、唇部特征 fLvf_L^v 作 Key/Value,提取唇动上下文 ClC_l;再用 Sigmoid 门控残差注入:

fev=fEv+Sigmoid(αL)Clf_e^v = f_E^v + \text{Sigmoid}(\alpha_L) \cdot C_l

其中 αL\alpha_L 初始化为极小值 → 训练初期门近乎关闭,随训练逐步打开,唇-表情协同信息渐进注入。

视觉对比学习(SupCon + Hard Negative Mining,以表情分支为例):

Lexpv=i1P(i)pP(i)logexp(fev(i)fev(p)/τ)kS(i)exp(fev(i)fev(k)/τ)\mathcal{L}_{\text{exp}}^{\text{v}} = \sum_{i} \frac{-1}{|P(i)|} \sum_{p \in P(i)} \log \frac{\exp(f_e^v(i)\cdot f_e^v(p)/\tau)}{\sum_{k \in \mathcal{S}(i)} \exp(f_e^v(i)\cdot f_e^v(k)/\tau)}

P(i)P(i) 为同情感正样本,Nhard(i)\mathcal{N}_{hard}(i) 为最相似的 top-16 硬负样本,S(i)=P(i)Nhard(i)\mathcal{S}(i)=P(i)\cup\mathcal{N}_{hard}(i)。相似度用点积(而非 cosine),使幅值参与梯度,与后续 GEM 重校准幅值呼应。

总视觉损失:

Lvisual=λ1Lexpv+λ2Llipv,λ1=0.6, λ2=0.4\mathcal{L}_{\text{visual}} = \lambda_1 \mathcal{L}_{\text{exp}}^{\text{v}} + \lambda_2 \mathcal{L}_{\text{lip}}^{\text{v}}, \quad \lambda_1=0.6,\ \lambda_2=0.4

(2) 随机多目标音频投影

把音频特征对齐到视觉情感空间,核心是随机多目标对齐——不固定对齐到单一视觉目标,而是从同情感类别 yy 随机采样最多 k=4k=4 个目标帧:

Lalign=EvV(y)[1cos(f^ea,fvtarget)]\mathcal{L}_{\text{align}} = \mathbb{E}_{v \sim V(y)} \left[ 1 - \cos(\hat{f}_e^a, f_v^{\text{target}}) \right]

这避免过拟合单一身份的表情习惯,提升泛化性。

4.3 阶段二:D-GPG — 扩散式几何先验生成器

Blendshape 是参数化的面部表情表示(ARKit 标准 52 个系数,每个 [0,1][0,1] 表示某肌肉激活强度)。GemTalk 丢弃 7 个低激活维度,用 45 维。

D-GPG 是音频 + 身份条件的扩散模型,在 45 维 blendshape 空间去噪:

  • 输入:音频特征(Ta×768T_a\times768)+ 参考帧 blendshape(身份条件 1×451\times45);
  • 输出:bgeoR1×45b_{geo} \in \mathbb{R}^{1\times45}

训练损失(标准去噪扩散):

LD-GPG=Et,x0,ϵ[ϵϵθ(xt,t,caudio,cid)2]\mathcal{L}_{\text{D-GPG}} = \mathbb{E}_{t, x_0, \epsilon} \left[ \| \epsilon - \epsilon_\theta(x_t, t, c_{audio}, c_{id}) \|^2 \right]

45 个标量如何变成特征:经可学习投影层映射:

Fgeo=bgeoWproj,FgeoRB×N×K×dF_{geo} = b_{geo} \cdot W_{proj}, \quad F_{geo} \in \mathbb{R}^{B\times N\times K\times d}

其中 K=45K=45d=512d=512。物理含义:每个 blendshape 系数映射为一个 512 维 token,45 个 token 组成一组「结构指令集」。

4.4 阶段三:GEM — 几何引导情感调制 ★核心★

GEM 把显式几何先验 FgeoF_{geo} 嵌入隐式情感特征 (fla,fea)(f_l^a, f_e^a),通过 GCA → GAA 两阶段实现「保留语义方向、重校准幅值」。下面以表情分支为例,唇部分走完全相同的流程。

输入

输入维度
隐式音频-表情特征 feaf_e^aRB×N×m×d\mathbb{R}^{B\times N\times m\times d}
几何先验 token FgeoF_{geo}RB×N×K×d\mathbb{R}^{B\times N\times K\times d}

GCA — 几何感知上下文聚合

步骤 ①:L2 归一化(球面语义投影)

f^ea=feafea2+ϵ\hat{f}_e^a = \frac{f_e^a}{\|f_e^a\|_2 + \epsilon}

沿特征维度 dd 做 L2 归一化,投影到单位超球面(f^ea=1\|\hat{f}_e^a\|=1)。这一步剥离不可控的原始幅值,只保留纯语义方向 cosθ\cos\theta,后面再用几何先验注入正确幅值。

步骤 ②:几何查询 Cross-Attention

用归一化后的情感特征 f^ea\hat{f}_e^aQuery,几何先验 FgeoF_{geo}Key/Value

Q=f^eaWQ,K=FgeoWK,V=FgeoWVQ = \hat{f}_e^a W_Q, \quad K = F_{geo} W_K, \quad V = F_{geo} W_V
Ce=Softmax ⁣(QKdk)VC_e = \text{Softmax}\!\left(\frac{QK^\top}{\sqrt{d_k}}\right) V
  • Query:f^eaWQRB×N×m×d\hat{f}_e^a W_Q \to \mathbb{R}^{B\times N\times m\times d}
  • Key/Value:FgeoWK/VRB×N×K×dF_{geo} W_{K/V} \to \mathbb{R}^{B\times N\times K\times d}
  • 输出:CeRB×N×K×dC_e \in \mathbb{R}^{B\times N\times K\times d}

物理含义:语义特征「主动搜索并聚合」与之匹配的肌肉激活模式(下巴张开幅度、眉毛紧张度等),得到编码精确结构指令的几何感知上下文。

GAA — 几何仿射适配器

步骤 ③:投影生成 scale 和 shift

γ,β=Proj(Ce)\gamma, \beta = \text{Proj}(C_e)
  • 输入 CeRB×N×K×dC_e \in \mathbb{R}^{B\times N\times K\times d} → 输出 γ,βRB×N×m×d\gamma, \beta \in \mathbb{R}^{B\times N\times m\times d}

步骤 ④:仿射调制(核心)

F^ea=(1+γ)f^ea+β\hat{F}_e^a = (1 + \gamma) \odot \hat{f}_e^a + \beta

为什么能控制幅值? f^ea\hat{f}_e^a 已归一化(幅值=1),所以 F^ea\hat{F}_e^a方向仍由 f^ea\hat{f}_e^a 决定(语义不变),而幅值 F^ea\|\hat{F}_e^a\|γ\gamma 控制——γ\gamma 来自几何先验 bgeob_{geo},因此幅值被绑定到物理肌肉激活强度上。这就是「用显式几何重校准隐式幅值」的本质。

关键设计:GAA 最终投影层初始化为零 → 训练开始时 γ=0,β=0\gamma=0,\beta=0,即 F^ea=f^ea\hat{F}_e^a=\hat{f}_e^a(恒等映射),保护 V-AEP 预训练好的语义流形不被破坏。

步骤 ⑤:方向一致性损失 Ldcl\mathcal{L}_{dcl}

Ldcl=1cos(f^ea,F^ea)\mathcal{L}_{dcl} = 1 - \cos(\hat{f}_e^a, \hat{F}_e^a)

强制调制前后特征方向一致,确保结构强度信息只编码进幅值,不旋转特征向量导致语义漂移。消融显示去掉 Ldcl\mathcal{L}_{dcl} 后情感准确率从 59.26% 暴跌至 32.85%。

输出:注入 Denoising U-Net

ote=Softmax ⁣((ztWQ)(F^eaWK)d)(F^eaWV)o_t^e = \text{Softmax}\!\left(\frac{(z_t W_Q)(\hat{F}_e^a W_K)^\top}{\sqrt{d}}\right)(\hat{F}_e^a W_V)

唇部分 otlo_t^l 走相同流程,两个条件特征逐元素相加,经投影后残差注入 U-Net 潜变量 ztz_t

完整维度链(表情分支)

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强化音频→唇型映射
三:情感注入MEADV-AEP + D-GPG + GEM

Conflict-aware 训练:以概率 pconf=0.9p_{conf}=0.9 故意构造参考帧与音频情感不匹配的训练对,迫使模型忽略参考帧静态情感、只响应音频情感信号。

GEM 联合损失

LGEM=Lrecon+λ1LSupConexp+λ2LSupConlip+λ3Lalign+λ4LD-GPG+λ5Ldcl\mathcal{L}_{\text{GEM}} = \mathcal{L}_{\text{recon}} + \lambda_1 \mathcal{L}_{\text{SupCon}}^{\text{exp}} + \lambda_2 \mathcal{L}_{\text{SupCon}}^{\text{lip}} + \lambda_3 \mathcal{L}_{\text{align}} + \lambda_4 \mathcal{L}_{\text{D-GPG}} + \lambda_5 \mathcal{L}_{dcl}

其中 λ1=0.6\lambda_1=0.6λ2=0.4\lambda_2=0.4。训练 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,兼顾情感表现力与视频质量。

消融关键发现

  • Ldcl\mathcal{L}_{dcl} 至关重要:去掉后 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 用一条「从特征到几何、再反哺特征」的回调链路,解决了情感说话人脸生成的长期两难:

  • 统一混合架构:首次无缝结合显式控制精度与隐式生成保真度;
  • 彻底解耦唇型与微表情:把「张嘴说话」和「情感动态」做维度分离,克服情感平均化;
  • 连续精细的强度控制:像物理旋钮一样,依据几何指标实现平滑连续的强度控制,全程不丢皮肤纹理。