Seeing Speech: Learning Visible Articulatory Dynamics for Speech-Driven 3D Facial Animation
Organizations: Chung-Ang University Seoul, South Korea
Abstract
Recent progress in speech-driven 3D facial animation has improved vertex-level reconstruction quality, but speech-consistent visible articulation remains difficult. This is because speech production follows structured and constrained articulators' coordination and the mapping from acoustics to motion is inherently one-to-many. Motivated by the structured patterns of visible articulation, we propose a novel articulation-aware framework that models visible speech through directional articulatory motions and composes them into surface-consistent 3D facial motion. To represent visible articulation with three directional articulatory motions, spreading, opening, and protrusion, we propose a Speech--Articulatory Memory (SAM) that captures the correspondence between speech and these motions under phonetic context through retrieval and decoding based on a key-value memory structure. Then, a Topology-aware Articulatory Composition (TAC) integrates the predicted directional articulatory motions under mesh topology to produce surface-consistent 3D facial motion. Experiments on VOCASET and TFHP show that our method achieves state-of-the-art performance on standard reconstruction metrics and improves visible articulatory distance and velocity errors for lip articulation, while a user study confirms clear preference in lip sync and realism.
Figures & tables
| Dataset | Methods | FVE | LVE | FDD | LDTW |
| VOCASET | FaceFormer | 0.878 | 0.346 | 0.143 | 0.186 |
| CodeTalker | 0.913 | 0.397 | 0.160 | 0.204 | |
| SelfTalk | 0.844 | 0.305 | 0.148 | 0.174 | |
| Imitator | 0.898 | 0.384 | 0.179 | 0.199 | |
| ScanTalk | 0.878 | 0.310 | 0.152 | 0.168 | |
| UniTalker | 0.820 | 0.282 | 0.101 | 0.188 |
| Methods | Distance Error | Velocity Error | ||||
| ICW | ILD | LP | ICW | ILD | LP | |
| FaceFormer | 1.764 | 4.558 | 2.429 | 0.581 | 1.850 | 1.230 |
| CodeTalker | 1.725 | 4.777 | 2.808 | 0.552 | 2.009 | 1.343 |
| SelfTalk | 1.680 | 4.031 | 2.470 | 0.544 | 1.958 | 1.275 |
| Imitator | 1.731 | 4.851 | 2.526 | 0.571 | 1.873 | 1.205 |
| ScanTalk | 1.737 | 4.034 | 2.485 | 0.558 | 1.854 | 1.285 |
| SAM | TAC | LDTW | ||
| ✓ | ✗ | 0.812 | 0.255 | 0.161 |
| ✓ | ✓ | 0.771 | 0.235 | 0.132 |
| Competitors | Lip Sync | Realism |
| (% Ours) | (% Ours) | |
| vs. FaceFormer | 71.3 | 65.7 |
| vs. CodeTalker | 72.2 | 75.0 |
| vs. Imitator | 77.8 | 73.1 |
| vs. ScanTalk | 73.1 | 79.6 |
| vs. UniTalker | 65.7 | 67.6 |
Appendix figures & tables23 assets
Supplementary material from the paper’s appendix.
Appendix
| Stage | Component | Output shape |
| Input | (per-direction motion) | |
| Encoder | Input projection ( , Linear) | |
| Sinusoidal positional encoding | ||
| Transformer encoder (1 layer, 4 heads, FFN , GELU, dropout 0.1) | ||
| Latent | (motion feature) | |
| Decoder | Transformer decoder (1 layer, 4 heads, FFN , GELU, dropout 0.1) |
| Metric | Unit | VOCASET | TFHP |
| FVE | m | ||
| LVE | m 2 | ||
| FDD | m 2 | ||
| LDTW | – | ||
| ICW / ILD / LP | m | ||
| ICW / ILD / LP velocity | m/frame | ||
| Configuration | FVE | LVE | FDD | LDTW |
| w/o directional articulatory decomposition | 0.842 | 0.266 | 0.122 | 0.181 |
| w/ directional articulatory decomposition ( / / ) | 0.771 | 0.235 | 0.097 | 0.132 |
| Configuration | FVE | LVE | FDD | LDTW |
| w/o | 0.823 | 0.275 | 0.121 | 0.188 |
| Full (Ours) | 0.771 | 0.235 | 0.097 | 0.132 |
| Query | Refinement | FVE | LVE | FDD | LDTW |
| Content | Content | 0.815 | 0.277 | 0.127 | 0.156 |
| Acoustic | Acoustic | 0.850 | 0.372 | 0.158 | 0.199 |
| Acoustic | Content (Ours) | 0.771 | 0.235 | 0.097 | 0.132 |
| Configuration | FVE | LVE | FDD | LDTW |
| w/o | 0.811 | 0.267 | 0.117 | 0.144 |
| w/ (Ours) | 0.771 | 0.235 | 0.097 | 0.132 |
| Configuration | FVE | LVE | FDD | LDTW |
| SAM + MLP composition | 0.799 | 0.243 | 0.103 | 0.146 |
| SAM + TAC (Ours) | 0.771 | 0.235 | 0.097 | 0.132 |
| Configuration | FVE | LVE | FDD | LDTW |
| w/o residual (feedforward) | 0.782 | 0.238 | 0.111 | 0.134 |
| w/ residual (Ours) | 0.771 | 0.235 | 0.097 | 0.132 |
| Configuration | FVE | LVE | FDD | LDTW |
| w/o | 0.788 | 0.236 | 0.107 | 0.139 |
| w/ (Ours) | 0.771 | 0.235 | 0.097 | 0.132 |
| Configuration | FVE | LVE | FDD | LDTW |
| Unified single-stage (from scratch) | 0.801 | 0.245 | 0.118 | 0.142 |
| Pretrained + unfrozen fine-tuning | 0.798 | 0.244 | 0.122 | 0.144 |
| Pretrained + frozen (Ours) | 0.771 | 0.235 | 0.097 | 0.132 |
| Methods | FVE ( ) | LVE ( ) | FDD ( ) | LDTW ( ) |
| CodeTalker | 0.124 | 0.127 | 0.461 | 0.319 |
| SelfTalk | 0.120 | 0.114 | 0.148 | 0.285 |
| UniTalker | 0.112 | 0.106 | 0.353 | 0.283 |
| Ours (SAM only) | 0.115 | 0.113 | 0.557 | 0.296 |
| Ours (SAM+TAC) | 0.110 | 0.106 | 0.351 | 0.275 |
| Methods | Distance Error | Velocity Error | ||||
| ICW | ILD | LP | ICW | ILD | LP | |
| Mimic | 4.320 | 5.326 | 5.968 | 1.460 | 2.593 | 2.871 |
| DiffPoseTalk | 5.483 | 5.860 | 7.006 | 1.221 | 2.168 | 2.438 |
| ARTalk | 5.788 | 6.049 | 7.378 | 1.501 | 2.801 | 2.644 |
| Ours | 4.299 | 4.829 | 5.859 | 1.168 | 2.083 | 2.414 |
| Method | Forehead | Eyes | Scalp |
| (133 verts) | (574 verts) | (489 verts) | |
| Mimic | 0.020 | 0.099 | 0.010 |
| DiffPoseTalk | 0.015 | 0.042 | 0.008 |
| ARTalk | 0.044 | 0.060 | 0.011 |
| Ours | 0.023 | 0.102 | 0.010 |