yunfengwang/IndexTTS-2.5-onnx
0
IndexTTS-2.5-onnx
IndexTTS-2.5 zero-shot voice cloning, exported to ONNX fp32 — bit-exact against the PyTorch CPU reference. Torch-free inference via the companion package `index-tts-2.5-onnx`:
uvx index-tts-2.5-onnx synth --ref voice.wav \
--text "大家好, this is IndexTTS." --out out.wavRuns anywhere ONNX Runtime runs (Linux / Windows / macOS, x86 / ARM). CPU by default; --device cuda with onnxruntime-gpu for NVIDIA GPUs.
Verification (vs PyTorch CPU reference)
- every stage cosine = 1.0000; greedy acoustic tokens exactly reproduced (fx0 73/73, fx1 83/83)
- vocoder output mel-SNR ≈ 85 dB (inaudible)
- no int8: dynamic QInt8 flips GPT greedy argmax (26% tokens match); MatMulNBits weight-only int8 is both less accurate (cos 0.985) and slower on ORT CPU — fp32 only, by measurement
Layout
campplus.onnx speaker embedding
emo_vec.onnx emotion vector
semantic_model/ w2v-bert semantic encoder (+ .onnx.data)
semantic_codec_decode.onnx acoustic codes -> latent
gpt_prefill/ gpt_step/ autoregressive GPT (+ .onnx.data)
length_regulator.onnx
cfm_estimator/ flow-matching DiT
bigvgan.onnx vocoder -> 22050 Hz wav
multilingual_zh_ja_yue_char_del.tiktoken tokenizer
spk_proj.npz speaker projection
hf_cache/w2v-bert-2.0/ feature-extractor configs onlySibling packages: `index-tts-2.5-mlx` (Apple Silicon GPU, faster than real-time), `index-tts-2.5-mnn` (fast CPU).
Model weights are subject to the original Bilibili IndexTTS license. Use voice cloning responsibly and only with consent from the voice owner.
