Industrial-Level AI TTS System

IndexTTS2

Precise speech duration control, emotionally expressive generation, and disentanglement of emotional expression and speaker identity. Revolutionary text-to-speech technology.

Try It Now

Let the Bullets Fly - Duration Control Demo

Demonstrating precise speech duration control with emotional expression preservation

Duration Control

Precise timing adjustment

Emotion Control

Natural emotional expression

Zero-Shot

No training required

Key Features

Advanced capabilities that set IndexTTS apart

Precise Duration Control

Explicit token count specification and autoregressive generation with prosodic reproduction.

Emotional Expression

Zero-shot emotion reproduction with support for angry, happy, calm, fear, and more emotions.

Timbre-Emotion Disentanglement

Independent control of speaker identity and emotional expression using different prompts.

Text-Based Emotion Control

Generate emotions using natural language descriptions with Qwen3 integration.

Superior Performance

Outperforms existing models in word error rate, speaker similarity, and emotional fidelity.

GPT Latent Representations

Enhanced speech stability using advanced GPT latent representations and soft instruction mechanisms.

Try IndexTTS

Experience the power of zero-shot voice synthesis

Voicv

Turn text into natural speech and create voices for your next project.

Try Voicv

Loading IndexTTS2 demo…

Please wait while the demo prepares.

Get Started

Simple API integration in just a few lines of code

Python API Example

# Install IndexTTS
pip install indextts

# Import and initialize
from indextts.infer import IndexTTS

tts = IndexTTS(
    model_dir="checkpoints",
    cfg_path="checkpoints/config.yaml"
)

# Generate speech
voice = "reference_voice.wav"
text = "Hello, this is IndexTTS speaking!"
output_path = "generated_speech.wav"

tts.infer(voice, text, output_path)

Documentation

Comprehensive guides and API reference

GitHub Repository

Open source code and examples

Community

Discord and QQ groups for support

Performance

IndexTTS outperforms existing TTS systems

7+

Supported emotions

3x

Speed control range

SOTA

Word error rate & speaker similarity

GPT

Latent representations

Plan the spoken scene

IndexTTS2 is presented here as a speech synthesis project with an emphasis on timing, expression, and speaker identity. These are useful dimensions to evaluate separately. Start with a short script, decide what the listener should understand, and identify the point at which emotion or timing matters. A clear brief makes comparisons more useful than generating a different sentence for every attempt.

Open indextts2.org to review the demonstration and project overview. For a local setup, use the current instructions in the official IndexTTS repository. Check the model version and available inference options before relying on a particular control. A recorded demonstration illustrates a workflow, while your own environment determines how an actual generation request behaves.

Prepare the reference and text

If your chosen workflow uses a reference recording, listen to it before starting. Prefer a clear passage with one speaker and without distracting background sound. Make sure you have permission to use that voice. Keep the reference separate from the script you want spoken so you can tell which input is responsible for an unwanted result.

Read the target script aloud. Expand abbreviations when their spoken form is ambiguous, check how names should be pronounced, and remove wording that is hard to follow by ear. Record the script revision with each sample. A small change in punctuation or sentence length may be more useful than a large change to the intended emotional delivery.

Choose a useful example

Dialogue for a short scene

Take a line that has a clear intention, such as asking for help or reassuring another character. Compare readings that preserve the same words and speaker reference. Listen for emphasis that supports the meaning without making every word equally dramatic. Then play the line beside the preceding and following dialogue to judge whether the transition feels coherent.

Narration against an edit

Choose a brief section of video with a defined place for narration. Mark the moment when the key information should be heard. Compare the generated speech with that visual moment, and leave room for the viewer to absorb the image. If the sentence is too crowded, revise the wording before trying to force the same amount of information into a shorter space.

A message with changing tone

For an application prototype, write a neutral confirmation and a more reassuring explanation of the same event. Evaluate whether the delivery remains understandable in both cases. Keep the message's practical content intact: an expressive voice should still communicate the action or outcome. Test the sentence with someone who has not seen the script to discover which words need clarification.

Compare one change at a time

Save a baseline sample before adjusting the voice or delivery. When comparing alternatives, keep the script, playback device, and listening level consistent. Note whether a change improves pronunciation, emphasis, timing, or speaker consistency. These are different qualities, and a version that improves one may make another less suitable for the scene.

Listen to the complete passage, including the beginning and ending. Check for clipped words, an unexpected pause, repeated syllables, or a sudden change in tone. Review important names and numbers against the text. For a longer project, keep a few accepted samples as a reference so that later clips can be compared with the intended voice direction.

Separate timing from quality

Measure the duration of the result you actually generated instead of assuming a description of timing control guarantees a specific outcome. Check the current release documentation for the available timing behavior. A clip that fits a time slot may still need editing for clarity, and a natural reading may require a shorter script to fit the same scene.

Keep a practical record

Store the input text, reference choice, model version, and settings beside each selected clip. Record the device used for a local test if performance matters to your application. This helps you reproduce a result and investigate regressions without treating a benchmark, a recorded demo, and your full application as the same environment.

If the demo is unavailable, the official repository remains the place to check supported installation and inference paths. The linked voice product is a separate service with its own controls. Review its workflow before moving your content there, and check the applicable terms for the model and source recordings before publication.

Should I revise the script or the voice?

Start with the script when a sentence is difficult to understand even when you read it aloud yourself. Start with delivery when the words are clear but the emphasis does not fit the scene. Keeping these decisions separate reduces unnecessary iterations and makes feedback easier to apply. After either change, replay the surrounding passage to check that the result still fits.