SeMoCo: A Semantic-First Motion Codec for Motion Language Modeling
Organizations: Jilin University · Frontier Robotics · Harbin Institute of Technology, Shenzhen
Abstract
Discrete motion representations have substantially advanced autoregressive text-to-motion generation. However, most motion tokenizers are optimized for reconstruction and do not explicitly allocate capacity according to semantic role. Action-level meaning and fine-grained kinematic detail must therefore be encoded through the same reconstruction-driven hierarchy. We introduce SeMoCo, a semantic-first motion codec, together with a dual-axis motion generator for language-conditioned motion generation. Each motion token contains one semantic token and a residual sequence of kinematic tokens. The generator models semantic progression across time and autoregressively refines the residual entries. We also construct -MotionVerse, a large-scale, multi-source human-motion dataset unified under the SOMA representation. Across the reported comparisons, SeMoCo achieves the best reconstruction accuracy among the compared codecs, while strong text-to-motion results demonstrate the effectiveness of its motion tokens for downstream generation.
Figures & tables
| Component | Ours-Lite | Ours-Base | Interpretation |
|---|---|---|---|
| Trainable parameters | 188.0M | 391.1M | Frozen text encoder excluded |
| Temporal layers | 12 | 24 | Base doubles temporal depth |
| Temporal hidden width | 768 | 1,024 | Base uses a wider temporal state |
| Temporal query/KV heads | 6 / 3 | 8 / 4 | 128-D heads and 2:1 GQA |
| Temporal FFN width | 2,048 | 2,730 | Scaled with backbone width |
| Code-predictor width/layers | 1,024 / 5 | 1,024 / 5 | Fixed across sizes |
| Setting | Value | Setting | Value |
|---|---|---|---|
| Optimizer | AdamW | Learning rate | |
| Weight decay | 0.01 | Adam betas | |
| LR schedule | 4,000-step warmup + cosine | Gradient clipping | 1.0 |
| Precision | bf16 | Batch size | 32 per process |
| Gradient accumulation | None | Optimization steps | 100,000 |
| Data-parallel processes | 1 (Lite) / 2 (Base) | Global batch size | 32 (Lite) / 64 (Base) |