mrkeyoor.com_
Tue 10 Nov 23:50 UTC
AI Toolsevaluationupdated 28 Sept 2026

index-tts review

IndexTTS is a local text-to-speech system that clones a voice from one reference recording, then gives you controls for emotion, pronunciation, and speaking speed. IndexTTS 2.5 supports Chinese, English, Japanese, Spanish, and Arabic through a Web UI, Python interface, or separate vLLM deployment recipe.

+66stars / 7d
Verdict

Our IndexTTS run passed a 6-second build and 163 tests, but its 164 packages occupied 8,418 MB and pip-audit found 54 known vulnerabilities. Use it when its five-language cloning, emotion controls, and pronunciation markup justify a dedicated speech environment. If you need a standard permissive license, a small install, or a repository-owned container path, walk away.

We ran it

Lab card: what happened when we ran index-ttsScreenshot of index-tts (github.com/index-tts/index-tts)
Install✓ · 111s164 packages · 8418 MB
Build✓ · 6s
Tests✓ · 53s163 passed · 0 failed · 22 skipped of 163 (pytest)
Known vulns54(pip-audit)
Repo337 files~77,236 lines of source · 40.3 MB · 2 CI workflows · tests dir

Answers from our run

Does index-tts build from source?

Dependencies installed in 111 seconds (164 packages), and the build succeeded in 6 seconds. We cloned commit ee40fa7 into a clean Debian container with 3 CPUs and no project-specific setup.

Do index-tts's tests pass?

Yes. The project's own test command finished in 53 seconds and reported 163 passed, 0 failed, 22 skipped (pytest).

Does index-tts have known vulnerabilities in its dependencies?

pip-audit flagged 54 known advisories in the dependency tree at the time of our run.

Who should not use index-tts?

Small deployments with tight disk budgets: our dependency install alone occupied 8,418 MB before the separately downloaded checkpoints.

What are the alternatives to index-tts?

CosyVoice, Fish Speech, Qwen3-TTS. Our IndexTTS run passed a 6-second build and 163 tests, but its 164 packages occupied 8,418 MB and pip-audit found 54 known vulnerabilities.

Setup2/58,418 MB before checkpoints, plus a separate production recipe
Docs4/5Clear install, model, control, and GPU instructions
Community4/524,265 stars and a September 29 push, with a large queue
Maturity3/5Green tests, active releases, and unresolved output reports

Discussed on

  1. hnIndexTTS2: Emotional duration-controlled autoregressive zero-shot text-to-speech5 points

Who it’s for

Speech teams that need one cloned voice to speak across the five documented languages.
Developers who need direct controls for emotion, phonemes, and speech duration.
GPU operators prepared to own an 8,418 MB Python environment before downloading model weights.
Researchers comparing local voice cloning systems with repeatable Python calls.

Who it’s NOT for

Small deployments with tight disk budgets: our dependency install alone occupied 8,418 MB before the separately downloaded checkpoints.
Teams that require an MIT or Apache license: the repository uses a custom Bilibili model agreement with revenue, downstream distribution, and model-training restrictions.
Applications needing languages beyond Chinese, English, Japanese, Spanish, and Arabic: those are the five languages documented for IndexTTS 2.5.
Operators expecting a ready-made container in this repository: our checkout had no Dockerfile, and production serving is documented through an external vLLM recipe.
Anyone cloning voices without explicit permission: the project disclaimer prohibits synthesizing an unauthorized person's voice and restricts unauthorized commercial use.

Setup reality

Our sandbox installed 164 packages in 111 seconds and occupied 8,418 MB. The build passed in 6 seconds, and the 53-second test run reported 163 passed, 0 failed, and 22 skipped. Pip-audit found 54 known vulnerabilities.

That result covers the code environment, not a speaking model. You still need to download the IndexTTS 2.5 checkpoints, obtain a suitable reference WAV, choose a language, and fetch small example models on first use. No account credential is required for the documented public downloads.

The README calls for CUDA 12.8 or newer when CUDA errors occur, while BF16, compiled CUDA kernels, and DeepSpeed depend on the GPU, drivers, and operating system. The repository has no Dockerfile; its production path points to a separate vLLM recipe.

One reference clip buys control, not a finished speech service

IndexTTS starts with a practical promise: give it a recording of a voice and text, and it produces new speech in that voice. The useful part is the control surface around that promise. IndexTTS 2.5 accepts a separate emotion recording, an eight-value emotion vector, or an emotion description. It can also alter speaking duration and replace words with Chinese Pinyin, English CMU phonemes, or Japanese Kana. Those controls suit dubbing and character work where the words alone do not determine the performance.

The current release covers five languages: Chinese, English, Japanese, Spanish, and Arabic. A single reference voice can cross language boundaries, but the caller must choose the output language. Speed control uses a duration factor from 0.5 to 2.0. Random emotion sampling is optional, and the README warns that it reduces voice-cloning fidelity. This is a system for developers willing to listen to results and tune them, rather than a text box that settles every delivery choice.

The 8,418 MB environment changes the setup calculation

The checkout looked manageable at 40.3 MB, with 337 files and roughly 77,236 lines of source. Installation changed the picture. The documented uv sync --all-extras route brings in the Web UI and DeepSpeed extras, and our resulting environment was more than 200 times the checkout size. Teams assigning this to a shared build runner or a modest workstation should reserve disk before they begin. Model checkpoints are a separate download and were not included in that total.

Our sandbox installed 164 packages in 111 seconds. That is a successful install, but 8,418 MB on disk is a real operating cost before a single model weight or generated WAV. The README says public checkpoints can come from Hugging Face or ModelScope, while smaller files and examples may arrive on first use. There is no repository Dockerfile to freeze the whole path. The production option sends operators to an external vLLM recipe instead.

What happened when we ran it

Our run used commit ee40fa7 in a fresh unprivileged Debian container with 3 CPUs and 8 GB of RAM. The build succeeded in 6 seconds. Tests then finished in 53 seconds: pytest reported 163 passed, 0 failed, and 22 skipped. Those results show that the source and its available automated checks worked in the supplied environment. They do not tell us how a cloned voice sounds, because the lab run did not download checkpoints or perform listening tests.

Pip-audit reported 54 known vulnerabilities among the 164 installed packages. The measurement does not include severity, exploitability, or whether each affected path is reachable during inference, so a total alone cannot prove that deployment is unsafe. It does make dependency review part of adoption. The repository has two CI workflow files and a tests directory, which is better evidence than a demo-only tree, but a production owner still has to triage those 54 findings.

CUDA 12.8 and separate checkpoints are part of first use

The README recommends uv and tells users not to activate another environment around its commands. After installation, you download the 2.5 checkpoints, check detected GPUs with the included utility, and start the Web UI on localhost or call the Python interface. Emotion from text has another switch: IndexTTS 2.5 must be constructed with Qwen emotion support enabled, or that call raises a runtime error. The documentation states this plainly, which saves a frustrating first test.

GPU details are less portable. The setup notes point Linux and Windows users toward CUDA 12.8 or newer when installation reports CUDA trouble. BF16, compiled CUDA kernels, and DeepSpeed can change memory use or speed, yet the README says DeepSpeed can also be slower depending on the machine. Open issue 815 reports that the default PyTorch 2.8 and CUDA 12.8 combination does not run on a Tesla P100. That is a user report, not a result from our CPU sandbox.

The custom license can stop a commercial rollout

GitHub does not identify a standard SPDX license here because the project uses Bilibili's own model agreement. It grants a limited worldwide license, then requires a separate agreement when the user or an affiliate exceeded 100 million monthly active users in the previous month or RMB 1 billion in annual revenue. Distribution carries notice and downstream-compliance duties. The terms also restrict using IndexTTS or its derivatives to improve other commercial AI models. Legal review belongs near the start of an evaluation.

Voice consent is another boundary. The Chinese disclaimer bars synthesizing an unauthorized person's voice and unauthorized commercial use, along with fraud and impersonation. The English model agreement places responsibility for privacy, personality rights, and other third-party claims on the user. None of this is a technical safeguard. If a product accepts uploaded reference audio, the product team still needs consent records, abuse controls, output review, and a deletion policy.

A September 29 push is healthy, while 409 items need sorting

The repository was pushed on September 29, 2026, and v2.5.0 was released on August 13. GitHub showed 24,265 stars and 409 open issues and pull requests on October 2. A separate API count split that queue into 388 issues and 21 pull requests. Recent work includes proposed duration control, separate devices for reference encoders, Web UI fixes, and text-segment handling, so the queue is active rather than merely old.

The same queue records output defects that matter more than a green unit suite. Issue 542 covers contractions, hyphens, unusual names, and pronunciation. Several reports describe noise or extra sounds at the end of generated audio, and issue 821 reports that repeated Web UI recordings can leave the microphone open and freeze the page. IndexTTS is worth a controlled audition when its emotion and phoneme tools match your job. Our 163 passing tests earn it that audition; the 8,418 MB install, 54 audit findings, and custom license argue against adopting it on a demo alone.

Alternatives

ProjectWhat it isPick it when
CosyVoiceA multilingual voice-generation stack with inference, training, and deployment tooling.pick this instead when training and a broader full-stack speech toolkit matter more than IndexTTS's focused controls.
Fish Speech gh↗A local text-to-speech system built around expressive generation and voice cloning.pick this instead when you want to compare another actively developed cloning engine before accepting IndexTTS's license terms.
Qwen3-TTSA Qwen speech model family for streaming generation, voice design, and cloning.pick this instead when streaming speech or free-form voice design is central to the product.

Sources

  1. IndexTTS repository
  2. IndexTTS README
  3. IndexTTS 2.5 release
  4. Bilibili model use license
  5. Open issue 542 on pronunciation handling
  6. Open issue 821 on Web UI recording

More ai tools reviews

ooosplat · dexter · oh-my-ppt · Agentero · mini-swe-agent · claude-video · the whole board →