IndexTTS runs on your own machine and lets emotion and speed be parameters

Summary

A zero-shot speech synthesis system you install and run locally. One reference clip is enough to clone a voice, emotion, rate and pronunciation all stay as parameters, and the weights follow a project-specific licence rather than a generic open source one.

Recommend
Name
IndexTTS
Version
2.5
Pricing
Free
Open source
Open source
Operating system
WindowsLinux
Updated
2026-10-06 20:19

A repo title that reads like a spec sheet

IndexTTS project page

IndexTTS states what it is in the very first line of its repository: an industrial-grade, controllable and efficient zero-shot text to speech system. Three adjectives, three separate promises — that it can carry production traffic, that its behaviour can be steered, and that it runs fast enough to matter. The cloning entry point is equally blunt. Hand it one reference clip of a voice and it works; there is no training step in between.

The current release is IndexTTS-2.5. It covers Mandarin, English, Japanese, Spanish and Arabic, and the project notes that inference is faster than on the previous IndexTTS-2 while keeping the cross-lingual ability and the separation between timbre and emotion that the earlier version established.

Four releases, one line of descent

IndexTTS version history

The changelog tells the story without much decoration. The base IndexTTS came first. Version 1.5 concentrated on stability and on English output. Version 2 was the first autoregressive speech model in the line with precise control over synthesis duration — though the same note admits the feature was not switched on in that release. Version 2.5 widened the language set to five, improved pronunciation control for pinyin and phonemes, and added rate control together with a vLLM deployment path.

All four sit side by side in the model library, each with its own demo, paper and weight download. Which one you pick depends on which capabilities your use case actually needs, not on which number is highest.

Three control surfaces

This is where IndexTTS separates itself from the crowd. Emotion alone can be specified in three different ways. You can pass a separate emotion reference clip and scale its influence with emo_alpha, which runs from 0 to 1 and defaults to full strength. You can pass a floating point vector of length eight instead, in a fixed order: happy, angry, sad, afraid, disgusted, melancholic, surprised, calm. Or you can simply describe the emotion in a sentence of text.

Speed goes through duration_factor, which accepts values from half to double, with the default sitting at the original pace. Above the default the speech slows down, below it the speech speeds up. The parameter earns its keep when dubbing video, because the picture length is fixed and the voice has to land inside it.

IndexTTS control parameters

Pronunciation is the third surface, and it targets three situations: pinyin for Mandarin, CMU phonemes for English and kana for Japanese. When a character has more than one reading, or when a foreign proper noun comes out wrong, you intervene by hand instead of re-recording.

Real time factor on one RTX 4090

The published benchmark ran on a single 4090 with the KV cache enabled. IndexTTS-2.5 reaches a real time factor of 0.2065 in bf16 and 0.2060 in fp32. For comparison, IndexTTS-2.0 measured 0.3257 in fp16 and 0.3748 in fp32. Lower is better here: the figure describes how much headroom generation has over playback speed, so the gap between the two generations is visible directly in the numbers.

Dependencies go through uv

The recommended install is slightly unusual. You install uv with pip first, then use uv to sync the whole project. The reason is that uv creates the virtual environment itself and pins both the Python version and the dependency versions, which the docs call a precondition for a reliable install. The same docs warn against activating the environment by hand, because that is how dependency conflicts start.

Components are optional at install time. Add the webui entry if you want the browser interface, add the DeepSpeed entry if you want its acceleration. Two caveats come attached. DeepSpeed can be awkward to build on Windows, in which case you drop the flag that installs everything at once and pick components manually. And if the install throws a CUDA error, check that the machine already carries CUDA toolkit 12.8 or newer.

Weights, hardware check, first launch

IndexTTS web interface

The weights are a separate download, pulled from HuggingFace or ModelScope and dropped into a local directory for the program to load. Sample audio is fetched on demand the first time the web interface starts, which means Git LFS is no longer needed — one hurdle less if your network is unreliable.

Before launching, run the GPU detection script so you know which cards the environment can see. Then start the web interface and open the local page in a browser. Half precision inference can be toggled from inside that page; the project states that BF16 or FP16 is faster, uses less video memory, and loses very little quality.

Read the licence before you plan around it

The source is public, but the licence is not MIT or Apache. It is the bilibili model usage licence, and the repository carries both a Chinese and an English copy. The practical consequence is that the permitted scope of use is defined by that document rather than by a generic open source grant. If commercial use or redistribution is on your roadmap, read it first and confirm that your intended use falls inside what it allows.

Who it suits

If your requirement is to put synthesised speech inside a real product and keep it tunable, the density of control here is high. Emotion by vector or by text, rate scaled precisely, pronunciation corrected character by character, plus a vLLM serving path — that is not the configuration list of a toy project.

The entry cost is real too. You need an NVIDIA card, CUDA toolkit 12.8 or newer, and the uv toolchain for dependencies. And as with any voice cloning tool, building content from someone else's voice raises a consent question, public figures most of all. The finer the rate and emotion controls, the more it matters that you know where the output is supposed to be used.

Finer control buys more complexity. Once the parameter list grows long enough, what decides whether the result is good stops being the model and starts being how well the person driving it understands the content.

IndexTTSDownload
Supported systems: Windows Linux