Instructions to use yunfengwang/IndexTTS-2.5-mlx with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use yunfengwang/IndexTTS-2.5-mlx with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] huggingface-cli download --local-dir IndexTTS-2.5-mlx yunfengwang/IndexTTS-2.5-mlx
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Atomic Chat
IndexTTS-2.5 — MLX (int8)
IndexTTS-2.5 ported to MLX for Apple Silicon, with an int8-quantized GPT decoder. Torch-free. This repo holds the weights consumed by the index-tts-2.5-mlx Python package (one-click uvx, auto-download).
Only the int8 variant is published: the GPT decode loop is the bottleneck and the only module where weight-only quantization gives a real GPU speedup; the remaining modules are compute-bound or fidelity-critical and stay fp32.
Features
- Zero-shot voice cloning from a ≤15 s reference; build the speaker once, reuse across unlimited lines.
- Multilingual + code-switching —
zh/en/ja/yue, mixed in one sentence. - Text normalization (
wetext) reads numbers/abbreviations correctly. - Rich decoding controls — greedy or sampling, repetition penalty, speech-rate, flow-matching solver knobs.
- Faster than real-time on Apple Silicon — see Performance below.
Full CLI/API options, quality metrics (ASR / speaker-similarity / numeric-fidelity), and the PyTorch→MLX conversion notes are on the PyPI page.
Layout
gpt_int8.safetensors # int8 GPT (weight + scales + biases), embeddings fp32
cfm_estimator.safetensors # flow-matching DiT (fp32)
raw/semantic_model.safetensors # w2v-bert semantic encoder
raw/emo.safetensors # emotion vector
raw/campplus.safetensors # speaker embedding
raw/length_regulator.safetensors
raw/semantic_codec.safetensors # codec decoder
raw/bigvgan.safetensors # vocoder
multilingual_zh_ja_yue_char_del.tiktoken
spk_proj.npz
hf_cache/w2v-bert-2.0/{config.json,preprocessor_config.json} # feature extractor only (no weights)
Usage
uvx index-tts-2.5-mlx synth --ref voice.wav --text "大家好, this is IndexTTS." --out out.wav
from index_tts_2_5_mlx import IndexTTS
tts = IndexTTS() # downloads this repo on first use
sr, pcm = tts.clone("AI 模型在 2025 年处理了 100 万条数据。", ref_audio_path="voice.wav", out="out.wav")
Performance (Apple M5 Pro, warm)
| Backend | RTF | vs PyTorch MPS |
|---|---|---|
| PyTorch MPS (official) | 1.11–1.17 | 1.0× |
| MLX fp32 | 0.67–0.71 | ~1.7× |
| MLX int8 | 0.45–0.47 | ~2.4× |
RTF < 1 = faster than real-time. See the PyPI page for full quality (ASR / speaker-similarity / numeric-fidelity) and usage details.
License
Weights are subject to the original Bilibili IndexTTS license (see the upstream model card). Use voice cloning responsibly and only with the voice owner's consent.
Quantized