IndexTTS2.5
bilibili · 5-language upgrade · Released Aug 10, 2026
IndexTTS2.5 is a full generational refresh rather than a patch. Language coverage goes from two to five (Chinese, English, Japanese, Spanish, Arabic), inference is rebuilt for speed (2.28× faster), and both speaking-rate control and fine-grained pronunciation control are new. Notably, it is one of the very few open-source TTS models with complete Arabic voice-cloning and cross-lingual support.
- Technical report
- arXiv:2601.03888
- Parameters
- ~0.8 B (GPT backbone)
- Languages
- zh, en, ja, es, ar
- Output
- 22.05 kHz waveform
- VRAM
- ~6 GB (bf16) — lowest in this group
- RTF
- 0.2065 bf16 overall (RTX 4090)
- License
- Bilibili Model License
- Downloads
- 22.5k (ModelScope), 5.49 GB
Upgrade 1 — Semantic codec compression (the main speed lever)
The semantic token frame rate drops from 50 Hz to 25 Hz, halving sequence length and therefore roughly halving compute and memory in both T2S and S2M. Measured T2S RTF fell from 0.232 (v2.0) to 0.119 (v2.5).
Upgrade 2 — S2M backbone: U-DiT → Zipformer
| Backbone | Structure | Params | MACs / frame | S2M RTF |
|---|---|---|---|---|
| U-DiT (v2.0) | 12 × 512 | 110 M | 200 M | 0.078 |
| Zipformer (v2.5) | 8 × 512 + 4×FFN(1024) | 68 M | 48 M | 0.017 |
Zipformer interleaves grouped convolutions with lightweight attention (O(L·d·k) + O(L·d·log L), k = 5) for better long-range modelling at lower cost. Net effect: ~4.6× faster S2M, 38 M fewer parameters. In paired subjective preference tests, 56% of listeners preferred the Zipformer-based output despite it being the smaller model.
Upgrade 3 — Cross-lingual strategy
Multilingual training suffers from character overlap between languages, which confuses the tokenizer. Three complementary strategies were evaluated:
- Boundary-aware alignment — explicit language-ID markers (e.g.
<ZH>) inserted around each segment. - Token-level concatenation — every text token is fused with a language-specific embedding. This delivered the highest speaker similarity and lowest WER across all four evaluated languages, and is the approach the released model uses.
- Instruction-guided generation — a natural-language prefix ("Please read this in English") removes the need for external language tags at inference time.
Zero-shot emotion transfer works even without target-language emotional labels: Japanese ES = 0.846, Spanish ES = 0.924.
Upgrade 4 — GRPO reinforcement-learning post-training
In the T2S post-training stage, the team applies GRPO (Group Relative Policy Optimization) using a frozen ASR model's WER as the reward signal. Four candidate semantic sequences are sampled per input and the higher-reward ones are reinforced, with KL regularisation to prevent drift.
| Metric | Before RL | After RL |
|---|---|---|
| English WER | 1.889% | 1.732% |
| Japanese WER | 9.949% | 9.770% |
| Speaker similarity | Stable or slightly improved | |
New controllability surface
| Capability | API / syntax |
|---|---|
| Speaking-rate control | duration_factor, continuous from 0.5× to 2.0× |
| Chinese pronunciation | <行|XING2> — pinyin + tone |
| English pronunciation | <minute|M IH1 . N AH0 T> — CMU phonemes |
| Japanese pronunciation | <上手|じょうず> — kana |
| Emotion intensity | emo_alpha scales emotional strength; emo_vector takes the 8-float vector |
| Emotion inference | Automatic inference of emotional tone from the text itself |
Deployment
- Python 3.10–3.11, NVIDIA GPU, ~6 GB VRAM at bf16 — the lowest of the five models here.
- Install: clone the official repo →
uv sync --all-extras→ downloadIndexTeam/IndexTTS-2.5from Hugging Face or ModelScope. - Web UI:
uv run webui.py→http://127.0.0.1:7860. Python API and a local Gradio demo are also provided. - vLLM deployment recipes are included — this is the most production-ready of the five for high-throughput serving.
- Auxiliary models (w2v-bert-2.0, MaskGCT semantic codec, CAMPPlus, BigVGAN) download automatically on first run.
- ComfyUI community nodes exist:
BSAI_ComfyUI_IndexTTS-2.5andComfyUI_JR_IndexTTS25.
Use cases: the widest coverage in this group
| Scenario | How to run it | Watch out for |
|---|---|---|
| Multilingual film and short-form dubbing | The only model here with explicit duration control (0.5×–2.0× continuous speed), so a translation can be compressed back into the original timeline | Average sentence length differs 20–40% across languages; don't expect a first-pass fit |
| Audiobooks and long-form narration | Chunk by paragraph, keep 10% overlap, reuse one reference clip throughout | Delivery specs are an automated gate — see the ACX list below |
| Game NPC voice asset line | Generate thousands of lines offline in one batch at near-zero marginal cost | What actually blocks you is engine format, not the model — see below |
| Call-centre bulk notifications / IVR | RTF 0.20 plus a vLLM recipe means a single 4090 can carry production load | Peak-hour queueing is real; you need caching and a concurrency ceiling |
| Arabic, Japanese and Spanish cloning | Five languages plus cross-lingual transfer; zh→ja speaker similarity of 75.82 is the best here | English still wobbles in mixed zh/en text — test it |
| Cross-lingual podcast distribution | Clone an entire show into multiple languages while keeping the host's timbre | AI disclosure duties in ad segments are tightening |
Audiobooks: ACX delivery specs are an automated gate
| Item | ACX requirement | How AI generation typically fails it |
|---|---|---|
| Container | MP3, 192 kbps+ CBR | Exported as VBR — instant rejection |
| Sample rate | 44.1 kHz | Model emits 22.05 / 24 / 48 kHz; needs resampling |
| Channels | Mono or stereo, consistent across the book | Settings drift between chapters |
| Average loudness (RMS) | −23 dB to −18 dB | Raw AI output usually lands at −26 to −24 dB — too quiet |
| Peak | ≤ −3 dB | Hard consonants clip to 0 dB after normalisation |
| Noise floor | < −60 dB RMS | Synthesised breath / room tone sits above it |
| File length | ≤ 120 minutes each | Whole book in one file |
| Head / tail tone | 0.5–1 s head, 1–5 s tail | Aggressive trimming puts the first phoneme on sample zero |
| Retail sample | 1–5 min, content only | Credits mixed in |
| AI disclosure | Declare AI narration in submission metadata | Forgotten at submission time |
Games: the engine blocks you, not the model
Format & sample rate
Unreal Engine 5 wants WAV (16-bit, 44.1 kHz) or OGG Vorbis.
Dropping an MP3 in directly costs 200–300 ms of decode latency, and lip sync is gone.
The classic failure: the model outputs 48 kHz, the project Audio Source is set to 44.1 kHz, and the line plays at double speed.
Engine settings
UE5: the Sound Class must be set to "Dialogue". The default SFX class applies 4:1 compression that amplifies whispers and flattens shouts.
Unity: Audio Source Load Type — lines under 10 s use Compressed in Memory, longer lines switch to Streaming.
Asset management
Past 500 dialogue lines, fix a naming schema before you generate anything, e.g. CHARACTER_EMOTION_LINEID.wav.
Otherwise you spend more time reconciling files to trigger events than you saved generating them.
Performance budget
More than 50–100 simultaneous voice lines in a scene causes memory spikes; you need audio pooling and LOD (disable lip sync on distant NPCs).
Target a 50–70% cache hit rate: pre-render predictable beats, generate only emergent dialogue live.
Dubbing: the cost picture
| Approach | Per minute · per language | Turnaround | Fits |
|---|---|---|---|
| Human studio dubbing | $100–500 | 2–6 weeks | Theatrical, broadcast, flagship brand work |
| Fully automated AI | $2–20 | Same day | Short-form video, courses, marketing volume |
| AI + human review | $50–200 | Days | Brand-sensitive or regulated content |
| This model, self-hosted | ≈ $0.003 (GPU only) | Immediate | You build the pipeline; excludes labour and ops |
Verdict for international users
Use it if you need Arabic, Japanese or Spanish cloning from a compact model, you want production vLLM serving, or you need continuous speaking-rate control for subtitle-locked workflows.
Watch out for the Bilibili Model License, which requires a separate written commercial agreement above 100M MAU or ¥1B annual revenue — a threshold most startups will not hit, but enterprises should review carefully.
Where it sits in the head-to-head data
This is the only IndexTTS model in CV3-Eval, and it appears twice (base and RL). Below are the four closest rivals; the full nine-model table is in 06.2.
| Model | Params | Chinese WER / SS | English WER / SS | Spanish WER / SS |
|---|---|---|---|---|
| IndexTTS2.5 | 0.8 B | 4.36 / 77.10 | 5.12 / 68.06 | 3.75 / 76.39 |
| IndexTTS2.5-RL | 0.8 B | 3.93 / 77.92 | 3.89 / 67.79 | 3.33 / 76.68 |
| CosyVoice3-0.5B | 0.5 B | 3.84 / 80.01 | 4.88 / 74.16 | 4.04 / 78.85 |
| Qwen3-TTS | 1.7 B | 3.27 / 73.02 | 5.06 / 67.17 | 2.87 / 73.17 |
| MOSS-TTS-v1.5 | 8 B | 4.02 / 72.68 | 4.45 / 67.46 | 3.83 / 71.75 |
| Model | zh→en WER / SS | zh→es WER / SS | zh→ja WER / SS |
|---|---|---|---|
| IndexTTS2.5 | 3.62 / 63.83 | 5.17 / 65.48 | 6.57 / 74.16 |
| IndexTTS2.5-RL | 3.55 / 67.47 | 4.86 / 64.47 | 6.38 / 75.82 |
| CosyVoice3-0.5B | 3.23 / 62.79 | 4.58 / 64.04 | — |
| Qwen3-TTS | 5.74 / 63.04 | 5.15 / 68.02 | 36.09 / 65.71 |
| Model | Precision | Overall RTF | Conditions |
|---|---|---|---|
| IndexTTS2.5 | bf16 | 0.2065 | RTX 4090, kv_cache=True |
| IndexTTS2 (reference) | fp16 | 0.3257 | RTX 4090 |
| VoxCPM2 (reference) | bf16 | ~0.30 | ~0.13 under Nano-VLLM |
| OmniVoice (reference) | — | 0.025 | H100 + custom kernels; ~0.9–1.2× real-time on Apple Silicon |
What it costs to run yourself
| Setup | RTF | GPU-hours / M chars | On-demand RTX 4090 | On-demand A100 |
|---|---|---|---|---|
| IndexTTS2.5 (bf16) | 0.2065 | 3.7 h | ~$2.75 | ~$5.91 |
| Reference: VoxCPM2 (Nano-VLLM) | ~0.13 | 2.3 h | ~$1.73 | ~$3.72 |
| Comparison | Cost / M chars | Multiple |
|---|---|---|
| ElevenLabs v3 | $60–180 | ~22–65× |
| ElevenLabs Flash | $50–55 | ~18–20× |
OpenAI tts-1 | $15 | ~5.5× |
| Google / Polly Standard | $4 | ~1.5× |
Licence and disclosure gate
| Item | Status |
|---|---|
| Code licence | Open source |
| Weights licence | Bilibili Model License |
| Commercial use | Permitted, but a separate written agreement is required above 100M MAU or ¥1B annual revenue |
| Default watermark | Not stated → plan on the assumption there is none |
| What you must add | AudioSeal / SynthID / C2PA if you have a disclosure duty; the model ships no content filter |
| Data residency | Runs fully offline |
If not this, then what
- Chinese only, chasing maximum speaker similarity → CosyVoice3-0.5B (Chinese SS 80.01). Check its licence first — don't assume it is clean.
- The licence has to be clean → VoxCPM2 (the cost being noticeably weaker zh→es).
- Highest-ranked open model you can ship → Step Audio EditX (Apache-2.0, blind Elo 1,102).
- Arabic, without the Bilibili threshold → nothing in this set. That is precisely 2.5's moat.
Ready to create with IndexTTS2.5?
Open Text to Speech with this engine selected and start with your own voice model.