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 레시피로 대규모 서빙이 가능합니다.


🚀 시작하기 (빠른 시작)

  1. 저장소 복제
    git clone https://github.com/index-tts/index-tts.git && cd index-tts
    
  2. 환경 설치 – 이 프로젝트는 현대적인 Python 패키지 관리자 uv를 사용합니다.
    pip install -U uv          # uv 자체 설치
    uv sync --all-extras       # .venv 생성 및 모든 의존성 설치
    
    선택 사항: 연결이 느린 경우 중국 미러(--default-index)를 추가하세요.
  3. 모델 다운로드 (예: 최신 IndexTTS-2.5) Hugging Face CLI를 통해:
    uv tool install huggingface-hub
    hf download IndexTeam/IndexTTS-2.5 --local-dir=checkpoints
    
    (동일한 명령 패턴으로 modelscope-hub도 사용할 수 있습니다.)
  4. 웹 UI 실행 (시스템을 테스트하는 가장 간단한 방법):
    uv run webui.py          # 기본값은 IndexTTS-2.5
    # 또는 이전 2.0 모델의 경우:
    uv run webui.py --version 2 --model_dir ./checkpoints_2
    
    브라우저에서 http://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에 따라 라이선스가 부여됩니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트