Aratako/Irodori-TTS
A Flow Matching-based Text-to-Speech Model with Emoji-driven Style Control
Irodori‑TTS – フローマッチング音声合成
何であるか – フローマッチング拡散モデル(Rectified Flow Diffusion Transformer)を用いて、DACVAEコーデックによって生成された連続潜在表現上で動作する研究レベルのTTSシステム。Echo‑TTSの設計を踏襲している。
主な機能
- ゼロショット音声クローン – 短い参照音声を提供するだけで、その話者の声を模倣する。
- マルチモーダル「VoiceDesign」 – 通常のテキスト、参照音声、および任意のキャプション(希望する声のスタイルの短い説明)を組み合わせて、話者のアイデンティティ、感情、話し方を制御。キャプションは通常のテキストまたは絵文字ベースのヒントとして使用可能。
- 自動持続時間予測 – 出力の長さをモデルが推定するため、通常は長さを明示する必要がない。
- PEFT LoRA微調整 – 配布されたチェックポイントの上に軽量アダプターを訓練し、完全な再トレーニングなしで新しいデータに適応可能。
- 話者インバージョン – 推論時に交換可能な話者埋め込みファイルを事前に訓練可能。各呼び出しで参照音声をアップロードする必要がなくなる。
- MeanFlow軽量バージョン – 4ステップの拡散で合成可能な軽量チェックポイント(v4‑Small‑MF)を提供。生成速度を大幅に向上。
- 量子化されたチェックポイント – int8/int4/float8の重みのみのバージョンを提供し、メモリ制限環境での推論に適している。
使い方
- インストール – リポジトリをクローンし、
uv sync --extra cu128(またはrocm,xpu,cpu)で適切なPyTorchエクストラをインストール。 - 推論実行 – 1行コマンド(
infer.py)で、Hugging Faceのチェックポイント、入力テキスト、任意の参照wav(または埋め込み)、出力パスを指定可能。 - Web UI – 2つのGradioアプリを同梱:
gradio_app.py:基本的なクローン/話者インバージョン用。gradio_app_voicedesign.py:キャプション+参照音声による「VoiceDesign」モード用。
- トレーニング/微調整 – スクリプト(
train.py,prepare_manifest.py)でフルモデル微調整、LoRAアダプター、話者インバージョントレーニングをサポート。マルチGPU DDPはtorchrunで有効化可能。 - 変換 – トレーニング後、チェックポイントを純粋な推論専用の
.safetensorsファイルに変換可能。
モデルアーキテクチャ(v4.1‑Small)
- 共有ModernBERTエンコーダ – 主なテキストとキャプションの両方を処理。
- 参照潜在表現エンコーダ – 最大120秒の参照音声からDACVAE潜在表現をエンコード。
- 条件プロジェクタ – テキストおよびキャプションの埋め込みを拡散モデルの条件空間にマッピング。
- 拡散トランスフォーマー(DiT) – Low‑Rank AdaLN、半分RoPE、SwiGLU MLPを備えたジョイントアテンションブロック。
- 持続時間予測器 – 条件入力から出力長を推定する組み込みモジュール。
モデルの入手先 – 事前学習済みチェックポイントと音声サンプルはHugging Faceにホスト(例:Aratako/Irodori‑TTS‑v4.1‑Small)。デモスペースでモデルの動作を確認可能。
一般的な利用シーン
- バーチャルアシスタント、オーディオブック、ゲームキャラクター向けの自然な日本語音声生成。
- ゼロショットクローンによる新しい話者声の迅速プロトタイピング。
- テキストキャプション(例:「落ち着いた女性の声」や絵文字の連続)を提供してスタイル制御されたナレーション。
- エッジGPU上で軽量かつ量子化されたTTSサービスのデプロイ。
関連プロジェクト – リポジトリにはOpenAI互換サーバー(Irodori‑TTS‑Server)が記載されており、API公開を容易に。Echo‑TTSおよびFacebookのDACVAEコーデックを基盤としている。
すべての詳細はリポジトリのREADMEから直接取得。追加機能は推測しない。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト