Audio2Face-3D
This first-party Soniqo page documents Audio2Face-3D from the local speech-swift / speech-core implementation. Hugging Face bundles are linked below after the integration notes.
Internal Page First
Landing cards and docs menus now point here first; source model and bundle links remain available from this page.
At a Glance
| Model | Audio2Face-3D |
|---|---|
| Role | Speech-to-avatar motion coefficients for downstream renderers |
| Backend | MLX |
| Output | JSONL frames: timestamp plus the full coefficient vector |
| Languages | Language-independent, audio-driven |
| License | NVIDIA Open Model License |
| Status | Ready through speech avatar-motion and the Audio2Face3D Swift product |
| Source | NVIDIA Audio2Face-3D |
| Swift product | Audio2Face3D |
| CLI / runtime | speech avatar-motion |
Use
The snippet below mirrors the current speech-swift API or command exposed by the repo.
# Generate avatar motion coefficients from speech audio.
.build/release/speech avatar-motion input.wav --output motion.jsonl --verbose
.build/release/speech avatar-motion input.wav \
--model aufklarer/Audio2Face-3D-v2.3.1-Claire-MLX
Model Links
Implementation Notes
- Three identities are published: James (default) and Claire at v2.3.1 with 169 coefficients, Mark at v2.3 with 301; skin coefficients live in the identity's own geometry basis, so renderers need the matching rig or a retarget projection.
- Two-branch regressor: a trimmed Wav2Vec2 audio encoder blended across transformer layers, plus a windowed-autocorrelation frequency branch, fused through emotion-conditioned strided convolutions.
- Each 8320-sample window of 16 kHz mono audio (hop 4160) emits one frame, conditioned on a 26-value emotion vector — 16 implicit plus 10 explicit values.
- The MLX graph runs the full NVIDIA model forward pass and is parity-checked against an ONNX fixture generated from the official release.