index-tts/index-tts

An Industrial-Level Controllable and Efficient Zero-Shot Text-To-Speech System

📚 IndexTTSとは?

IndexTTS は、たった1つの参照音声クリップから声をクローンできる、オープンソースのゼロショット音声合成(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. Web 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)。 リンクされたレシピページを参照

📦 モデル Zoo(事前学習済みチェックポイント)

モデル 言語 デモ モデルダウンロード(HF / ModelScope)
IndexTTS‑2.5 中国語、英語、日本語、スペイン語、アラビア語 [デモページ] IndexTeam/IndexTTS-2.5
IndexTTS‑2 中国語、英語 [デモページ] IndexTeam/IndexTTS-2
IndexTTS‑1.5 中国語、英語 [デモページ] IndexTeam/IndexTTS-1.5
IndexTTS‑1 中国語、英語 [デモページ] 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 スイート(多言語音声品質と言語横断合成)に関する2つのベンチマークテーブルを提供しています。主力の IndexTTS‑2.5‑RL(強化学習バリアント)のハイライト:

  • 5言語全体での平均語誤り率(WER)≈ 6 %。
  • 平均主観スコア(SS)≈ 73 / 100。これはより大きなモデル(例:2 BパラメータのVoxCPM2)に匹敵します。
  • モデルサイズ:0.8 Bパラメータ – 多くの競合システムよりもかなり小さい。

🛡️ ライセンスとコミュニティ

  • ライセンス: リポジトリは Apache‑2.0 ライセンス(リポジトリの LICENSE ファイルに記載の通り)で公開されています。商用利用、変更、再配布が許可されています。
  • コミュニティ: サポート用のDiscordサーバーがリンクされており、プロジェクトはREADMEにDiscordバッジを維持しています。問題やプルリクエストはGitHub経由で受け付けています。

📚 IndexTTSをいつ使うべきか?

  • 複数言語での音声クローン合成の迅速なプロトタイピング。
  • 低遅延のTTSと制御可能な感情・速度が必要なインタラクティブアプリケーション(例:仮想アシスタント、ゲームキャラクター)。
  • ゼロショット多言語TTS、音声クローン、または制御可能な音声合成に関する研究。
  • 本番環境 – vLLMレシピと半精度推論により、大規模なサービス提供が可能です。

🎯 TL;DR

IndexTTS は、単一の音声クリップから声をクローンし、感情、速度、発音を細かく制御できる、本格的なオープンソースのゼロショット多言語TTSエンジンです。すぐに使える事前学習済みモデル、シンプルな uv ベースのインストール、Web UI、Python APIが同梱されており、vLLM経由で本番環境にデプロイできます。このプロジェクトは積極的にメンテナンスされており(2026年8月に最新リリース2.5)、Apache‑2.0ライセンスで提供されています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト