Irodori-TTSは、Aratako(Chihiro Arata)氏が2026年2月にGitHubとHugging Faceで公開した、日本語専用のオープンソース音声合成(TTS)モデルです。入力テキストに絵文字を挟むと、囁き・溜息・笑い・泣き声といった表現を音声に反映できます。
2026年9月27日に、約3.29Bパラメータの大型版Irodori-TTS-v4-Largeが公開されました。ただし、公式コードとGradio UIの既定モデルは引き続きv4.1-Smallです。v4-Largeはライセンスも異なり、MITではなくGoogleのGemma利用規約に従います。この記事では、GitHubのREADME・ソースコードと各モデルカードの記載をもとに、両モデルの違いと選び方、使い方、対応絵文字、商用利用の条件を整理します。
まとめ:Irodori-TTSの現行モデルと選び方の要点
- 迷ったら既定のv4.1-Small(2026年8月11日公開・約766M)を使います。MITライセンスで、公式評価の漢字の読み精度はv4-Largeより高い値です。
- v4-Large(2026年9月27日公開・約3.29B)は、声の説明文(キャプション)への追従と話者類似度でv4-Smallを上回ります。テキストエンコーダにGoogleのT5Gemma 2を使うため、Gemma利用規約と禁止用途ポリシーが適用されます。
- 対応絵文字は両モデルとも同じ45種です。同じ絵文字を重ねると効果が強まりますが、効き方は文脈によって揺れます。
- 参照音声は、1クリップより同一話者の短い発話を合計30秒ほど連結したほうが、話者類似度が大きく上がります(公式評価)。
- 1回の生成で作れる音声は30秒までです。長文は分割して生成します。
- どのモデルでも、本人の明示的な同意がない声の複製・なりすましや、人を欺く目的の音声生成はモデルカードの倫理制限で禁じられています。
Irodori-TTSの仕組みと現行モデル(2026年10月時点)
Irodori-TTSは、Flow Matching(Rectified Flow)で音声を生成するTTSです。READMEによると、アーキテクチャと学習設計はEcho-TTSをおおむね踏襲しています。生成対象は波形そのものではなく、音声コーデックDACVAEの連続潜在表現です。v2以降の公式チェックポイントは32次元のSemantic-DACVAE-Japanese-32dimを使い、48kHzの波形に復元します。入力できるのは日本語テキストだけで、英語には対応していません。
v1からv4-Largeまでのモデル一覧と公開日
| モデル | 公開日 | 規模 | 位置づけ |
|---|---|---|---|
| Irodori-TTS-500M(v1) | 2026-02-25 | 約500M | 初版・v2以降と互換なし |
| Irodori-TTS-500M-v2 | 2026-03-23 | 500M | 30秒固定長で学習 |
| Irodori-TTS-500M-v2-VoiceDesign | 2026-03-30 | 500M | キャプション専用 |
| Irodori-TTS-500M-v3 | 2026-05-12 | 500M | 長さ予測器を内蔵 |
| Irodori-TTS-600M-v3-VoiceDesign | 2026-05-31 | 600M | 参照音声+キャプション |
| Irodori-TTS-v4-Small | 2026-08-01 | 約766M | ベースとVoiceDesignを統合 |
| Irodori-TTS-v4.1-Small | 2026-08-11 | 同上 | 現行の既定モデル |
| Irodori-TTS-v4.1-Small-MF | 2026-09-12 | ― | 4ステップ生成の蒸留版 |
| Irodori-TTS-v4-Large | 2026-09-27 | 約3.29B | 大型版・Gemma利用規約 |
公開日はHugging Faceのリポジトリ作成日です。v4-Smallとv4.1-Small、v4-Largeには、それぞれ量子化版(-Quantized)が同じ日に公開されています。検索で見かける「v4.1-Anime」は、第三者(phasefield-audio)がv4.1-Smallをアニメ調の音声で追加学習した派生モデルです。同モデルのカードは、注釈を独自に付け直したため、キャプションや絵文字の効き方がベースモデルと異なる場合があると断っています。
v3からv4で変わった点
v4-Smallのモデルカードは、v3からの主な変更点を2つ挙げています。1つ目は、テキストとキャプションのエンコーダを、ゼロから学習したものからSB Intuitionsの日本語ModernBERT(modernbert-ja-310m)の微調整版に置き換えたことで、難しい漢字の読みを改善する狙いです。2つ目は、参照音声の上限を合計120秒まで広げ、複数のクリップを自動で連結できるようにしたことです。READMEは、これに加えてベースモデルとVoiceDesignの統合を挙げています。
読みの精度については、常用漢字の読みベンチマーク(Joyo Kanji Yomi Benchmark)の対象漢字Kana-CERが、v4.1-Smallのモデルカードによると8.49%(v3 VoiceDesign)から7.43%(v4-Small)、7.29%(v4.1-Small)へ下がりました。v4.1の更新は長さ予測器だけの再学習で、出力長を長く見積もりすぎることによる生成エラーを減らすためのものです。v4-Smallから乗り換える場合、コードの変更は要りません。カードには参考値としてSarashina2.2-TTSの論文値(7.83%)も載っていますが、参照音声の条件が違うため、順位付けには使えないと注記されています。
なお、READMEには「v1のチェックポイントと前処理は、v2/v3/v4と互換性がない」と明記されています。v1を動かすには、GitHubのv1タグのコードに戻す必要があります。
v4-Largeとv4.1-Smallの違いと選び方
v4-Largeは「v4.1-Smallの上位互換」ではありません。公式評価では、声の説明文への追従と話者類似度はv4-Smallとの比較で改善しています。漢字の読みはv4.1-Smallとの比較で劣り、ライセンスと必要なメモリも異なります。
v4-Largeの構成:3.29BパラメータとT5Gemma 2エンコーダ
v4-Largeのモデルカードによると、v4のアーキテクチャを約766Mから約3.29Bパラメータに拡大したモデルです。拡散Transformerは24層・2,048次元になり、参照音声のエンコーダも大きくなりました。最大の違いはテキストエンコーダで、ModernBERT-jaに代えて、Googleのgoogle/t5gemma-2-1b-1bのテキストエンコーダを微調整したものを、入力テキストとキャプションの両方で共有しています。長さ予測器は、v4.1-Smallと同じく本体を固定したあとで別に学習されています。参照音声は合計120秒まで、絵文字はv4.1-Smallと同じ45種に対応します。
公式ベンチマークで比べるv4-Largeの得意・不得意
| 評価項目 | v4.1-Small | v4-Large | 優位 |
|---|---|---|---|
| 常用漢字の読み正答率 | 93.42% | 92.80% | v4.1-Small |
| JSUTの文単位Kana-CER | 3.43% | 3.67% | v4.1-Small |
| キャプション追従(5点満点) | 4.2339(v4-Small) | 4.2991 | v4-Large |
| 話者類似度・参照約30秒 | 0.7521(v4-Small) | 0.7593 | v4-Large |
数値はすべてv4-Largeのモデルカードから引いたものです。読みの評価はParakeet版のJoyo Kanji Yomi Benchmarkで、v4.1-Smallのカードにある原版の数値とは直接比べられません。キャプション追従は、Coco-Nutの公開説明文2,890件から作った8,670クリップをGemini 3.6 Flashが1〜5点で採点したもので、v4-Smallとの差は+0.0652(95%信頼区間+0.0353〜+0.0955)です。改善がいちばん大きかったのは長い読み上げ文で、3.9851から4.1343に上がりました。カード自身が、人による大規模な試聴評価(MOS)は行っておらず、単一の自動評価器による軽量な比較だと断っています。
v4-Largeを動かすコマンドと量子化版のサイズ
v4-Largeを動かすコードは、2026年9月12日のコミット「Add MeanFlow distillation and v4-Large support」でmainブランチに入っています。READMEの本文はまだ「forthcoming(近日公開)」のままで、Large専用の手順は書かれていません。v4.1-Smallと同じinfer.pyに、--hf-checkpointでリポジトリ名を渡します。量子化版のモデルカードに載っている例は次のとおりです。
uv run --no-sync python infer.py \
--hf-checkpoint Aratako/Irodori-TTS-v4-Large-Quantized/int8-weight-only \
--model-precision bf16 \
--text "こんにちは、私はAIです。これは音声合成のテストです。" \
--no-ref \
--output-wav outputs/sample.wav
量子化しない重み(model.safetensors)はFP32で約13.2GBあります。infer.pyの既定精度はfp32で、--model-precision bf16を選べるのはCUDAかIntel XPUのデバイスだけです(inference_runtime.pyの実装)。Apple SiliconのMPSやCPUではFP32で読み込むことになるため、Largeを手元で試すならNVIDIA GPUと量子化版の組み合わせが現実的です。公式はVRAMの目安を示していません。
| v4-Largeのバリアント | 方式 | サイズ | 対応GPU |
|---|---|---|---|
| 量子化なし | FP32 | 約13.2GB | ― |
| int8-weight-only | W8A16 | 3,662 MiB | NVIDIA CUDA |
| int8-dynamic | W8A8 | 3,662 MiB | NVIDIA CUDA |
| int4-weight-only | W4A16 | 2,818 MiB | Ampere以降 |
| float8-weight-only | FP8重み | 3,665 MiB | Ada・Hopper・Blackwell |
| float8-dynamic | FP8重み・活性 | 3,659 MiB | Ada・Hopper・Blackwell |
インストールせずに試すなら、Hugging Face Spacesのv4-Large公式デモがあります(ZeroGPUで動作)。量子化の方式ごとの違い(重みだけか、活性値も量子化するか)は、LLM量子化の仕組みとGPTQ・AWQ・GGUFの違いで解説しています。
v4.1-Smallとv4-Largeの用途別選定基準
初めて使う場合と、商用サービスに組み込む場合は、v4.1-Smallを選びます。読みの誤りは聞き手にすぐ気づかれる欠点で、v4-Largeは2つの読み評価の両方でv4.1-Smallを下回っています。MITライセンスなので、Gemma利用規約の禁止用途を利用者に引き継ぐ手当ても要りません。
v4-Largeが向くのは、キャプションで声を設計する比重が大きく、長い文で説明文どおりの声を出したい場合と、手元に30秒以上の参照音声があって話者の似せ方を詰めたい場合です。採用前に、自社の原稿で読み間違いが増えないかを試聴で確かめてください。
絵文字スタイル制御:対応45種と効き方
入力テキストの中で効かせたい位置に絵文字を置くと、話し方・感情・非言語音(笑い、咳、呼吸音など)が生成音声に反映されます。モデルに同梱のEMOJI_ANNOTATIONS.mdには45種が載っており、同じ絵文字を何度か重ねると効果を強められると説明されています。v4-Smallのカードに載っている例文は次のとおりです。
あははっ🤭、それ本当に言ってるの?…😮💨まぁ、君らしいけどね。
ゲホッ、ゲホッ🤧…ごめん、少し休ませて。😭今日はもう無理みたい。
用途別の主な対応絵文字
| 絵文字 | 意味 | 分類 |
|---|---|---|
| 😊 | 楽しげに、嬉しそうに | 感情 |
| 😭 | 嗚咽、泣き声、悲しみ | 感情 |
| 😠 | 怒り、不満げに、拗ねながら | 感情 |
| 😲 | 驚き、感嘆 | 感情 |
| 😰 | 慌てて、動揺、緊張、どもり | 感情 |
| 🫣 | 恥ずかしそうに、照れながら | 感情 |
| 👂 | 囁き、耳元の音 | 話し方 |
| 🫶 | 優しく | 話し方 |
| ⏩ | 早口、急いで | 話し方 |
| 🐢 | ゆっくりと | 話し方 |
| 😪 | 眠そうに、気だるげに | 話し方 |
| 📖 | ナレーション、独白 | 話し方 |
| 🤭 | 笑い(くすくす、含み笑い) | 非言語音 |
| 😮💨 | 吐息、溜息、寝息 | 非言語音 |
| 🤧 | 咳き込み、くしゃみ、咳払い | 非言語音 |
| 🥱 | あくび | 非言語音 |
| 🎵 | 鼻歌 | 非言語音 |
| ⏸️ | 間、沈黙 | 間・音響 |
| 📞 | 電話越しのような音 | 間・音響 |
| 📢 | エコー、リバーブ | 間・音響 |
表はv4.1-Smallに同梱の一覧から20種を抜き出したものです。残りの25種(リップノイズ、唾を飲み込む音、舌打ち、相槌、酔った話し方など)は、Hugging FaceのEMOJI_ANNOTATIONS.mdで確認できます。
絵文字制御が安定しない場合の入力調整
モデルカードの制限事項には「絵文字制御の効果は文脈によって変わり、常に一貫するわけではない」とあります。学習データの絵文字注釈は人手ではなく、Qwen3-Omni-30B-A3B-Instructを微調整したモデルで自動付与されたものです。狙った表現が出ないときは、次の順で試すと原因を切り分けやすくなります。まず同じ絵文字を2〜3個重ねます。次に、カードの例文のように「ゲホッ」「あははっ」といった擬音を本文に書き添えます。最後に--seedを固定し、--num-candidatesで複数の候補を一度に生成して聞き比べます。
声の作り方:キャプション・参照音声・話者の固定
キャプションだけで声を設計するVoiceDesign
v4系では、--captionに声の説明文を渡し、--no-refを付けると、参照音声なしで声質と話し方を指定できます。v4-Smallのカードには、同じシードのままキャプションを「落ち着いた大人の男性。フォーマルな場で…」から「若く元気な女性の声。カフェの店員のように…」に替えたサンプルが並んでおり、説明文だけで話者像が変わることが分かります。カードの例はいずれも日本語の文章です。v4-Largeのカードによると、学習データのキャプションは、Qwen3-Omni-30B-A3B-Instructを微調整したモデルで付与したあと、Qwen3.5-35B-A3Bで言い換えて整えたものです。
参照音声によるボイスクローンは合計30秒が目安
--ref-wavに参照音声を渡すと、追加学習なしでその声に寄せて読み上げます(ゼロショットのボイスクローン)。v4ではこの挙動が大きく変わりました。1クリップだけの参照ではv3より話者類似度が下がる一方、同一話者の短い発話を連結して長くすると大きく伸びます。JVSコーパスの100話者を使った公式評価(v4-Smallとv4-Largeのモデルカード)は次のとおりです。
| 参照音声の長さ | v3 VoiceDesign | v4-Small | v4-Large |
|---|---|---|---|
| 1クリップ | 0.6782 | 0.6610 | 0.6711 |
| 約30秒 | ― | 0.7521 | 0.7593 |
| 約60秒 | ― | 0.7646 | 0.7700 |
| 120秒 | ― | 0.7753 | 0.7788 |
数値はCAM++による話者類似度(コサイン)です。v4-Largeはどの長さでもv4-Smallを上回りますが、差は0.004〜0.010にとどまります。どちらのモデルも改善の大半は約30秒の時点で得られており、カードは「可能なら約30秒以上のきれいな参照音声」を推奨しています。複数のファイルを--ref-wavsで渡すと入力順に連結され、上限の120秒で切り詰められます。学習時の連結方法に合わせ、1本の長い録音より、同じ話者の短いクリップを複数渡す使い方が推奨されています。1本の長い録音を渡した場合の効果は評価されていません。
参照音声とキャプションを併用するときの注意
想定されている使い方は、参照音声で声の土台を決め、キャプションで感情・話し方・環境を指示する形です。カードの制限事項は、両者が矛盾すると音質が不安定になったり、片方の条件がもう片方を上書きしたりすると警告しています。たとえば参照音声が低い男性の声なのにキャプションに「若い女性」と書くと、指示が衝突します。参照音声の声質を保ちたい場合は、キャプションを感情や場面の指示に絞ってください。
Speaker Inversion・LoRAによる話者の固定
毎回参照音声を渡す代わりに、話者を学習して固定する方法が2つあります。Speaker Inversionは、本体を凍結したまま少数の話者埋め込みトークンだけを学習し、.speaker.safetensorsファイルを出力します。推論では--ref-embedでこのファイルを渡し、学習に使ったものと同じベースモデルと組み合わせます。LoRAはconfigs/train_v4_small_lora.yamlを使い、既定では拡散部の注意層を対象に学習します。できたアダプタは--lora-adapterで、マージせずに読み込めます。どちらの方法も、まずprepare_manifest.pyでHugging FaceのデータセットからDACVAE潜在とJSONL形式のマニフェストを作るところから始めます。2026年10月時点で、公式が用意している話者固定用の設定ファイルはv4-Small向けだけです。
インストールから音声生成までの手順
公式リポジトリは、Python 3.10以上とパッケージ管理ツールuvを前提にしています。掲載コマンドはBash向けの記法です。WindowsのPowerShellで実行する場合は、複数行のコマンドを改行継続記号のバックスラッシュを除いて1行にまとめてください。PyTorchのバックエンドはextraで選びます。NVIDIA GPUならcu128(CUDA 12.8)、AMDならrocm、Intel GPUならxpu、GPUがない環境やmacOSならcpuを指定し、複数のextraは同時に指定できません。
git clone https://github.com/Aratako/Irodori-TTS.git
cd Irodori-TTS
uv sync --extra cu128
同期した後はuv run --no-syncで実行します。--no-syncを付けないと、選んだextraを外した状態で環境が同期し直されるためです。次のコマンドは、Hugging Faceからv4.1-Smallを取得し、参照音声の声で読み上げます。実行前に、path/to/reference.wavを利用許諾のある参照音声ファイルの実際のパスに置き換えてください。
uv run --no-sync python infer.py \
--hf-checkpoint Aratako/Irodori-TTS-v4.1-Small \
--text "こんにちは、私はAIです。これは音声合成のテストです。" \
--ref-wav path/to/reference.wav \
--output-wav outputs/sample.wav
参照音声を使わずにキャプションで声を作る場合は、--ref-wavを外し、--no-refと--captionを付けます。v4系は出力の長さを自動で予測するので、--secondsは要りません。長さを変えたいときは--duration-scaleを使い、1より大きい値で長く、小さい値で短くなります。
1回の生成は30秒まで:長文を読ませるときの分割
推論ランタイム(irodori_tts/inference_runtime.py)は、生成する音声の長さを0.5秒から30秒の範囲に収めます。長さ予測器が30秒を超える長さを予測しても、--secondsで長い値を指定しても、30秒に切り詰められます。infer.pyにはこの上限を変える引数がありません。ナレーションや記事の読み上げのような長文は、句点や段落で区切って1回30秒以内に収め、生成した音声を後でつなぎます。アプリから使う場合は、長文を自動で分割するIrodori-TTS-Server(後述)を使うと、分割処理を自分で書かずに済みます。
Gradio Web UIの起動と用途別の使い分け
生成操作をブラウザで行うなら、同梱のGradio UIを使います。リポジトリのフォルダでuv run --no-sync python gradio_app.py --server-port 7860を実行し、ブラウザでhttp://localhost:7860を開きます。VoiceDesign版はuv run --no-sync python gradio_app_voicedesign.py --server-port 7861で起動し、http://localhost:7861を開いてください。前者は参照音声のクローンとSpeaker Inversion用、後者はキャプションを使うVoiceDesign用です。どちらも既定のモデルはv4.1-Smallで、チェックポイント欄にAratako/Irodori-TTS-v4-Largeなどのリポジトリ名を入れると切り替えられます。インストールせずに試したい場合は、Hugging Face Spacesのv4.1-Small公式デモが使えます。
OpenAI互換APIとして組み込むIrodori-TTS-Server
アプリから呼び出す場合は、開発者が別リポジトリで公開しているIrodori-TTS-Serverを使います。OpenAIのText-to-Speech APIと同じPOST /v1/audio/speechを提供し、wav・mp3・flac・opus・aac・pcmの各形式で音声を返します。公式READMEでは、ローカルPython環境で圧縮音声形式を扱うための要件としてFFmpegを挙げています。長文の自動分割、voicesフォルダに置いた参照音声の呼び出し、リクエストごとのLoRA読み込み、Bearerトークン認証にも対応しています。既定で読み込むのはv4.1ではなくv4-Smallです。ほかのモデルに切り替えるときは、環境変数IRODORI_HF_CHECKPOINTで指定します。2026年10月14日時点で、サーバーのREADMEが例示しているのはv4-Small・v4.1-Small-MF・量子化版で、v4-Largeの記載はありません。
# Irodori-TTSとは別に、サーバー用リポジトリを導入します。
# 以下はIrodori-TTSフォルダ内から実行する例です。
cd ..
git clone https://github.com/Aratako/Irodori-TTS-Server.git
cd Irodori-TTS-Server
uv sync --extra cu128
cp .env.example .env
# 許諾済みの参照音声を voices/sample.wav に配置してから起動します。
uv run --no-sync python -m irodori_openai_tts --host 0.0.0.0 --port 8088
サーバーを起動したまま、別のターミナルで次のリクエストを実行します。
curl http://localhost:8088/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{"model": "irodori-tts", "input": "こんにちは。これはIrodori-TTSのAPIテストです。", "voice": "sample", "response_format": "wav"}' \
--output speech.wav
OpenAIのPython SDKも、base_urlをこのサーバーに向ければそのまま使えます。なお、サーバーのREADMEは、実用的な速度で推論するにはCUDAかROCmのGPUを推奨しています。
Mac・ゆっくりMovieMaker4・ComfyUIからの利用(非公式を含む)
macOSで使えるのはApple Silicon搭載機だけです。公式の依存関係はtorch>=2.10.0を要求しますが、PyPIで配布されているtorch 2.10.0のmacOS向けホイールはarm64版だけで、Intel Mac向けはありません。Apple Siliconではcpu extraでPyPI版PyTorchを入れ、CPUかMPSで動かします。mlx-communityがv4.1-SmallのMLX変換版(fp16・8bit)も公開しています。
動画編集ソフトのゆっくりMovieMaker4(YMM4)は、設定の「音声合成」にIrodori-TTSの項目を持っています。YMM4のFAQによると、クローンしたフォルダのgradio_app.pyを指定すると、YMM4が音声合成のたびにGradioサーバーを起動・停止します。動作要件はCUDA対応のNVIDIA製GPUです。ほかに、ComfyUIのカスタムノード(kjranyone/comfy-IrodoriTTSなど)や、OpenAI互換とVOICEVOX互換のAPIを備えたデスクトップアプリIrodori-TTS Studioもありますが、いずれも第三者製です。Irodori-TTS Studioはv0.1.0のプレリリース段階で、リポジトリのREADMEにもmacOS版は実機で未検証と書かれています。
品質と速度の調整:ステップ数・CFG・MeanFlow・量子化
num-stepsとCFGの既定値
通常版(Rectified Flow)のステップ数は既定で40です。パラメータガイドは、最初に調整するのは--num-stepsで、ほかの値を触る前に既定値で試すよう勧めています。CFG(Classifier-Free Guidance)の強さは、条件ごとに別々に指定します。
| パラメータ | 既定値 | 上げたときの効果 |
|---|---|---|
--cfg-scale-text |
3.0 | 読みをテキストに寄せる |
--cfg-scale-caption |
3.0 | キャプションの指示に寄せる |
--cfg-scale-speaker |
5.0 | 参照話者の声に寄せる |
--cfg-guidance-mode |
independent | ― |
--cfg-min-t・--cfg-max-t |
0.5・1.0 | CFGをかける時刻の範囲 |
値を上げると条件への追従は強まりますが、上げすぎると不自然な音声になります。ガイドの推奨は、発音が怪しければ--cfg-scale-textを少し上げ、声が参照から離れるなら--cfg-scale-speakerか--speaker-kv-scaleを上げることです。--cfg-guidance-modeのindependentは条件ごとに無条件分岐を持つので最も柔軟ですが、有効な条件が増えるほどVRAMと計算量も増えます(モデル評価回数は1+条件数)。jointとalternatingは無条件分岐を1本にまとめ、評価回数を2倍に抑えます。このうちjointはすべての条件を同時に外すため、各スケールを同じ値にそろえる前提です。公式ベンチマークも、テキストとキャプションのCFGを3.0、話者のCFGを5.0、40ステップで測っています。
4ステップで生成するMeanFlow版
2026年9月12日に公開されたIrodori-TTS-v4.1-Small-MFは、v4.1-SmallをMeanFlowで蒸留した少ステップ版(モデルカード)で、既定では4ステップで生成します。CFGは蒸留の段階で取り込まれているため、推論時のCFG設定とSway Samplingは無視されます。公式評価では、通常版を4ステップに減らすと、約30秒の参照音声でのCAM++類似度が0.3835まで落ちます。これに対しMF版は4ステップでも0.7429を保ち、v4-Smallを40ステップで生成した場合の0.7521に近い値です。JSUTの文単位Kana-CERでも、通常版の4ステップが6.50%、MF版が3.78%、通常版の40ステップが3.43%でした。
生成速度を優先するならMF版、読みの正確さと話者類似度を優先するなら通常版の40ステップを選びます。通常版のまま速くしたい場合は、--t-schedule-mode swayと6ステップ程度を組み合わせるSway Samplingもあります。ただし公式はこれを実験的な機能と位置づけています。2026年10月時点で、v4-LargeのMeanFlow版は公開されていません。
v4.1-Small量子化版のサイズとGPU要件
| バリアント | 方式 | サイズ | 対応GPU |
|---|---|---|---|
| int8-weight-only | W8A16 | 872 MiB | NVIDIA CUDA |
| int8-dynamic | W8A8 | 872 MiB | NVIDIA CUDA |
| int4-weight-only | W4A16 | 813 MiB | Ampere以降(CC 8.0以上) |
| float8-weight-only | FP8重み | 873 MiB | Ada・Hopper・Blackwell |
| float8-dynamic | FP8重み・活性 | 906 MiB | Ada・Hopper・Blackwell |
量子化版を使うときは、--hf-checkpointにAratako/Irodori-TTS-v4.1-Small-Quantized/int8-weight-onlyのようにサブフォルダ名まで含めて渡し、--model-precision bf16を指定します。量子化の対象は、共有テキストエンコーダ・話者エンコーダ・拡散Transformer内の対応する注意層とMLPのLinear層です。長さ予測器などの非対応層はBF16で保持されます。動作確認はNVIDIA CUDAでのみ行われており、CPU・ROCm・Intel XPUでの動作は未検証とされています。汎用に推奨されているのはINT8 weight-onlyです(量子化版のモデルカード)。
ライセンスと商用利用の条件
コードはMITライセンスです。モデルの重みは、v4-Largeの公開でモデルによってライセンスが分かれました。
| モデル | 重みのライセンス | 商用利用 |
|---|---|---|
| v1〜v4.1-Small・MF版・Small量子化版 | MIT | 可 |
| v4-Large・Large量子化版 | Gemma利用規約 | 可(禁止用途あり) |
v4.1-Small以前のモデル:MITライセンス
Hugging Faceで公開されている公式チェックポイントのうち、v1の500Mからv4.1-Small-MF、Small系の量子化版までは、モデルカードにMITと明記されています。「初版のv1だけ非商用ライセンス」とする解説もありますが、v1のモデルカードは、重みを公開した2026年2月25日のコミット時点からMITです。著作権表示とライセンス文を同梱すれば、商用利用・改変・再配布ができます。
v4-Large:Gemma利用規約と禁止用途ポリシー
v4-Largeとその量子化版は、テキストとキャプションのエンコーダがgoogle/t5gemma-2-1b-1bから派生しているため、Gemma利用規約に従います。Gemma利用規約は商用利用を禁じていませんが、MITにはない義務があります。
- 重みを再配布するときは、「Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms」と書いたNOTICEファイルを同梱する(ホスティングしてサービス提供する場合は除く)
- 規約上の「配布」にはAPIやWeb経由でのサービス提供も含まれる。配布するときは、利用条件に禁止用途の制限を執行可能な条項として入れて利用者に通知し、受領者にGemma利用規約の写しを渡し、変更したファイルには変更した旨を目立つ形で表示する
- Gemma禁止用途ポリシーに従う。なりすましや出所を偽る生成に加え、性的に露骨なコンテンツ(ポルノや性的満足を目的とするもの。性的なチャットボットを含む)の生成も禁止されている
生成した音声(Output)について、Googleは権利を主張しないと規約に書かれています。性的に露骨なコンテンツの禁止はMITのSmall系にはない制約です。ただし、同ポリシーは科学・教育・ドキュメンタリー・芸術目的のコンテンツをこの禁止項目から除外しており、「成人向け」という区分だけで一律には判断できません。
全モデル共通の倫理制限と音声透かし
モデルカードは、ライセンスとは別に次の倫理上の制限を定めています。
- 声優・著名人・公人を含め、本人の明示的な同意なしに声を複製したり、なりすましたりしない
- 人を欺く目的のディープフェイクや、誤情報を広める音声を作らない
- 参照音声なしで生成した声が、偶然実在の人物に似る可能性がある(特定の個人を再現する意図で学習してはいない)
- 開発者は誤用について一切責任を負わず、利用する国や地域の法令に適合しているかは利用者が確認する
商用で使うときに、ライセンスより先に確かめるべきなのは参照音声の権利です。ボイスクローンに使う音声については、話者本人から合成音声への利用許諾を取っておく必要があります。生成された音声には、依存パッケージとモデルファイルがそろっていれば、ソニーが公開した音声透かしSilentCipherが自動で埋め込まれます。音声クローンを悪用した詐欺の手口と防御策は、ディープフェイク詐欺と音声クローンの手口の記事で扱っています。
Style-Bert-VITS2・GPT-SoVITSとの選び分け
「Style-Bert-VITS2 後継」という検索語で調べられることがありますが、Irodori-TTSはStyle-Bert-VITS2(開発者litagin02氏)の後継版ではありません。別の開発者による別系統のモデルです。2026年10月14日時点で、Style-Bert-VITS2の既定ブランチmasterの最終コミットは2025年8月24日です。
| 項目 | Irodori-TTS v4.1 | Style-Bert-VITS2 | GPT-SoVITS |
|---|---|---|---|
| 声の用意 | 参照音声・キャプション | 話者ごとに学習 | 数秒の参照・少量で微調整 |
| 学習データ | 不要(任意でLoRA) | 2〜14秒の音声複数+書き起こし | 任意 |
| 対応言語 | 日本語のみ | 日本語特化のJP-Extra版あり | 中・英・日・韓・広東語 |
| 表現の指定 | 絵文字・キャプション | スタイルベクトル | ― |
| コードのライセンス | MIT | AGPL-3.0 | MIT |
選ぶ軸は、声をどう用意するかです。特定のキャラクターの声を手元の音声で作り込み、毎回同じ声で安定させたいなら、Style-Bert-VITS2の学習が向いています。ただし、コードのライセンスはAGPL-3.0なので、改変してネットワーク越しにサービスを提供する場合のソース公開義務を事前に確認してください。日本語以外も読ませたいなら、2026年10月にV5を公開したGPT-SoVITSです。数十秒の参照音声やキャプションで声を用意し、笑い・溜息・囁きのような非言語表現まで入れたい日本語コンテンツなら、Irodori-TTSが第一候補になります。
Irodori-TTSを採用すべきでない場面
- 英語や多言語の読み上げが必要な場合(日本語のみ対応)
- 固有名詞や専門用語の多い原稿を、確認せずにそのまま読ませる運用(珍しい人名・専門用語・文脈で読みが変わる語はまだ誤読するとカードに明記されている)
- 本人の許諾がない声をクローンすることが前提の企画
- Intel MacやGPUのないPCだけで、大量の音声を短時間で作る必要がある場合
- 公式の自動評価だけで品質保証を済ませ、自社用途での人による試聴評価を行えない場合(公式の大規模な人手MOS評価は未実施)
誤読への対策として、読み間違えやすい語を意図した読みのかな表記に変える方法があります。ただし、読み上げの正確さは保証されないため、生成後に該当箇所を試聴してください。クラウドAPIを含めて方式から比較したい場合は音声合成AIの作り方と方式選定の記事を、音声認識と合成を組み合わせた業務システムの開発を検討している場合はAI音声認識システム開発の支援内容を参照してください。
よくある質問
Irodori-TTSは商用利用できますか?
できます。コードとv4.1-Small以前の公式の重みはMITライセンスです。v4-LargeはGemma利用規約に従い、商用利用はできますが、性的に露骨なコンテンツの生成などが禁止用途ポリシーで禁じられています。どのモデルでも、本人の明示的な同意がない声の複製・なりすましはモデルカードの倫理制限で禁じられているので、参照音声は話者本人の許諾を得たものに限ってください。
v4-Largeとv4.1-Smallはどちらを使えばよいですか?
多くの用途ではv4.1-Smallです。公式評価では、漢字の読み正答率はv4.1-Smallが93.42%、v4-Largeが92.80%で、v4.1-Smallのほうが正確です。v4-Largeは、キャプションへの追従と、約30秒・約60秒・120秒の参照音声での話者類似度で、公式評価ではv4-Smallを上回っています。v4.1-Smallとの直接比較値ではありませんが、声の設計や似せ方を詰めたい場合の試用候補になります。
GPUがなくても動きますか?
Apple Silicon搭載のMacやWindows・LinuxのPCなら、cpu extraでインストールすればCPUでも動きます。ただし、公式サーバーのREADMEは実用的な推論にはGPUを推奨しています。CPUで動かすなら、4ステップで生成するv4.1-Small-MFを使うとモデルの評価回数を大きく減らせます。Intel Macは、必要なPyTorch 2.10のホイールがないため公式手順ではインストールできません。
自分の声やキャラクター声で追加学習できますか?
できます。全体の微調整(train_v4_small.yaml)、LoRA(train_v4_small_lora.yaml)、話者埋め込みだけを学習するSpeaker Inversionの3つの方法が用意されています。複数GPUでの学習はtorchrunで実行します。
英語のテキストは読み上げられますか?
読み上げられません。v4.1-Smallとv4-Largeのモデルカードはどちらも、日本語テキストの入力のみに対応していると明記しています。英語を含む文章を扱う場合は、多言語に対応したモデルを併用してください。