跳转至

SemTalk: Holistic Co-speech Motion Generation with Frame-level Semantic Emphasis

  • 会议: ICCV 2025
  • arXiv: 2412.16563
  • 代码: https://xiangyue-zhang.github.io/SemTalk
  • 领域: 其他
  • 关键词: 共语动作生成, 语义强调, 节奏一致性, RVQ-VAE, 语义门控

一句话总结

SemTalk 将共语动作分解为节奏相关的基础动作和语义感知的稀疏动作,通过学得的语义分数自适应融合两者,实现帧级语义强调的高质量全身共语动作生成。

研究背景与动机

全身共语动作生成(holistic co-speech motion generation)需要合成与语音对齐的手势、面部表情和体态动作。核心挑战在于平衡常见的节奏性动作和稀缺但重要的语义性动作。

作者通过分析 BEAT2 数据集的语义标注发现一个关键观察:语义相关的动作在时间上是稀疏的——大多数帧的手势是节奏驱动的,只有少数关键帧包含传达特定语义的手势。现有方法面临的问题:

节奏特征主导:大多数方法(TalkSHOW、EMAGE 等)依赖节奏相关的音频特征,语义性动作被节奏信号淹没

语义引导缺乏帧级精度:LivelySpeaker 等方法使用 CLIP 全局语义控制,无法在帧级别精确强调关键语义时刻

节奏与语义耦合建模:将两种本质不同的动作模式耦合在一起建模,难以同时优化

这启发了 SemTalk 的核心设计:分别建模,自适应融合

方法详解

整体框架

SemTalk 包含三个核心阶段:

  1. Base Motion Blocks \(f_r(\cdot)\):生成节奏对齐的基础动作码 \(q^b\)
  2. Sparse Motion Blocks \(f_s(\cdot)\):生成帧级语义码 \(q^s\) 和语义分数 \(\psi\)
  3. Adaptive Fusion \(\mathcal{E}\):基于 \(\psi\) 自适应融合 \(q^b\)\(q^s\) 得到最终码 \(q^m\)

公式化表示:

\[q^m = \mathcal{E}(q^b, q^s; \psi)\]

RVQ-VAE 预训练

将身体分为四个部分——面部、上身、手部、下身——各自配备独立的 RVQ-VAE,防止特征纠缠并保留各部分的独特动态特性。

基础动作生成

节奏语音编码:提取两种节奏特征——振幅/短时能量推导的节拍特征 \(\gamma_b\) 和 HuBERT 特征 \(\gamma_h\)。结合种子姿态 \(\tilde{m}\) 和说话人身份 \(id\)

Coarse2Fine 交叉注意力模块:分层细化基础动作,遵循从面部→手部→上身→下身的级联传导顺序。嘴唇动作与语音音节紧密对应,因此用面部引导手部;手部自然摆动影响上身,上身再驱动下身。

节奏一致性学习:使用 InfoNCE 损失实现动作-节奏对齐:

\[\mathcal{L}_{\text{Rhy}} = -\frac{1}{N}\sum_{i=1}^{N}\log\frac{\exp(\text{sim}(h(f_i), \gamma_h^i) / \tau)}{\sum_{j=1}^{N}\exp(\text{sim}(h(f_i), \gamma_h^j) / \tau)}\]

分为局部帧级 \(\mathcal{L}_{\text{Rhy}}^{(L)}\) 和全局序列级 \(\mathcal{L}_{\text{Rhy}}^{(G)}\) 两部分,前者确保帧级精确对齐,后者维持序列级节奏流畅性。

语义感知稀疏动作生成

语义语音编码:融合三种语义信息——帧级文本嵌入 \(\phi_l\)、CLIP 句子级特征 \(\phi_g\)、emotion2vec 情感特征 \(\phi_e\)

语义门控(Sem-gate):核心创新。利用多模态输入计算帧级语义分数 \(\psi\),通过两种加权策略增强语义帧:

  1. 特征加权 \(\mathcal{W}_f\):用 \(\psi\) 缩放语义特征 \(f_t\),激活语义显著帧
  2. 损失加权 \(\mathcal{W}_l\):用分类损失 \(\mathcal{L}_{cls}^G\) 监督 \(\psi\),基于语义标注增强关键帧

稀疏动作码通过 alpha-blending 混合:

\[q^s = MLP(\psi f_s + (1-\psi) f_b)\]

语义分数融合

对每帧 \(i\),若语义分数 \(\psi_i > \beta\)(阈值),则用稀疏语义码 \(q_i^s\) 替换基础动作码 \(q_i^r\),否则保留基础码。RVQ-VAE 解码器的卷积结构自然确保帧间平滑过渡。

实验

主实验结果(BEAT2 数据集)

方法 FGD ↓ BC ↑ DIV ↑ MSE ↓ LVD ↓
TalkSHOW 6.209 6.947 13.47 7.791 7.771
EMAGE 5.512 7.724 13.06 7.680 7.556
DiffSHEG 8.986 7.142 11.91 7.665 8.673
SemTalk 4.278 7.770 12.91 6.153 6.938

SemTalk 在 FGD(降低 22.4%)、MSE(降低 19.9%)和 LVD(降低 8.2%)上均取得最优。

Sem-gate 消融实验

配置 FGD ↓ BC ↑ DIV ↑ Acc(%) ↑
w/o Sem-gate 4.893 7.702 12.42 -
SAG (LivelySpeaker) 4.618 7.682 12.45 -
Random \(\psi\) 4.634 7.700 12.44 50.07
Sem-gate (w/o \(\mathcal{W}\)) 4.495 7.633 12.26 72.32
Sem-gate (w/ \(\mathcal{W}_f\)) 4.408 7.679 12.28 78.52
Sem-gate (w/ \(\mathcal{W}_l\)) 4.366 7.772 11.94 77.83
Sem-gate (Full) 4.278 7.770 12.91 82.76

关键发现

  1. 分离建模的有效性:与 SemTalk*(仅 Base Motion)对比,完整 SemTalk 生成了更具表现力的语义手势(如说 "my opinion" 时举手+伸食指)
  2. Sem-gate 优于 SAG:LivelySpeaker 的 SAG 仅依赖文本-动作对齐且缺乏情感信息,容易过拟合文本;Sem-gate 通过 GT 监督+双重加权更准确
  3. 同文本不同情感:SemTalk 为相同文本但不同语音情感生成不同手势,说明模型不会过拟合文本
  4. 用户研究:25名参与者,SemTalk 在真实度、语义一致性、动作-语音同步和多样性四个维度均获最高偏好

亮点与洞察

  • "基础动作+稀疏动作"的分解思想优雅且符合认知直觉——人在说话时确实只在少数关键时刻做出有语义的手势
  • Coarse2Fine 交叉注意力的级联顺序(面部→手→上身→下身)基于生理学常识,设计合理
  • 学得的语义分数 \(\psi\) 与关键词的分布高度一致(如 "comes"、"fantastic"、"captured" 处出现峰值),验证了模型的语义理解能力
  • 框架通用性强:在没有语义标注的 SHOW 数据集上,可通过 BEAT2 预训练的 Sem-gate 迁移生成语义分数

局限性

  • 语义分数的质量依赖 BEAT2 数据集的帧级语义标注,标注可能存在主观性
  • \(\beta\) 阈值为经验设定(0.5),不同数据分布可能需要调整
  • 下半身动作主要由上半身级联驱动,缺乏独立的下半身建模
  • 计算量较大:分离的 RVQ-VAE + Base/Sparse 双路生成 + 融合

相关工作

  • 共语手势生成: TalkSHOW(VQ-VAE 交叉条件化)、EMAGE(多编码器)、DiffSHEG(扩散模型)
  • 语义增强: LivelySpeaker(CLIP+扩散)、HA2G(层次网络)、DisCo(内容-节奏解耦)
  • 全身动作生成: ProbTalk(PQ-VAE)、TM2D(舞蹈动作分解为音乐相关和音乐无关)

评分

维度 分数
创新性 ⭐⭐⭐⭐⭐
有效性 ⭐⭐⭐⭐⭐
清晰度 ⭐⭐⭐⭐
实用价值 ⭐⭐⭐⭐
总评 8.5/10