index-tts/index-tts
An Industrial-Level Controllable and Efficient Zero-Shot Text-To-Speech System
📚 IndexTTS란 무엇인가요?
IndexTTS는 단 하나의 참조 오디오 클립만으로 음성을 복제할 수 있는 오픈소스 제로샷 텍스트-음성 변환(TTS) 시스템입니다. 최신 버전인 IndexTTS-2.5는 5개 언어(중국어, 영어, 일본어, 스페인어, 아랍어)를 지원하며 다음을 제어할 수 있습니다:
- 감정 – 감정 참조 오디오, 명시적 감정 벡터, 또는 텍스트에서 자동으로 감정을 추출합니다.
- 말하기 속도 –
duration_factor(0.5배-2.0배)를 사용합니다. - 발음 – 입력 텍스트에 병음, CMU 음소, 또는 일본어 가나를 직접 제공합니다.
- 음색 – 복제된 음성은 화자의 음색을 유지하면서 언어를 변경할 수 있습니다.
이 모델은 "산업 수준" 솔루션으로 자리매김하고 있습니다: 실시간 사용에 충분히 빠르며, 반정밀도(BF16/FP16) 추론을 지원하고, vLLM 레시피로 대규모 서빙이 가능합니다.
🚀 시작하기 (빠른 시작)
- 저장소 복제
git clone https://github.com/index-tts/index-tts.git && cd index-tts - 환경 설치 – 이 프로젝트는 현대적인 Python 패키지 관리자 uv를 사용합니다.
선택 사항: 연결이 느린 경우 중국 미러(pip install -U uv # uv 자체 설치 uv sync --all-extras # .venv 생성 및 모든 의존성 설치--default-index)를 추가하세요. - 모델 다운로드 (예: 최신 IndexTTS-2.5) Hugging Face CLI를 통해:
(동일한 명령 패턴으로uv tool install huggingface-hub hf download IndexTeam/IndexTTS-2.5 --local-dir=checkpointsmodelscope-hub도 사용할 수 있습니다.) - 웹 UI 실행 (시스템을 테스트하는 가장 간단한 방법):
브라우저에서uv run webui.py # 기본값은 IndexTTS-2.5 # 또는 이전 2.0 모델의 경우: uv run webui.py --version 2 --model_dir ./checkpoints_2http://127.0.0.1:7860을 여세요. UI에서 참조 음성을 업로드하고, 텍스트를 입력하고, 언어를 선택하고, 위에서 설명한 컨트롤을 조정할 수 있습니다.
🛠️ 핵심 기능
| 기능 | 작동 방식 | 예시 플래그 / API 호출 |
|---|---|---|
| 제로샷 음성 복제 | 단일 참조 wav가 spk_audio_prompt로 모델에 입력됩니다. |
tts.infer(spk_audio_prompt='voice.wav', text='Hello') |
| 감정 제어 | 감정 참조 wav(emo_audio_prompt), 8차원 감정 벡터(emo_vector)를 제공하거나 모델이 텍스트에서 감정을 추론하도록 합니다(use_emo_text). |
emo_alpha=0.6, emo_vector=[0,0,0.8,0,0,0,0,0] |
| 속도 제어 | duration_factor(0.5-2.0)로 합성 지속 시간을 조정합니다. |
duration_factor=1.2 (느리게) |
| 발음 제어 | 입력 텍스트에 `<phoneme | X>` 태그를 삽입합니다. 중국어 병음, 영어 CMU 음소, 일본어 가나를 지원합니다. |
| 반정밀도 추론 | IndexTTS-2.5용 BF16, IndexTTS-2용 FP16 – VRAM을 줄이고 생성 속도를 높입니다. | use_bf16=True (생성자) |
| DeepSpeed / 컴파일된 CUDA 커널 | 호환 GPU를 위한 선택적 가속화. | 설치 중 --extra deepspeed |
| 프로덕션 서빙 | 준비된 vLLM 레시피(recipes.vllm.ai/IndexTeam/IndexTTS-2.5). |
연결된 레시피 페이지 참조 |
📦 모델 저장소 (사전 훈련된 체크포인트)
| 모델 | 언어 | 데모 | 모델 다운로드 (HF / ModelScope) |
|---|---|---|---|
| IndexTTS-2.5 | ZH, EN, JA, ES, AR | [데모 페이지] | IndexTeam/IndexTTS-2.5 |
| IndexTTS-2 | ZH, EN | [데모 페이지] | IndexTeam/IndexTTS-2 |
| IndexTTS-1.5 | ZH, EN | [데모 페이지] | IndexTeam/IndexTTS-1.5 |
| IndexTTS-1 | ZH, EN | [데모 페이지] | IndexTeam/Index-TTS |
🧑💻 Python API 사용하기 (코드 스니펫)
# 초기화 (다운로드한 버전 선택)
from indextts.infer_v2_5 import IndexTTS2 # 2.5용
tts = IndexTTS2(
cfg_path='checkpoints/config.yaml',
model_dir='checkpoints',
use_bf16=True, # 반정밀도
)
# 간단한 음성 복제
tts.infer(
spk_audio_prompt='examples/voice_01.wav',
text='Hello world',
lang='EN',
output_path='gen.wav',
verbose=True,
)
# 감정 + 속도 제어
tts.infer(
spk_audio_prompt='examples/voice_07.wav',
text='这是一段情绪化的中文',
lang='ZH',
emo_audio_prompt='examples/emo_sad.wav',
emo_alpha=0.8,
duration_factor=0.9,
output_path='emo.wav',
)
동일한 패턴이 이전 IndexTTS2 클래스(indextts.infer_v2)에서도 작동합니다.
📊 보고된 성능
저자들은 CV3-Eval 스위트(다국어 음성 품질 및 교차 언어 합성)에 대한 두 개의 벤치마크 테이블을 제공합니다. 주력 모델인 IndexTTS-2.5-RL(강화 학습 변형)의 하이라이트:
- 5개 언어 평균 단어 오류율(WER) 약 6%.
- 평균 주관적 점수(SS) 약 73/100, 더 큰 모델(예: 2B 매개변수의 VoxCPM2)과 유사합니다.
- 모델 크기: 0.8B 매개변수 – 많은 경쟁 시스템보다 상당히 작습니다.
🛡️ 라이선스 및 커뮤니티
- 라이선스: 이 저장소는 Apache-2.0 라이선스(저장소의
LICENSE파일에 명시된 대로)로 배포됩니다. 상업적 사용, 수정 및 재배포를 허용합니다. - 커뮤니티: 지원을 위한 Discord 서버가 연결되어 있으며, 프로젝트는 README에 Discord 배지를 유지합니다. 이슈 및 풀 리퀘스트는 GitHub를 통해 받습니다.
📚 IndexTTS는 언제 사용하나요?
- 다국어 음성 복제 음성의 빠른 프로토타이핑.
- 대화형 애플리케이션 (예: 가상 비서, 게임 캐릭터)에서 감정과 속도를 제어할 수 있는 저지연 TTS가 필요할 때.
- 제로샷 다국어 TTS, 음성 복제 또는 제어 가능한 음성 합성에 대한 연구.
- 프로덕션 – vLLM 레시피와 반정밀도 추론으로 대규모 서빙이 가능합니다.
🎯 요약
IndexTTS는 단일 오디오 클립에서 음성을 복제하고 감정, 속도 및 발음에 대한 세밀한 제어를 제공하는 실제 오픈소스 제로샷 다국어 TTS 엔진입니다. 즉시 사용 가능한 사전 훈련된 모델, 간단한 uv 기반 설치, 웹 UI 및 Python API를 제공하며 vLLM을 통해 프로덕션에 배포할 수 있습니다. 이 프로젝트는 적극적으로 유지 관리되며(최신 릴리스 2.5, 2026년 8월) Apache-2.0에 따라 라이선스가 부여됩니다.
🎯 TL;DR
IndexTTS는 단일 오디오 클립에서 음성을 복제하고 감정, 속도 및 발음에 대한 세밀한 제어를 제공하는 실제 오픈소스 제로샷 다국어 TTS 엔진입니다. 즉시 사용 가능한 사전 훈련된 모델, 간단한 uv 기반 설치, 웹 UI 및 Python API를 제공하며 vLLM을 통해 프로덕션에 배포할 수 있습니다. 이 프로젝트는 적극적으로 유지 관리되며(최신 릴리스 2.5, 2026년 8월) Apache-2.0에 따라 라이선스가 부여됩니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트