{"data":{"slug":"index-tts-index-tts","name":"index-tts","tagline":"An Industrial-Level Controllable and Efficient Zero-Shot Text-To-Speech System","github_url":"https://github.com/index-tts/index-tts","owner":"index-tts","repo":"index-tts","owner_avatar_url":"https://avatars.githubusercontent.com/u/196291161?v=4","primary_language":"Python","stars":21789,"forks":2669,"topics":["bigvgan","cross-lingual","indextts","text-to-speech","tts","voice-clone","zero-shot-tts"],"archived":false,"github_pushed_at":"2026-07-08T15:15:26+00:00","maintenance_label":"Very active","url":"https://www.graphcanon.com/tools/index-tts-index-tts","markdown_url":"https://www.graphcanon.com/tools/index-tts-index-tts.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/index-tts-index-tts","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=index-tts-index-tts","description":"An Industrial-Level Controllable and Efficient Zero-Shot Text-To-Speech System","homepage_url":null,"license":"Other","open_issues":371,"watchers":127,"ai_summary":null,"readme_excerpt":"<div align=\"center\">\n<img src='assets/index_icon.png' width=\"250\"/>\n</div>\n\n<div align=\"center\">\n<a href=\"docs/README_zh.md\" style=\"font-size: 24px\">简体中文</a> | \n<a href=\"README.md\" style=\"font-size: 24px\">English</a>\n</div>\n\n## The repository history has been reset. Please delete your local copy and re-clone.\n## （仓库历史已重置。请删除本地副本并重新克隆。）\n\n## 👉🏻 IndexTTS2 👈🏻\n\n<center><h3>IndexTTS2: A Breakthrough in Emotionally Expressive and Duration-Controlled Auto-Regressive Zero-Shot Text-to-Speech</h3></center>\n\n\n\n\n<div align=\"center\">\n  <a href='https://arxiv.org/abs/2506.21619'>\n    <img src='https://img.shields.io/badge/ArXiv-2506.21619-red?logo=arxiv'/>\n  </a>\n  <br/>\n  <a href='https://github.com/index-tts/index-tts'>\n    <img src='https://img.shields.io/badge/GitHub-Code-orange?logo=github'/>\n  </a>\n  <a href='https://index-tts.github.io/index-tts2.github.io/'>\n    <img src='https://img.shields.io/badge/GitHub-Demo-orange?logo=github'/>\n  </a>\n  <br/>\n  <a href='https://huggingface.co/spaces/IndexTeam/IndexTTS-2-Demo'>\n    <img src='https://img.shields.io/badge/HuggingFace-Demo-blue?logo=huggingface'/>\n  </a>\n  <a href='https://huggingface.co/IndexTeam/IndexTTS-2'>\n    <img src='https://img.shields.io/badge/HuggingFace-Model-blue?logo=huggingface' />\n  </a>\n  <br/>\n  <a href='https://modelscope.cn/studios/IndexTeam/IndexTTS-2-Demo'>\n    <img src='https://img.shields.io/badge/ModelScope-Demo-purple?logo=modelscope'/>\n  </>\n  <a href='https://modelscope.cn/models/IndexTeam/IndexTTS-2'>\n    <img src='https://img.shields.io/badge/ModelScope-Model-purple?logo=modelscope'/>\n  </a>\n</div>\n\n\n### Abstract\n\nExisting autoregressive large-scale text-to-speech (TTS) models have advantages in speech naturalness, but their token-by-token generation mechanism makes it difficult to precisely control the duration of synthesized speech. This becomes a significant limitation in applications requiring strict audio-visual synchronization, such as video dubbing.\n\nThis paper introduces IndexTTS2, which proposes a novel, general, and autoregressive model-friendly method for speech duration control.\n\nThe method supports two generation modes: one explicitly specifies the number of generated tokens to precisely control speech duration; the other freely generates speech in an autoregressive manner without specifying the number of tokens, while faithfully reproducing the prosodic features of the input prompt.\n\nFurthermore, IndexTTS2 achieves disentanglement between emotional expression and speaker identity, enabling independent control over timbre and emotion. In the zero-shot setting, the model can accurately reconstruct the target timbre (from the timbre prompt) while perfectly reproducing the specified emotional tone (from the style prompt).\n\nTo enhance speech clarity in highly emotional expressions, we incorporate GPT latent representations and design a novel three-stage training paradigm to improve the stability of the generated speech. Additionally, to lower the barrier for emotional control, we designed a soft instruction mechanism based on text descriptions by fine-tuning Qwen3, effectively guiding the generation of speech with the desired emotional orientation.\n\nFinally, experimental results on multiple datasets show that IndexTTS2 outperforms state-of-the-art zero-shot TTS models in terms of word error rate, speaker similarity, and emotional fidelity. Audio samples are available at: <a href=\"https://index-tts.github.io/index-tts2.github.io/\">IndexTTS2 demo page</a>.\n\n**Tips:** Please contact the authors for more detailed information. For commercial usage and cooperation, please contact <u>indexspeech@bilibili.com</u>.\n\n\n### Feel IndexTTS2\n\n<div align=\"center\">\n\n**IndexTTS2: The Future of Voice, Now Generating**\n\n\n\n*Click the image to watch the IndexTTS2 introduction video.*\n\n</div>\n\n\n### Contact\n\nQQ Group：663272642(No.4) 1013410623(No.5)  \\\nDiscord：https://discord.gg/uT32E7KDmy  \\\nEmail：indexspeech@bilibili.com  \\\nYou are welcome to join our community","github_created_at":"2025-02-06T04:08:05+00:00","created_at":"2026-07-11T12:04:02.985017+00:00","updated_at":"2026-07-11T12:04:15.235834+00:00","categories":[{"slug":"vector-databases","name":"Vector Databases","url":"https://www.graphcanon.com/categories/vector-databases","markdown_url":"https://www.graphcanon.com/categories/vector-databases.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/vector-databases"},{"slug":"llm-frameworks","name":"LLM Frameworks","url":"https://www.graphcanon.com/categories/llm-frameworks","markdown_url":"https://www.graphcanon.com/categories/llm-frameworks.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/llm-frameworks"},{"slug":"model-training","name":"Model Training","url":"https://www.graphcanon.com/categories/model-training","markdown_url":"https://www.graphcanon.com/categories/model-training.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/model-training"}],"tags":[{"slug":"voice-clone","name":"voice-clone"},{"slug":"cross-lingual","name":"cross-lingual"},{"slug":"text-to-speech","name":"text-to-speech"},{"slug":"python","name":"python"},{"slug":"indextts","name":"indextts"},{"slug":"tts","name":"tts"},{"slug":"bigvgan","name":"bigvgan"},{"slug":"zero-shot-tts","name":"zero-shot-tts"}],"trust":{"provenance":{"is_fork":false,"github_id":928102730,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-11T12:04:03.578Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":0,"days_since_push":2,"last_release_at":"2025-09-01T10:38:01Z"},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-11T12:04:04.524Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-07-11T12:04:04.297Z"},"has_cli":{"value":true,"source":"pyproject.toml:[project.scripts]","observed_at":"2026-07-11T12:04:04.297Z"},"languages":{"value":["python"],"source":"github.language+pyproject.toml","observed_at":"2026-07-11T12:04:04.297Z"},"license_spdx":{"value":"Other","source":"github.license","observed_at":"2026-07-11T12:04:04.297Z"}}}}