Generative Modeling via Drifting
Paper • 2602.04770 • Published • 10
Experimental. For quality, use the released mel model Vyvo/drifting-tts-tr (v3.1).
This is the one-step Turkish TTS of drifting-tts, trained in the latent space of a pretrained audio VAE: the paper's latent setting (Deng et al., 2026).
Compare the two models side by side: Vyvo/drifting-tts-tr-compare.
| file | training steps |
|---|---|
drifting_tts_voxcpm2_10k.pt |
10k (the better one) |
drifting_tts_voxcpm2_50k.pt |
50k, continued from 10k at a constant learning rate |
Freya-TR-Eval, first 100 sentences. Speaker 722, T = 0.3, α = 2. Whisper large-v3 on audio band-matched to 8 kHz; UTMOSv2 on the full band.
| model | WER | CER | UTMOSv2 |
|---|---|---|---|
| v3.1: mels + BigVGAN-v2-ft (released) | 0.66% | 0.14% | 2.934 |
| VoxCPM2 latent, 10k steps + fine-tuned decoder | 1.87% | 0.43% | 2.530 |
| VoxCPM2 latent, 10k steps + released decoder | 4.94% | 1.39% | 2.052 |
| VoxCPM2 latent, 50k steps + released decoder | 7.57% | 2.50% | 1.904 |
| mel model, 10k steps (same recipe, for reference) | 18.77% | 5.26% | 2.746 |
pip install "drifting-tts[voxcpm] @ git+https://github.com/kadirnar/drifting-tts"
from huggingface_hub import hf_hub_download
from drifting_tts.synthesize import Synthesizer
repo = "Vyvo/drifting-tts-tr-voxcpm2"
synth = Synthesizer(hf_hub_download(repo, "drifting_tts_voxcpm2_10k.pt"), "cuda",
vocoder=hf_hub_download(repo, "voxcpm2_decoder_ft.pt")) # the fine-tuned decoder (below)
wav, info = synth("Merhaba! Bu ses tek bir adımda üretildi.", speaker="studio", seed=0) # 24 kHz
voxcpm2). Synthesizer decodes with it: the VoxCPM2 AudioVAE weights are downloaded from openbmb/VoxCPM2 (Apache-2.0) on first use. vocoder= swaps in the fine-tuned decoder; without it, the released decoder sounds noisy on generated latents.studio, male, female, or any integer speaker ID.voxcpm2_decoder_ft.pt is the VoxCPM2 AudioVAE decoder, fine-tuned for 35k steps on this model's generated latents (#27, vocoder.arch: vae_decoder of drifting-tts finetune-vocoder).
| decoder | WER | CER | UTMOSv2 | DNSMOS OVRL |
|---|---|---|---|---|
| released VoxCPM2 | 4.94% | 1.39% | 2.052 | 1.49 |
| fine-tuned, 20k steps | 2.31% | 0.50% | 2.340 | 3.21 |
fine-tuned, 35k steps (voxcpm2_decoder_ft.pt) |
1.87% | 0.43% | 2.530 | 3.25 |
| fine-tuned, 40k steps | 1.76% | 0.42% | 2.410 | – |
| v3.1 (mels), for reference | 0.66% | 0.14% | 2.934 | 3.33 |
LatentVocoder default. It was trained against 24 kHz recordings.synth = Synthesizer(hf_hub_download("Vyvo/drifting-tts-tr-voxcpm2", "drifting_tts_voxcpm2_10k.pt"), "cuda",
vocoder=hf_hub_download("Vyvo/drifting-tts-tr-voxcpm2", "voxcpm2_decoder_ft.pt"))
Base model
openbmb/VoxCPM2