IrodoriTTS
Irodori-TTS v4.1は、日本語向けの音声合成モデルです。1つのチェックポイントでボイスクローニングとキャプションベースのボイスデザインに対応しています。TomoriBotではservers/tts/irodoritts/のローカルFastAPIラッパーを介して実行します。
デフォルトモデルはAratako/Irodori-TTS-v4.1-Smallです。IRODORI_TTS_MODEL_IDを設定すると、phasefield-audio/Irodori-TTS-v4.1-Animeなどの互換Hugging Faceチェックポイントも使用できます。
セットアップ
Section titled “セットアップ”現在のIrodoriは、依存関係とPyTorchバックエンドの管理にuvを使用します。先にuvをインストールし、TomoriBotリポジトリのルートからセットアップスクリプトを実行してください。
Windows PowerShell(NVIDIA)
Section titled “Windows PowerShell(NVIDIA)”.\servers\tts\irodoritts\install-irodori.ps1 cu128.\servers\tts\irodoritts\.venv\Scripts\python.exe servers\tts\irodoritts\server.pyLinux Bash(NVIDIA)
Section titled “Linux Bash(NVIDIA)”bash servers/tts/irodoritts/install-irodori.sh cu128servers/tts/irodoritts/.venv/bin/python servers/tts/irodoritts/server.pyセットアップスクリプトはservers/tts/irodoritts/.venvを作成するため、インストール後もbun run launch --irodorittsをそのまま使用できます。
利用可能なバックエンド:
cu128:Windows/LinuxのNVIDIA CUDA 12.8cpu:CPUのみ、またはmacOSのCPU/MPSrocm:Linux/WSLのAMD ROCmxpu:Windows/LinuxのIntel XPU
デフォルトのエンドポイントURLはhttp://127.0.0.1:8013です。
別のチェックポイントを使用する
Section titled “別のチェックポイントを使用する”デフォルトモデルはAratako/Irodori-TTS-v4.1-Smallです。環境変数を設定することで、互換性のあるHugging Faceリポジトリやコミュニティファインチューン(phasefield-audio/Irodori-TTS-v4.1-Animeなど)、またはローカルのチェックポイントファイルを指定できます。
サイドカー起動時(Pythonによる直接起動、またはbun run launch --irodoritts)、サーバーはリポジトリ直下の.env(またはservers/tts/irodoritts/.env)を自動的に読み込み、起動時に使用中のモデルIDをログ出力します。
.env を使用する場合(設定を保持)
Section titled “.env を使用する場合(設定を保持)”TomoriBotのルートにある.envファイルに追記します。
IRODORI_TTS_MODEL_ID="phasefield-audio/Irodori-TTS-v4.1-Anime"セッションごとに環境変数を指定する場合
Section titled “セッションごとに環境変数を指定する場合”Windows PowerShellの場合:
$env:IRODORI_TTS_MODEL_ID = "phasefield-audio/Irodori-TTS-v4.1-Anime".\servers\tts\irodoritts\.venv\Scripts\python.exe servers\tts\irodoritts\server.pyLinux Bashの場合:
IRODORI_TTS_MODEL_ID=phasefield-audio/Irodori-TTS-v4.1-Anime \ servers/tts/irodoritts/.venv/bin/python servers/tts/irodoritts/server.pyローカルのチェックポイントファイルを使用する場合
Section titled “ローカルのチェックポイントファイルを使用する場合”チェックポイントファイル(.ptまたは.safetensors)をローカルにダウンロードしている場合は、IRODORI_TTS_CHECKPOINTにファイルパスを指定します。
IRODORI_TTS_CHECKPOINT="/path/to/custom_checkpoint.pt"現在のIrodoriは、チェックポイントとHugging Faceリポジトリ内のトークナイザー資産をまとめて取得します。モデル側が提供している場合は、IRODORI_TTS_MODEL_IDでHugging Faceのサブフォルダ版も指定できます。
TomoriBotへの登録
Section titled “TomoriBotへの登録”/providersで 新しいカスタムエンドポイントを追加 を選びます。
- API互換性:
tts-clone endpoint_url:http://127.0.0.1:8013
保存したエンドポイントを選択し、モデルドロップダウンから音声モデルを追加します。v4.1では以下の設定を推奨します。
- 音声ソースモード: 自動
- スクリプトマークアップ形式: 絵文字
自動では、同じIrodoriエンドポイントでTomoriBotの両方の音声モードを利用できます。エモーション表現も途切れません。
- ペルソナ > 音声で音声サンプルを割り当てたペルソナは、保存済みの参照音声を使ってボイスクローニングします。
- ペルソナ > 音声でボイスデザインプロンプトを設定したペルソナは、保存済みの自然言語プロンプトをIrodoriのキャプション条件として使用します。
参照音声によるボイスクローニングだけを使いたい場合は、音声ソースモードで従来どおり音声クローンを選択しても構いません。
登録すると、エンドポイントはすぐに有効になります。今後、音声エンドポイントを切り替える場合にのみ/providersを使用します。
ペルソナ音声のセットアップ
Section titled “ペルソナ音声のセットアップ”ボイスクローニング
Section titled “ボイスクローニング”- 背景音楽のない、1人の話者による10〜20秒のクリアな日本語の音声クリップを準備します。
/configを実行し、モデル > TTSパラメーターと音声でクリップをアップロードします。/configを実行し、ペルソナ > 音声でペルソナと音声サンプルを選択します。
Irodori v4.1は旧v2より長い参照条件に対応していますが、単純な長さよりも音声の品質のほうが重要です。
VoiceDesign
Section titled “VoiceDesign”/configを実行し、ペルソナ > 音声を開きます。- ペルソナを選択します。
- 希望する声質や話し方を自然言語で記述します。
TomoriBotはこのプロンプトをinstructとして送信し、Irodoriラッパーがv4.1のcaption条件に変換します。ボイスデザインでは参照音声は不要です。
TomoriBotはTTSへ送信する前にDiscordのカスタム絵文字構文を削除します。script_markup: emojiでは、Unicode絵文字をIrodoriのテキスト条件用に保持します。
Sway Samplingで高速化
Section titled “Sway Samplingで高速化”デフォルトは高品質寄りの40ステップlinear samplingです。レイテンシを下げたい場合は、ステップ数を減らしたSway Samplingを試せます。
$env:IRODORI_NUM_STEPS = "6"$env:IRODORI_T_SCHEDULE_MODE = "sway"$env:IRODORI_SWAY_COEFF = "-1.0"品質と速度のトレードオフがあるため、常用する前に使用するチェックポイントと音声で確認してください。
インストールスクリプトが簡単になった理由
Section titled “インストールスクリプトが簡単になった理由”以前のTomoriBotインストーラーはIrodoriのpyproject.tomlにパッチを当て、dacvaeを手動インストールし、古いv2時代のIrodoriコミットを固定していました。当時のパッケージ構成では必要な回避策でしたが、現在のIrodoriでは適切ではありません。
現在はサイドカー専用のpyproject.tomlを用意し、アップストリームと同じuvベースのバックエンド構成を使います。再現可能なインストールのためIrodoriとdacvaeの既知コミットは固定しますが、インストール時にアップストリームのソースコードを書き換えることはありません。
| 変数 | デフォルト値 | 目的 |
|---|---|---|
IRODORI_TTS_MODEL_ID | Aratako/Irodori-TTS-v4.1-Small | Hugging Faceモデル、または対応するrepo/subfolder指定 |
IRODORI_TTS_CHECKPOINT | 未設定 | 任意のローカル.pt / .safetensorsチェックポイント。設定時はHugging Faceモデルより優先 |
TOMORI_TTS_HOST | 127.0.0.1 | サーバーのバインドアドレス |
TOMORI_TTS_PORT | 8013 | サーバーポート |
IRODORI_MODEL_DEVICE | auto | モデルデバイス(auto、cuda、cpu、mps、xpu) |
IRODORI_CODEC_DEVICE | auto | コーデックデバイス |
IRODORI_MODEL_PRECISION | CUDAではbf16、それ以外はfp32 | モデル精度 |
IRODORI_CODEC_PRECISION | fp32 | コーデック精度 |
IRODORI_COMPILE_MODEL | false | Irodoriモデルでtorch.compileを有効化 |
IRODORI_COMPILE_DYNAMIC | false | コンパイル時にdynamic shapesを有効化 |
IRODORI_NUM_STEPS | 40 | Euler samplingのステップ数 |
IRODORI_T_SCHEDULE_MODE | linear | サンプリングスケジュール(linear / sway) |
IRODORI_SWAY_COEFF | -1.0 | sway使用時の係数 |
IRODORI_CFG_SCALE_TEXT | 3.0 | テキスト条件のguidance scale |
IRODORI_CFG_SCALE_CAPTION | 3.0 | Caption / ボイスデザイン条件のguidance scale |
IRODORI_CFG_SCALE_SPEAKER | 5.0 | 参照話者条件のguidance scale |
IRODORI_MAX_REF_SECONDS | チェックポイント側のデフォルト | 参照音声長の任意上限 |
TOMORI_TTS_MAX_TEXT_CHARS | 1000 | 1リクエストあたりのテキスト長上限 |