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 包含三个核心阶段:
- Base Motion Blocks \(f_r(\cdot)\):生成节奏对齐的基础动作码 \(q^b\)
- Sparse Motion Blocks \(f_s(\cdot)\):生成帧级语义码 \(q^s\) 和语义分数 \(\psi\)
- Adaptive Fusion \(\mathcal{E}\):基于 \(\psi\) 自适应融合 \(q^b\) 和 \(q^s\) 得到最终码 \(q^m\)
公式化表示:
RVQ-VAE 预训练¶
将身体分为四个部分——面部、上身、手部、下身——各自配备独立的 RVQ-VAE,防止特征纠缠并保留各部分的独特动态特性。
基础动作生成¶
节奏语音编码:提取两种节奏特征——振幅/短时能量推导的节拍特征 \(\gamma_b\) 和 HuBERT 特征 \(\gamma_h\)。结合种子姿态 \(\tilde{m}\) 和说话人身份 \(id\)。
Coarse2Fine 交叉注意力模块:分层细化基础动作,遵循从面部→手部→上身→下身的级联传导顺序。嘴唇动作与语音音节紧密对应,因此用面部引导手部;手部自然摆动影响上身,上身再驱动下身。
节奏一致性学习:使用 InfoNCE 损失实现动作-节奏对齐:
分为局部帧级 \(\mathcal{L}_{\text{Rhy}}^{(L)}\) 和全局序列级 \(\mathcal{L}_{\text{Rhy}}^{(G)}\) 两部分,前者确保帧级精确对齐,后者维持序列级节奏流畅性。
语义感知稀疏动作生成¶
语义语音编码:融合三种语义信息——帧级文本嵌入 \(\phi_l\)、CLIP 句子级特征 \(\phi_g\)、emotion2vec 情感特征 \(\phi_e\)。
语义门控(Sem-gate):核心创新。利用多模态输入计算帧级语义分数 \(\psi\),通过两种加权策略增强语义帧:
- 特征加权 \(\mathcal{W}_f\):用 \(\psi\) 缩放语义特征 \(f_t\),激活语义显著帧
- 损失加权 \(\mathcal{W}_l\):用分类损失 \(\mathcal{L}_{cls}^G\) 监督 \(\psi\),基于语义标注增强关键帧
稀疏动作码通过 alpha-blending 混合:
语义分数融合¶
对每帧 \(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 |
关键发现¶
- 分离建模的有效性:与 SemTalk*(仅 Base Motion)对比,完整 SemTalk 生成了更具表现力的语义手势(如说 "my opinion" 时举手+伸食指)
- Sem-gate 优于 SAG:LivelySpeaker 的 SAG 仅依赖文本-动作对齐且缺乏情感信息,容易过拟合文本;Sem-gate 通过 GT 监督+双重加权更准确
- 同文本不同情感:SemTalk 为相同文本但不同语音情感生成不同手势,说明模型不会过拟合文本
- 用户研究: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 |