CoolFace
Modelpublic

yunfengwang/IndexTTS-2.5-mlx

sourceHugging Faceotherupdated 1mo agoView on Hugging Face
1likes
Model Card

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

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)

BackendRTFvs PyTorch MPS
PyTorch MPS (official)1.11–1.171.0×
MLX fp320.67–0.71~1.7×
MLX int80.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.