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 レシピで大規模にサービス提供できます。
🚀 はじめに(クイックスタート)
- リポジトリをクローン
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も使用できます。) - Web 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)。 |
リンクされたレシピページを参照 |
📦 モデル 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ライセンスで提供されています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト