VoxCPM2-Turbo: distilled LocDiT students
Faster replacements for the VoxCPM2 diffusion decoder (LocDiT). Each file holds only the LocDiT weights
(feat_decoder.estimator.*). Load one on top of openbmb/VoxCPM2 or on top of
VoxCPM2-Arabic-Dialects.
At a glance
| Teacher | VoxCPM2's own sampler: 10 Euler steps, CFG 2.0 |
| Changed weights | LocDiT only (feat_decoder.estimator.*) |
| Arabic dialects engine | student_k2_dmd.pt was its default until 2026-10-15. The default is now VoxCPM2-Arabic-Dialects-Distilled-DiT, distilled for its adapters |
| Trained with | VoxCPM2-Turbo |
Files
| File | Steps | What it is | Use it for |
|---|---|---|---|
student_k2_dmd.pt |
2 | MSE + STFT, then distribution matching (DMD2-style) | Highest UTMOS of the few-step students |
student_k2_stft2.pt |
2 | MSE + multi-resolution STFT | Comparison |
student_k2.pt |
2 | MSE only | Comparison |
student_k4.pt |
4 | MSE only | Comparison |
student_gd9r2.pt |
9 | Guidance-distilled: one pass per step instead of two (CFG learned) | Recommended with fast mode |
student_gd9pm.pt |
9 | Same, with a prefix-LM mask (cached conditioning K/V are exact) | Fast mode, alternative |
lm_sparse24/sp24_ft.pt |
β | 2:4-pruned base LM after a recovery fine-tune (not a LocDiT) | Experimental |
lm_sparse24/sp24_ft2.pt |
β | Same, second recovery fine-tune with voice-cloning prompts | Experimental |
Results
Few-step students (WER: Whisper large-v3-turbo; UTMOS over 3 seeds):
| Decoder | Steps | WER | UTMOS |
|---|---|---|---|
| teacher (VoxCPM2 sampler) | 10 + CFG | 0.8β1.6% | 3.83β3.89 |
student_k2_dmd.pt |
2 | 1.19% | 3.52 |
student_k2_stft2.pt |
2 | 1.19% | 3.36 |
student_k2.pt |
2 | 0.27% | 3.19 |
student_k4.pt |
4 | 1.71% | 3.33 |
Guidance-distilled students (100 held-out sentences Γ 2 seeds, fast mode, INT8 engine):
| Decoder | WER | CER | Runaways | DNSMOS | UTMOS |
|---|---|---|---|---|---|
| teacher, fast mode | 2.87% | 1.52% | 1 | 3.05 | 3.70 |
student_gd9r2.pt |
2.38% | 1.17% | 0 | 3.14 | 3.94 |
student_gd9pm.pt |
2.56% | 1.28% | 1 | 3.10 | 3.87 |
Median time to first audio with student_gd9r2.pt, 1Γ A10, fast mode, all requests sent at once:
| Requests at once | 1 | 8 | 32 | 128 | 256 |
|---|---|---|---|---|---|
| teacher | 10.3 ms | 15.5 ms | 38.4 ms | 107.4 ms | 175.7 ms |
student_gd9r2.pt |
10.1 ms | 14.8 ms | 33.0 ms | 95.6 ms | 156.4 ms |
Usage
Arabic dialects engine (voxcpm2-arabic-dialects-turbo); its default is the Arabic student, so pass this file explicitly:
tts = await DialectTTS.load("VoxCPM-Kernel/VoxCPM2-Arabic-Dialects",
dit="VoxCPM-Kernel/VoxCPM2-Turbo-distilled-DiT:student_k2_dmd.pt")
VoxCPM2-Turbo:
eng = Engine("openbmb/VoxCPM2", precision="int8",
smooth_alpha={"qkv": 0.7, "o": 0.7, "gate_up": 0.7, "down": 0.7},
student="hf://VoxCPM-Kernel/VoxCPM2-Turbo-distilled-DiT/student_k2_dmd.pt")
For student_gd9*.pt, call VoxCPM2.enable_fast_mode() first (server: --fast).
License
Apache-2.0, as VoxCPM2.
Model tree for VoxCPM-Kernel/VoxCPM2-Turbo-distilled-DiT
Base model
openbmb/VoxCPM2