面向说话人脸视频情绪编辑的跨模态情绪迁移 Cross-Modal Emotion Transfer for Emotion Editing in Talking Face Video
用语音驱动情绪,跨模态学习语义向量差生成未见过的情绪表情
前置知识
情绪语义向量 (Emotion Semantic Vector)
情绪语义向量定义为同一模态(语音或视觉)中两个不同情绪嵌入向量的差值,例如 $f^{i \to j}_a = f^j_a - f^i_a$,它捕捉了从一种情绪到另一种情绪的「方向」与「强度」变化,是与说话人身份、语种、头部姿态等无关的纯情绪变化量。
本文的核心思路是把情绪从模态特异的因素中剥离出来,这种差分表示天然具备身份无关、强度可控的特性,是 C-MET 能够在不同模态间迁移并泛化到未见情绪的关键。
对比学习 (Contrastive Learning)
对比学习通过拉近正样本对、推远负样本对来学习判别性表征。论文中使用 $\mathcal{L}_{v \to a}$ 和 $\mathcal{L}_{a \to v}$ 对称 InfoNCE 损失,配温度 $\tau$ 区分视觉 token $v_i$ 与音频 token $a_i$ 是否来自同一情绪样本。
音频和视觉情绪表征处于不同特征空间,没有对比损失就难以将两者对齐到共享潜空间;这是 C-MET 跨模态映射能否工作的基础。
解耦 (Disentanglement) 框架
EDTalk 等解耦框架将人脸分解为身份、唇动、姿态、表情四个独立的潜在变量,分别由不同模块预测后再融合生成图像。这种设计允许只替换「表情」通路而不影响其他属性,是 plug-and-play 集成的结构前提。
理解解耦范式才能明白为什么 C-MET 可以作为「表情编码器」的替代品被插入到现有模型中,并在不重新训练生成器的前提下提升情绪表现力。
emotion2vec+large 自监督语音编码器
emotion2vec+large 是在大规模语音语料上自监督预训练得到的情绪表征模型,可输出与说话人、语种解耦的情绪嵌入;论文中用它抽取音频情绪 token $a = T_a(E_a(A)) \in \mathbb{R}^d$。
选择这一预训练编码器是 C-MET 音频分支质量的保证;附录消融证明它比 Qwen2.5-Omni 在情绪准确率(55.91 vs 52.06)和推理速度上都更优。
研究动机
当前说话人脸视频的情绪编辑存在三种主流路径,但都各有硬伤:第一类是基于离散标签的方法(如 EAT),只能用 8 种基本情绪描述人脸,可扩展性差、无法表达「讽刺」「魅力」等细腻或扩展情绪;第二类是基于参考图像的方法(如 EDTalk、EAMM),需要高质量正面人脸参考,且为获取扩展情绪的数据成本极高,讽刺、蔑视这类样本几乎无法收集;第三类是基于情感语音的方法(如 FLOAT),然而说话人脸任务中用于驱动唇动的语音必须是中性的,而情绪语音把语义内容和情绪耦合在了一起——例如要让嘴型念中性台词而表情是「愤怒」,FLOAT 直接用情绪语音会同时改变嘴型与情绪,根本无法实现「情绪解耦」。这种「唇动-情绪」纠缠是音频驱动路线长期未解的痛点,也是 MEAD 数据集上 SOTA 情绪准确率长期停滞在 42% 左右的根本原因。
本文的目标是本文的目标是设计一个仅以「情感语音」作为情绪源、不需要任何参考图像或预定义标签的情绪编辑模块 C-MET,使其能够:(1) 在保持中性唇动和中性姿态的同时,把目标情绪注入到每一帧人脸表情中;(2) 在 MEAD 与 CREMA-D 两个基准上把情绪分类准确率(Accemo)相对现有 SOTA 提升 14% 以上;(3) 支持在训练中从未见过的扩展情绪(如 Sarcasm、Charisma、Empathy),让用户借助现代 TTS 即可生成任意新情绪的说话人脸。
与已有工作不同的是,论文的独特切入角度是「跨模态语义向量映射」:先把同一情绪的语音嵌入与视觉嵌入各自做差得到「情绪语义向量」,再用一个轻量跨模态 Transformer 把语音空间中的语义向量直接翻译为视觉空间中的语义向量,最后把该向量加回中性视觉嵌入并由冻结的视觉解码器还原图像。这一思路与 EmoKnob 在语音克隆中控制情绪的风格一致,但首次把它推广到视觉生成任务;同时,论文用对比学习 + 方向损失把「音频情绪表征」与「视觉情绪表征」对齐到同一潜空间,从根本上绕开了音频-视觉的模态鸿沟。
核心方法
C-MET 的整体思路是「先解耦、再跨模态回归、最后解耦空间相加」。具体来说,训练阶段在 MEAD 数据集上对同一说话人的中性视频 $V_i$ 和目标情绪视频 $V_j$ 抽帧,分别用 EDTalk 的表情编码器 $E_v$ 提取视觉嵌入 $f_v^{i}$、$f_v^{j}$,并计算视觉情绪语义向量 $f_v^{i \to j} = f_v^{j} - f_v^{i}$;同时随机采样多人多句语音,用 emotion2vec+large 编码得到音频嵌入 $f_a^{i}$、$f_a^{j}$,计算音频情绪语义向量 $f_a^{i \to j}$。然后把参考视觉 token、音频语义 token、输入视觉 token 一起送入 Transformer 编码器,让它学会「给定一段情感语音的差分表征,预测视觉空间里对应的差分表征」。推理时,零填充初始化参考 token,自回归地把预测出的视觉语义向量加到中性表情嵌入上,由冻结的 EDTalk 解码器还原出情绪化的视频。直觉上可以理解为:C-MET 是一个跨模态「情绪翻译器」,把音频中「从中性到愤怒」的变化方向,翻译成视觉中「从中性到愤怒」的变化方向。
C-MET 的核心创新在于把「情绪」显式建模为两个嵌入的差向量,并首次在语音空间和视觉空间之间学习这种差向量的映射关系。这与已有方法有本质区别:(1) 与 EDTalk 等图像驱动方法相比,C-MET 不需要任何参考图像,只用一段情感语音即可生成情绪;解耦的表情编码器被替换后,原本依赖大量情感视频数据的范式被打破。(2) 与 FLOAT 等音频驱动方法相比,C-MET 用自监督预训练的情绪编码器从语音中抽离出与说话人/语种解耦的纯情绪表征,避免了 FLOAT 因唇动-情绪纠缠而无法准确表达目标情绪的失败。(3) 与 EAT 等标签方法相比,C-MET 的情绪空间是连续的、可以自由插值,理论上支持任意扩展情绪。整个训练过程对生成器完全冻结,模型可作为 plug-and-play 模块即插即用到 PD-FGC、EDTalk 等解耦框架中。
方法步骤详情
方法分为三个步骤。第一步是「表征抽取与差分计算」:给定 T=5 帧的参考视频与输入视频,先用 EDTalk 的表情编码器 $E_v$ 配合 1D 卷积 tokenizer $T_v$ 抽取出视觉 token $v = \mathrm{Mean}(T_v(E_v(V_{1:T}))) \in \mathbb{R}^d$,对音频则用 emotion2vec+large 加投影层得到 $a = T_a(E_a(A)) \in \mathbb{R}^d$,随后计算语音侧差向量 $f_a^{i \to j} = f_a^j - f_a^i$、视觉侧差向量 $f_v^{i \to j} = f_v^j - f_v^i$。第二步是「跨模态对齐与回归」:三组 token——参考视觉语义 $z_r$、音频语义 $z_a$、输入视觉嵌入 $z_v$——各自加上可学习 type embedding 和正弦位置编码后拼接,送入多层 Transformer 编码器 $\mathrm{TE}$,输出经投影层 $P_v$ 得到预测的视觉语义向量 $\hat{f}_v^{i \to j}$;同时为对齐两模态空间,引入对称对比损失 $\mathcal{L}_{v \to a}$、$\mathcal{L}_{a \to v}$(公式 1-2),并加入方向损失 $\mathcal{L}_{dir} = 1 - \langle \hat{f}_v^{i \to j}, \hat{f}_v^{j \to i} \rangle / (\|\hat{f}_v^{i \to j}\| \|\hat{f}_v^{j \to i}\|)$ 强制正反两方向相反。第三步是「重构与端到端优化」:将预测的视觉语义向量加到中性视觉嵌入后送入冻结的 EDTalk 解码器重建情绪化视频,重构损失 $\mathcal{L}_{\mathrm{recon}} = \mathcal{L}_{i \to j} + \mathcal{L}_{j \to i}$ 是正反两个方向的 MSE 之和;总损失为 $\mathcal{L} = \mathcal{L}_{\mathrm{recon}} + \lambda_{\mathrm{cnt}} \mathcal{L}_{\mathrm{cnt}} + \lambda_{\mathrm{dir}} \mathcal{L}_{\mathrm{dir}}$,其中 $\lambda_{\mathrm{cnt}}=0.1$、$\lambda_{\mathrm{dir}}=0.05$。推理时将参考 token 零初始化,按 5 帧滑动窗口自回归地预测并更新语义向量。
技术新颖性
技术新颖性体现在三方面:第一,提出「差向量 + 跨模态回归」的统一表示,使情绪可被独立于模态、身份、语种地描述与翻译;第二,引入 type embedding + 对比损失 + 方向损失的三件套,把异构的语音/视觉 token 投影到同一潜空间,并显式约束正反方向相反,从而稳定训练并提升泛化;第三,工程上把整个情绪预测模块设计成 EDTalk 表情编码器的等价替代品,单卡 RTX 3090 即可训练,并兼容 PD-FGC 等其他解耦框架,为「情绪编辑模块」提供了一种轻量、即插即用的范式。
实验结果
在 MEAD 数据集上 C-MET 取得了 Accemo 55.91% 的情绪分类准确率,比之前的 SOTA(EDTalk 41.99%)提升了 13.92 个百分点,相对提升 33%;在 CREMA-D 上 C-MET 达到 43.47%,超过 EDTalk 的 29.69% 达 13.78 个百分点,相对提升 46%。从表 1 的全面指标看,C-MET 在 AITV(2.643s)、FID(90.804)、FVD(329.862)、Syncconf(7.9996)上都与 EDTalk(2.827s / 76.423 / 293.904 / 8.0529)可比,说明它在大幅提升情绪准确率的同时,视觉质量、时序一致性和唇同步仅有非常轻微的退化。表 2 的消融表明逐步加入对比损失和方向损失能把 Accemo 从 49.43% 提升到 53.46%,再提升到 55.91%,验证了三个损失项缺一不可。表 3 显示把 C-MET 插入到 PD-FGC 后,Accemo 从 33.36% 提升到 36.82%,插入到 EDTalk 后从 41.99% 提升到 55.91%,且 AITV 也从 2.827s 降到 2.643s,证明其作为 plug-and-play 模块的有效性。表 4 的用户研究显示在基础情绪上,C-MET 在情绪表达、视觉质量、唇同步三方面对 EAMM/EAT/EDTalk/FLOAT 的胜率分别为 77.8%/61.6%/42.4%/84.5%,在扩展情绪上的胜率则进一步提升到 91.0%/80.4%/51.2%/86.9%——尤其讽刺、魅力、共情这类训练中从未见过的情绪,C-MET 依然显著领先。表 8 的逐情绪准确率揭示了更有意思的细节:C-MET 在 Sad 上达到 88.64%,在 Happy 上达到 78.57%,在 Disgusted 上达到 72.05%,是所有方法中最均衡的;相比之下,EAT 几乎只能生成「闭眼 + 皱眉」的模板化表情,在 Sad 上仅 3.64%,暴露出标签方法的根本局限。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 情绪编辑(MEAD 数据集) | Accemo (情绪分类准确率) | 55.91 | EDTalk 41.99 / FLOAT 13.21 / EAT 41.56 / EAMM 18.81 | 相对 EDTalk 提升 +13.92 个百分点(+33%) |
| 情绪编辑(MEAD 数据集) | AITV (单视频平均推理时间,秒) | 2.643 | EDTalk 2.827 / FLOAT 1.434 / EAT 12.575 / EAMM 3.745 | 比 EDTalk 快 6.5%,比 EAT 快 79% |
| 情绪编辑(MEAD 数据集) | FID (生成图像质量) | 90.804 | EDTalk 76.423 / EAT 90.974 / FLOAT 92.799 | 仅比 EDTalk 高 18.8,差距肉眼难辨 |
| 情绪编辑(MEAD 数据集) | FVD (视频时序一致性) | 329.862 | EDTalk 293.904 / FLOAT 368.081 | 优于 FLOAT 38.2,劣于 EDTalk 36.0 |
| 情绪编辑(MEAD 数据集) | Syncconf (唇同步置信度) | 7.9996 | EDTalk 8.0529 / FLOAT 7.1632 | 与 EDTalk 仅差 0.05,与 FLOAT 拉开 0.84 |
| 情绪编辑(CREMA-D 数据集) | Accemo | 43.47 | EDTalk 29.69 / EAT 39.97 / FLOAT 29.11 / EAMM 19.15 | 相对 EDTalk 提升 +13.78 个百分点(+46%) |
| 消融(仅 $\mathcal{L}_{\mathrm{recon}}$) | Accemo on MEAD | 49.43 | 全损 55.91 | 加入对比与方向损失共提升 +6.48 |
| 扩展情绪用户研究 | 情绪表达胜率 vs FLOAT | 86.9% | FLOAT 11.8% / 平局 1.2% | 用户对 C-MET 表达更准确的投票率是 FLOAT 的 7.4 倍 |
局限与改进
作者在附录 E 中明确承认了三点局限:(1) 模型需要至少 3 对中性与情感语音样本才能稳定工作,虽然现在 TTS 已可合成,但仍是额外工程成本;(2) 当前基于 EDTalk 的表情编码器不支持多视角身份图像,对侧脸/俯仰角较大的视频编辑能力有限;(3) 数据集仅支持英语,因此跨语种情绪泛化尚未验证。从作者未明说但可观察的实验细节看,扩展情绪的评估只能依赖用户研究(因为没有 GT 视频),缺少客观指标;C-MET 在 MEAD 上的 FID/FVD/Syncconf 略逊于 EDTalk,说明表情越强烈时生成器的保真度会有轻微折损;此外,论文中扩展情绪用了 Gemini 2.5 Flash TTS 来合成语音,意味着 C-MET 的「未见情绪」能力高度依赖 TTS 系统的表达力上限,如果 TTS 合成不出「charisma」这种抽象情绪,模型也无能为力。
独立分析的弱点
独立分析论文可发现以下可改进点:(1) 跨模态对齐仍依赖「同批内对比」的训练技巧,负样本仅来自当前 batch(公式 1-2 中的 $j \neq i$),在 MEAD 单数据集上有效,但若扩展到大规模训练可能需要队列/MoCo 风格的大字典;改进方向是引入梯度检查点 + 大字典对比,进一步提升负样本多样性。(2) 方向损失 $\mathcal{L}_{dir}$ 只约束正反两个语义向量的余弦相似度为 -1(公式隐含),但实际中同种情绪的不同强度应有不同模长,目前模型对情绪强度控制仍是隐式的;改进方向是额外预测语义向量的模长作为情绪强度系数,让用户可以显式控制「轻度愤怒」vs「暴怒」。(3) C-MET 依赖 EDTalk 冻结的解码器,所以继承了解耦框架的归纳偏置——例如对未在 MEAD 训练集出现过的极端头部姿态或光照条件容易生成失败帧;改进方向是引入参考图像的姿态编码分支,让 C-MET 在跨姿态/跨光照下更鲁棒。(4) 论文没有给出训练集规模、超参敏感度分析、收敛曲线等可复现细节,附录仅描述了语音采样策略而没有给出随机种子,对第三方复现不友好。
未来方向
作者明确提出未来将扩展到多视角身份图像和跨语种情绪;基于本文成果可进一步延伸的方向包括:(1) 把语义向量差分思路推广到「情绪-语速-风格」联合控制,让单一语音同时驱动嘴型节奏和面部微表情,从而实现「同一个音节下更细腻的表情过渡」;(2) 与 LLM 结合做「文字描述→情感语音→情绪化人脸」的端到端可控化身生成,特别适合虚拟数字人和情感陪护场景;(3) 探索 3D 隐式表达(NeRF/3D Gaussian)下的语义向量差分,把情绪控制从 2D 平面拓展到 3D 头部,让用户可以从任意视角观察情绪;(4) 与 MELD、IEMOCAP 等多说话人对话数据集结合,研究对话轮次间的情绪传染建模,把单人情绪编辑升级为多角色情绪交互。
复现评估
作者在项目页 https://chanhyeok-choi.github.io/C-MET/ 承诺开源代码、checkpoint 和 demo,并提供了 MEAD 和 CREMA-D 两个公开数据集的训练流程,因此数据获取门槛低;训练只需要单张 RTX 3090(24GB)即可完成,模型主体是若干层 Transformer 编码器,参数规模在百万级;唯一相对复杂的环节是「10 段中性 + 10 段情感语音」的采样-平均策略,需要熟悉 emotion2vec+large 的输入预处理;扩展情绪的复现需要调用 Gemini 2.5 Flash TTS API,依赖 Google 账号和一定的费用预算。综合来看,复现难度中等,主要工作量在环境配置与超参微调上,论文的消融表格已把每个损失项的贡献拆得比较清楚,按论文的设置训练应该能复现表 1 的数量级。
论文图表
把中性视频与来自 MELD 数据集第 5 段对话第 8 句话的「讽刺」情绪语音作为输入,自上而下展示 C-MET(本文)、EAT(标签)、FLOAT(音频)、EDTalk(图像)四种方法的结果:本文方法生成的嘴部左右上扬更明显,呈现出更清晰的「讽刺」表情,EDTalk 的嘴部动作偏中性,FLOAT 因唇动-情绪纠缠导致表情模糊,EAT 则只能生成模板化的闭眼表情。
这是论文最关键的一张定性对比图,直接展示了 C-MET 在扩展情绪(讽刺)下对三类基线的优势,对理解「为什么需要跨模态情绪迁移」至关重要。