ReactMotion: Generating Reactive Listener Motions from Speaker Utterance
Organizations: King Abdullah University of Science and Technology · Computer Vision Institute, School of Artificial Intelligence, Shenzhen University · School of Computer Science, University of Nottingham Ningbo China · School of Computer Science, University of Nottingham, United Kingdom ·
Abstract
In this paper, we introduce a new task, Reactive Listener Motion Generation from Speaker Utterance, which aims to generate naturalistic listener body motions that appropriately respond to a speaker's utterance. However, modeling such nonverbal listener behaviors remains underexplored and challenging due to the inherently non-deterministic nature of human reactions. To facilitate this task, we present ReactMotionNet, a large-scale dataset that pairs speaker utterances with multiple candidate listener motions annotated with varying degrees of appropriateness. This dataset design explicitly captures the one-to-many nature of listener behavior and provides supervision beyond a single ground-truth motion. Building on this dataset design, we develop preference-oriented evaluation protocols tailored to evaluate reactive appropriateness, where conventional motion metrics focusing on input-motion alignment ignore. We further propose ReactMotion, a unified generative framework that jointly models text, audio, emotion, and motion, and is trained with preference-based objectives to encourage both appropriate and diverse listener responses. Extensive experiments show that ReactMotion outperforms retrieval baselines and cascaded LLM-based pipelines, generating more natural, diverse, and appropriate listener motions.
Figures & tables
| Split | #Pairs | Speaker Utterance | Listener Reaction | #Motion/Utter. | Labels (y) | ||
| #Trans. | #Audio | #Emo. | #Motion | (avg.) | (# /# /# ) | ||
| Train | 137,879 | 6,631 | 6,631 | 46 | 1,822 | 20.79 | 7,527 / 30,862 / 99,490 |
| Val | 6,790 | 841 | 841 | 40 | 195 | 8.07 | 903 / 1,682 / 4,205 |
| Test | 6,659 | 826 | 826 | 39 | 197 | 8.06 | 877 / 1,652 / 4,130 |
| All | 151,328 | 8,298 | 8,298 | 47 | 2,029 | 18.24 | 9,307 / 34,196 / 107,825 |
| Mode | Win(G N) | Win(G S) | Win(S N) | MRR(G) | nDCG@3 | nDCG@5 | nDCG@10 |
| T | 0.992 | 0.873 | 0.983 | 0.829 | 0.864 | 0.878 | 0.932 |
| A | 0.992 | 0.872 | 0.983 | 0.832 | 0.866 | 0.878 | 0.933 |
| T+E | 0.993 | 0.876 | 0.982 | 0.826 | 0.857 | 0.876 | 0.929 |
| A+E | 0.992 | 0.874 | 0.983 | 0.831 | 0.865 | 0.878 | 0.933 |
| T+A | 0.993 | 0.879 | 0.982 | 0.820 | 0.855 | 0.875 | 0.928 |
| T+A+E | 0.993 | 0.878 | 0.982 | 0.828 | 0.859 | 0.878 | 0.930 |
| Method | Input Mod. | Win(g N) | Win(g S) | Win(g G) | Gen@3 | FID | Diversity |
| GT | - | - | - | - | - | 0.278 | 6.187 |
| Random Selection | - | 0.265 | 0.122 | 0.006 | 0.099 | 42.363 | 9.880 |
| Retrieval | 0.392 | 0.252 | 0.130 | 0.206 | 7.429 | 8.207 | |
| LLM T2M-GPT | 0.138 | 0.038 | 0.016 | 0.199 | 49.920 | 4.946 | |
| LLM T2M-GPT * | 0.171 | 0.027 | 0.017 | 0.350 | 42.589 | 6.102 | |
| LLM MG-MotionLLM | 0.775 | 0.245 | 0.044 | 0.345 | 23.629 | 5.082 |
| Method | Win(g N) | Win(g S) | Win(g G) | Gen@3 | FID | Diversity |
| CE baseline | 0.990 | 0.741 | 0.262 | 0.938 | 6.555 | 5.448 |
| Ours (full) | 1.000 | 0.797 | 0.266 | 0.960 | 4.760 | 4.804 |
| w/o Inverse-frequency reweighting | 0.979 | 0.704 | 0.220 | 0.946 | 5.177 | 4.929 |
| w/o | 0.996 | 0.781 | 0.260 | 0.960 | 5.950 | 5.453 |
| w/o | 0.996 | 0.712 | 0.215 | 0.943 | 6.376 | 4.493 |
| Setup | Value |
| Seq2Seq backbone model | T5-base [ 65 ] |
| Text tokenizer | T5-base tokenizer [ 65 ] |
| Audio tokenizer | MiMi neural audio codec [ 15 ] |
| Motion tokenizer | VQ-VAE from T2M-GPT [ 96 ] |
| Per-device batch size | 8 |
| Gradient accumulation steps | 2 |
| Metric | Value |
| Backbone parameters | 222.9M |
| Total trainable parameters | 235.9M |
| Unified vocabulary size | 49,002 |
| Parameter | Value |
| Backbone encoder | T5-base |
| Hidden dimension | 768 |
| Embedding dimension | 512 |
| Transformer heads | 12 |
| Transformer layers | 6 |
| Feedforward dimension | 3072 |
| Mode | Split | Win(G N) | Win(G S) | Win(S N) | MRR(G) | nDCG@3 | nDCG@5 | nDCG@10 |
| Val | ||||||||
| T | Val | 0.990 | 0.873 | 0.985 | 0.839 | 0.878 | 0.891 | 0.939 |
| A | Val | 0.990 | 0.873 | 0.985 | 0.842 | 0.881 | 0.893 | 0.940 |
| T+A | Val | 0.993 | 0.883 | 0.988 | 0.840 | 0.875 | 0.890 | 0.937 |
| T+E | Val | 0.994 | 0.881 | 0.988 | 0.841 | 0.875 | 0.891 | 0.938 |
| A+E | Val | 0.990 | 0.875 | 0.985 | 0.840 | 0.878 | 0.892 | 0.939 |
| Win(g N) | Win(g S) | Win(g G) | Gen@3 | FID | Diversity | |||
|---|---|---|---|---|---|---|---|---|
| 0.00 | 0.00 | 0.00 | 0.9976 | 0.7809 | 0.2585 | 0.9600 | 5.2638 | 5.3005 |
| 0.00 | 0.00 | 0.25 | 0.9976 | 0.7809 | 0.2633 | 0.9600 | 5.2638 | 5.3005 |
| 0.00 | 0.00 | 0.50 | 0.9976 | 0.7809 | 0.2615 | 0.9600 | 5.2638 | 5.3005 |
| 0.00 | 0.00 | 1.00 | 0.9964 | 0.7809 | 0.2615 | 0.9613 | 5.2638 | 5.3005 |
| 0.00 | 0.25 | 0.00 | 0.9988 | 0.7809 | 0.2331 | 0.9467 | 5.9644 | 4.6993 |
| 0.00 | 0.25 | 0.25 | 0.9952 | 0.7482 | 0.2240 | 0.9467 | 5.2102 | 4.8197 |
| Config | Win(g N) | Win(g S) | Win(g G) | Gen@3 | FID | Diversity | |||
| C1 | 2.00 | 0.25 | 1.00 | 0.9939 | 0.7748 | 0.2785 | 0.9697 | 5.7083 | 4.1561 |
| C2 | 0.50 | 0.50 | 0.00 | 0.9964 | 0.8287 | 0.3057 | 0.9625 | 5.8396 | 4.1884 |
| C3 | 0.00 | 0.50 | 0.00 | 0.9927 | 0.7760 | 0.2548 | 0.9443 | 4.6552 | 4.7315 |
| C4 | 1.00 | 0.00 | 0.25 | 0.9976 | 0.7809 | 0.2609 | 0.9588 | 5.2638 | 5.3005 |
| Metric | Value |
| Token generation speed | 63.6 tokens/s |
| Motion generation speed | 1.74 turns/s |
| End-to-end generation speed | 1.66 turns/s |
| Average latency per sample | 0.60 s |
| VQ-VAE decoding speed | 39.12 turns/s |
Human Motion Generation
Human motion generation creates articulated movement from language, audio, video, spatial constraints, or interaction goals.
See all 284 papers