---
title: IndexTTS-2-MLX
canonical_url: "https://www.modelscope.cn/models/mlx-community/IndexTTS-2-MLX"
md_url: "https://www.modelscope.cn/models/mlx-community/IndexTTS-2-MLX.md"
repository: mlx-community/IndexTTS-2-MLX
last_updated: 2026-08-31
license: other
base_model:
  - IndexTeam/IndexTTS-2
base_model_relation: finetune
parameters: 1.1B
tensor_type:
  - F32
library_name:
  - mlx
  - safetensors
  - pytorch
frameworks:
  - pytorch
downloads: 138
stars: 0
tags:
  - mlx
  - tts
  - text-to-speech
  - voice-cloning
  - indextts
---

# IndexTTS-2-MLX

> IndexTTS-2-MLX - mlx-community 在 ModelScope 开源的模型。IndexTeam/IndexTTS-2 converted to MLX safetensors (fp32) for native Apple Silicon inference, with mlx-indextts.

mlx-community/IndexTTS-2-MLX 是 ModelScope 魔搭社区上的 1.1B 参数机器学习模型，采用 other 许可，基于 IndexTeam/IndexTTS-2 构建。

- **Repository**: mlx-community/IndexTTS-2-MLX
- **License**: other
- **Parameters**: 1.1B
- **Base model**: IndexTeam/IndexTTS-2
- **Tags**: mlx, tts, text-to-speech, voice-cloning, indextts
- **Downloads**: 138
- **Stars**: 0
- **Last updated**: 2026-08-31

Source: https://www.modelscope.cn/models/mlx-community/IndexTTS-2-MLX

---

# IndexTTS-2-MLX

[IndexTeam/IndexTTS-2](https://huggingface.co/IndexTeam/IndexTTS-2) converted to MLX
safetensors (fp32) for native Apple Silicon inference, with
[mlx-indextts](https://github.com/Jup33Q/mlx-indextts).

IndexTTS-2 is a zero-shot voice-cloning TTS system with emotion control. It clones a
voice from a single short reference clip (5–15 s) and synthesizes Chinese and English
speech with optional explicit emotion vectors.

## Model files

| File | Description |
|---|---|
| `gpt.safetensors` | GPT semantic-code generator (autoregressive) |
| `s2mel.safetensors` | S2Mel flow-matching mel decoder |
| `bigvgan.safetensors` | BigVGAN v2 vocoder (22.05 kHz, 80-band) |
| `vq2emb.safetensors` | Semantic-code → embedding table |
| `feat1.pt` / `feat2.pt` | Speaker-style / emotion matrices for explicit emotion control |
| `wav2vec2bert_stats.pt` | w2v-BERT feature normalization statistics |
| `tokenizer.model` / `config.yaml` / `config.json` | Text front end and runtime configs |
| `LICENSE.txt` / `LICENSE_ZH.txt` | Upstream IndexTTS-2 license |

Auxiliary encoders (w2v-BERT 2.0, MaskGCT semantic codec, CAMPPlus) are loaded from
their original upstream checkpoints at runtime; see the inference repo for details.

## Use with mlx-indextts

```bash
git clone https://github.com/Jup33Q/mlx-indextts
cd mlx-indextts && uv sync

hf download Jup33QE/IndexTTS-2-MLX --local-dir models/IndexTTS-2-MLX

HF_HUB_OFFLINE=1 uv run python -m mlx_indextts.generate_v2 \
  --model-dir models/IndexTTS-2-MLX \
  --reference path/to/reference.wav \
  --text "你好，这是一段 MLX 原生推理的中文语音。" \
  --output out.wav
```

## Conversion notes

- Converted from the official PyTorch checkpoints with `mlx_indextts/convert_v2.py`,
  fully offline from local weights.
- Layer-wise alignment vs PyTorch (MPS): end modules match within fp32 tolerance
  (BigVGAN full-model MAE 6.8e-3, emotion pipeline ~5e-4); a few intermediate layers
  show device-level numerical outliers that do not affect end-to-end output.
- Verified end-to-end on Apple M5 Max: Mandarin synthesis RTF ≈ 1.9 (fp32, batch).

## License

IndexTTS-2 weights are released under the upstream IndexTTS license — see
`LICENSE.txt` (English) and `LICENSE_ZH.txt` (Chinese), which are included in this
repo and apply to the converted weights as well. The MLX conversion code lives in
[mlx-indextts](https://github.com/Jup33Q/mlx-indextts) under its own license.
