--- license: other license_name: bilibili-indextts license_link: https://modelscope.cn/models/IndexTeam/IndexTTS-2.5 tags: - tts - voice-cloning - mlx - apple-silicon - indextts library_name: mlx --- # IndexTTS-2.5 — MLX (int8) [IndexTTS-2.5](https://modelscope.cn/models/IndexTeam/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`](https://pypi.org/project/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](https://pypi.org/project/index-tts-2.5-mlx/). ## 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 ```bash uvx index-tts-2.5-mlx synth --ref voice.wav --text "大家好, this is IndexTTS." --out out.wav ``` ```python 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](https://pypi.org/project/index-tts-2.5-mlx/) 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.