Open-Source TTS Model Deep Dive · 2026
03

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

BackboneStructureParamsMACs / frameS2M RTF
U-DiT (v2.0)12 × 512110 M200 M0.078
Zipformer (v2.5)8 × 512 + 4×FFN(1024)68 M48 M0.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.

MetricBefore RLAfter RL
English WER1.889%1.732%
Japanese WER9.949%9.770%
Speaker similarityStable or slightly improved

New controllability surface

CapabilityAPI / syntax
Speaking-rate controlduration_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 intensityemo_alpha scales emotional strength; emo_vector takes the 8-float vector
Emotion inferenceAutomatic 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 → download IndexTeam/IndexTTS-2.5 from Hugging Face or ModelScope.
  • Web UI: uv run webui.pyhttp://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.5 and ComfyUI_JR_IndexTTS25.
Community feedback worth knowing: several users report that mixed Chinese-English text still occasionally renders English unstably, and that the perceptible improvement over IndexTTS2 in English is not always dramatic. Others praise the speed and multilingual reach. The standard advice applies: fix one reference clip, one mixed-language script and one emotion instruction, then compare 2 vs 2.5 on mispronunciations, emotion compliance and your own machine's RTF.

Use cases: the widest coverage in this group

ScenarioHow to run itWatch out for
Multilingual film and short-form dubbingThe only model here with explicit duration control (0.5×–2.0× continuous speed), so a translation can be compressed back into the original timelineAverage sentence length differs 20–40% across languages; don't expect a first-pass fit
Audiobooks and long-form narrationChunk by paragraph, keep 10% overlap, reuse one reference clip throughoutDelivery specs are an automated gate — see the ACX list below
Game NPC voice asset lineGenerate thousands of lines offline in one batch at near-zero marginal costWhat actually blocks you is engine format, not the model — see below
Call-centre bulk notifications / IVRRTF 0.20 plus a vLLM recipe means a single 4090 can carry production loadPeak-hour queueing is real; you need caching and a concurrency ceiling
Arabic, Japanese and Spanish cloningFive languages plus cross-lingual transfer; zh→ja speaker similarity of 75.82 is the best hereEnglish still wobbles in mixed zh/en text — test it
Cross-lingual podcast distributionClone an entire show into multiple languages while keeping the host's timbreAI disclosure duties in ad segments are tightening

Audiobooks: ACX delivery specs are an automated gate

ItemACX requirementHow AI generation typically fails it
ContainerMP3, 192 kbps+ CBRExported as VBR — instant rejection
Sample rate44.1 kHzModel emits 22.05 / 24 / 48 kHz; needs resampling
ChannelsMono or stereo, consistent across the bookSettings drift between chapters
Average loudness (RMS)−23 dB to −18 dBRaw AI output usually lands at −26 to −24 dB — too quiet
Peak≤ −3 dBHard consonants clip to 0 dB after normalisation
Noise floor< −60 dB RMSSynthesised breath / room tone sits above it
File length≤ 120 minutes eachWhole book in one file
Head / tail tone0.5–1 s head, 1–5 s tailAggressive trimming puts the first phoneme on sample zero
Retail sample1–5 min, content onlyCredits mixed in
AI disclosureDeclare AI narration in submission metadataForgotten at submission time
This is where AI has a structural advantage: no mic hiss, no HVAC rumble, no plosives from real breath — the noise floor starts near-silent. Your work is therefore loudness normalisation and peak control, not denoising. Conversely, do not count on a denoiser to rescue a bad export.

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

ApproachPer minute · per languageTurnaroundFits
Human studio dubbing$100–5002–6 weeksTheatrical, broadcast, flagship brand work
Fully automated AI$2–20Same dayShort-form video, courses, marketing volume
AI + human review$50–200DaysBrand-sensitive or regulated content
This model, self-hosted≈ $0.003 (GPU only)ImmediateYou build the pipeline; excludes labour and ops
Don't forget the boundary: 2.5 is the fastest model here, but it is a content-production engine, not a conversational one — sub-300 ms first audio still belongs to closed engines like Cartesia Sonic, Inworld and ElevenLabs Flash. To use it in a live voice agent you must build VAD, semantic endpointing and barge-in yourself (typically on LiveKit or Pipecat) and overlap every stage. A naive serial pipeline always exceeds one second, and human conversation will not tolerate that — average turn-taking gaps run 200–300 ms, and past 700 ms a pause reads as lag.

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.

5 languages 2.28× faster 0.5×–2.0× speed Pinyin / CMU / Kana vLLM recipes Restrictive license

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.

ModelParamsChinese WER / SSEnglish WER / SSSpanish WER / SS
IndexTTS2.50.8 B4.36 / 77.105.12 / 68.063.75 / 76.39
IndexTTS2.5-RL0.8 B3.93 / 77.923.89 / 67.793.33 / 76.68
CosyVoice3-0.5B0.5 B3.84 / 80.014.88 / 74.164.04 / 78.85
Qwen3-TTS1.7 B3.27 / 73.025.06 / 67.172.87 / 73.17
MOSS-TTS-v1.58 B4.02 / 72.684.45 / 67.463.83 / 71.75
Modelzh→en WER / SSzh→es WER / SSzh→ja WER / SS
IndexTTS2.53.62 / 63.835.17 / 65.486.57 / 74.16
IndexTTS2.5-RL3.55 / 67.474.86 / 64.476.38 / 75.82
CosyVoice3-0.5B3.23 / 62.794.58 / 64.04
Qwen3-TTS5.74 / 63.045.15 / 68.0236.09 / 65.71
ModelPrecisionOverall RTFConditions
IndexTTS2.5bf160.2065RTX 4090, kv_cache=True
IndexTTS2 (reference)fp160.3257RTX 4090
VoxCPM2 (reference)bf16~0.30~0.13 under Nano-VLLM
OmniVoice (reference)0.025H100 + custom kernels; ~0.9–1.2× real-time on Apple Silicon
Three takeaways. (1) For dubbing-style cross-lingual work it wins the set — best zh→en WER (3.55) and best zh→ja speaker similarity (75.82), which is exactly the alignment that duration control buys you. (2) It does not win monolingual Chinese similarity — CosyVoice 3 leads at 80.01 against 2.5-RL at 77.92, a 2.1-point gap. (3) Parameter count does not hold here — 0.8 B beats MOSS-TTS-v1.5 at 8 B.

What it costs to run yourself

SetupRTFGPU-hours / M charsOn-demand RTX 4090On-demand A100
IndexTTS2.5 (bf16)0.20653.7 h~$2.75~$5.91
Reference: VoxCPM2 (Nano-VLLM)~0.132.3 h~$1.73~$3.72
ComparisonCost / M charsMultiple
ElevenLabs v3$60–180~22–65×
ElevenLabs Flash$50–55~18–20×
OpenAI tts-1$15~5.5×
Google / Polly Standard$4~1.5×
The part of this table that matters more than the quality table: IndexTTS2.5 is the only option where low VRAM (~6 GB), low RTF (0.2065) and five languages all hold at once — which means a single RTX 4090 can carry production load instead of an A100. Two realities still apply: real-world RTF is typically 2–5× slower than the paper figure, and engineering cost (deployment, monitoring, retries, chunk stitching) usually exceeds the GPU bill by an order of magnitude.

Licence and disclosure gate

ItemStatus
Code licenceOpen source
Weights licenceBilibili Model License
Commercial usePermitted, but a separate written agreement is required above 100M MAU or ¥1B annual revenue
Default watermarkNot stated → plan on the assumption there is none
What you must addAudioSeal / SynthID / C2PA if you have a disclosure duty; the model ships no content filter
Data residencyRuns fully offline
How high is that threshold? 100M MAU or ¥1B (~$140M) revenue is out of reach for almost every startup and mid-size team — but it does exclude large platforms. If you are a platform, this is a genuine blocker and you need to start the licence conversation months ahead, not the week before launch. See 06.5.

If not this, then what

  • Chinese only, chasing maximum speaker similarityCosyVoice3-0.5B (Chinese SS 80.01). Check its licence first — don't assume it is clean.
  • The licence has to be cleanVoxCPM2 (the cost being noticeably weaker zh→es).
  • Highest-ranked open model you can shipStep 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.
Try it on BiliVoice

Ready to create with IndexTTS2.5?

Open Text to Speech with this engine selected and start with your own voice model.