
日本語に特化したローカル音声生成AI「Irodori-TTS」が公開されました。
好きな声を参照させて喋らせたり、絵文字で感情を付けたり、全てローカルPCで完結できます。
MITライセンスなので、商用利用も可能。
今回はこのIrodori-TTSのインストールや使い方をまとめます。
Irodori-TTSとは?
Irodori-TTSは、Flow Matchingベースの日本語音声合成モデルです。
テキストから音声を作れるだけでなく、参照音声を渡すとその声質やしゃべり方を真似るゼロショットのボイスクローンにも対応しています。
CLIでもGUI(Gradio)でも使えて、Hugging Faceのチェックポイントかローカルの学習済みモデルを読み込んで動かせます。
執筆時点でモデルはv3が最新、テキストで声を指定できるVoiceDesign版も使用可能です。
なお、生成音声にはSilentCipherという電子透かしが自動で埋め込まれます。
主な特徴
- 日本語に特化したローカル音声合成(Flow Matching方式)
- 参照音声からのゼロショット・ボイスクローン
- 絵文字を使った感情・声色のコントロール
- テキストのキャプションで声質を指定するVoiceDesign
- CLIとGradio Web UIの両方に対応
- Hugging Face/ローカルのチェックポイントを読み込み可能
- 48kHzの高品質な音声を出力(DACVAEの潜在表現を利用)
- 重みはMITライセンスで商用利用が可能

すぐ試したい方はDemo版も用意されています。


ライセンスと商用利用
現在公開されているすべてのモデルはMITライセンスで公開されています。
MIT Licenseは「著作権表示とライセンス文を残せば、自由に使っていい」という非常にゆるいOSSライセンスです。
ただLicenseとは別に、生成音声にはSilentCipherの電子透かしが入る点と、本人の同意なく声を模倣したりディープフェイクに使ったりするのは禁止されています。
詳細はモデルカードで最新の条件を確認してみてください。

Irodori-TTSのインストール
事前にpython・git・uvが必要です。
uvはPowerShell、またはPythonインストール後ならpipでも入れられます。
# powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# pip
pip install uvあとはリポジトリをクローンして、依存関係をインストールします。
NVIDIAのGPU(CUDA 12.8)ならこんな感じです。
git clone https://github.com/Aratako/Irodori-TTS.git
cd Irodori-TTS
uv sync --extra cu128GPUや環境によって末尾を変えます。
AMDなら–extra rocm、Intelなら–extra xpu、CPUだけ/Macなら–extra cpuです。
これでインストールは完了です。
Irodori-TTSの使い方
コマンドで生成する(CLI)
参照音声を真似て生成したい場合は、infer.pyにその音声を渡します。
主なオプションはこの3つです。
- –text:生成したい文章
- –ref-wav:参照音声のパス
- –output-wav:出力先のパス
・cmd
uv run --no-sync python infer.py ^
--hf-checkpoint Aratako/Irodori-TTS-500M-v3 ^
--text "今日はいい天気ですね。" ^
--ref-wav path/to/reference.wav ^
--output-wav outputs/sample.wav・PowerShell
uv run --no-sync python infer.py `
--hf-checkpoint Aratako/Irodori-TTS-500M-v3 `
--text "今日はいい天気ですね。" `
--ref-wav "path/to/reference.wav" `
--output-wav "outputs/sample.wav"例えば参照先にずんだもんの音声をセットして、生成してみるとこんな感じになります。
・参照音声
・出力
参照なしで生成する場合は、–ref-wavの代わりに–no-refを付けます。
・cmd
uv run --no-sync python infer.py ^
--hf-checkpoint Aratako/Irodori-TTS-500M-v3 ^
--text "今日はいい天気ですね。" ^
--no-ref ^
--output-wav outputs/sample.wav・Powershell用
uv run python infer.py `
--hf-checkpoint Aratako/Irodori-TTS-500M-v3 `
--text "今日はいい天気ですね。" `
--no-ref `
--output-wav outputs/sample.wavGradioで生成する
コマンドが面倒なときは、GradioのWeb UIが楽です。
以下で起動します。
uv run --no-sync python gradio_app.py --server-name 0.0.0.0 --server-port 78600.0.0.0で開けないときは、引数なしにすると127.0.0.1で開けます。
uv run --no-sync python gradio_app.py起動するとこんな画面が表示されます。
CheckpointはHuggingFaceのIDを入力すれば自動でダウンロードされます。
Aratako/Irodori-TTS-500M-v2, Aratako/Irodori-TTS-500M-v3など。

textに生成したい文章を入力します。

参照したい音声があれば、ここにアップロードします。

あとはGenerateボタンで生成できます。

SamplingやAdvancedで細かく調整もできるので、いろいろ試してみてください。

絵文字で感情を表現する
Irodori-TTSの面白いところは、文章に絵文字を入れると感情や声色に反映されることです。
特別な設定はいらなくて、textにそのまま絵文字を混ぜるだけです。
・えっ😲 それ本当🤔⏸️ ちょっと気になるな
・もう眠いよ😪 今日はこのまま🥱休もうか
・👂 内緒なんだけど、実はいいものを見つけたんだ。 🤭 誰にも言わないでね。
どの絵文字がどんな表現に対応するかは、モデルカードのEMOJI_ANNOTATIONS.mdにまとまっています。

VoiceDesignで声を指定する
VoiceDesignは声質を指定して生成できるものです。
「落ち着いた女性の声で」のように、テキスト(キャプション)で声質を指定して生成できます。
チェックポイントをVoiceDesign用に変えて、–captionを付けます。
・cmd用
uv run --no-sync python infer.py ^
--hf-checkpoint Aratako/Irodori-TTS-600M-v3-VoiceDesign ^
--text "こんにちは、私はAIです。" ^
--caption "落ち着いた女性の声で、やわらかく自然に。" ^
--no-ref ^
--output-wav outputs/voicedesign.wav・PowerShell用
uv run --no-sync python infer.py `
--hf-checkpoint Aratako/Irodori-TTS-600M-v3-VoiceDesign `
--text "こんにちは、私はAIです。" `
--caption "落ち着いた女性の声で、やわらかく自然に。" `
--no-ref `
--output-wav outputs/voicedesign.wav参照音声とキャプションを両方渡して、声を寄せつつ雰囲気を足すこともできます。
・cmd用
uv run --no-sync python infer.py ^
--hf-checkpoint Aratako/Irodori-TTS-600M-v3-VoiceDesign ^
--text "どうしてもっと早く教えてくれなかったの?" ^
--ref-wav path/to/reference.wav ^
--caption "深く傷つき、悲痛なトーンで弱々しく話す。" ^
--output-wav outputs/voicedesign_clone.wav・PowerShell用
uv run --no-sync python infer.py `
--hf-checkpoint Aratako/Irodori-TTS-600M-v3-VoiceDesign `
--text "どうしてもっと早く教えてくれなかったの?" `
--ref-wav path/to/reference.wav `
--caption "深く傷つき、悲痛なトーンで弱々しく話す。" `
--output-wav outputs/voicedesign_clone.wavVoiceDesignもGradioで使えて、専用のUIを起動できます。
uv run --no-sync python gradio_app_voicedesign.py --server-name 0.0.0.0 --server-port 7861テキストにセリフ、キャプションに声やスタイルを入れるだけです。

参照音声を使用する場合はReference Audio Uploadの部分で取り込んでください。

あとは一番下にあるGenerateボタンで生成可能です。
主なパラメータの意味(Sampling / Advanced)
GradioのSampling・Advanced、CLIの各オプションで調整できます。
よく触るものだけ、どこをいじるとどう変わるかをまとめておきます。
| パラメータ | 既定 | どう変わるか |
|---|---|---|
| num-steps(生成ステップ数) | 40 | 多いほど品質が安定しやすい代わりに遅くなります。速さ優先なら減らす(粗くなることあり)。 |
| cfg-scale-text | 3.0 | 入力テキストへの忠実度。上げると内容・滑舌に忠実、上げすぎると硬く不自然になりがち。 |
| cfg-scale-speaker | 5.0 | 参照音声の声への似せ具合。上げるほど声が寄り、下げると自由度は増すが似なくなります。 |
| cfg-scale-caption | 3.0 | VoiceDesignのキャプション(声の指示)への忠実度。上げると指示どおりの声質に寄ります。 |
| duration-scale | 1.0 | 自動長さ推定時の長さ倍率。1より大きいと長め、小さいと短め。 |
| seconds | 自動 | 出力の長さを秒で直接指定。未指定なら自動で決まります。 |
| t-schedule-mode | linear | ノイズ除去の時間配分。swayにすると配分が変わり表情・品質が変化することがあります(強さはsway-coeffで調整)。 |
| truncation-factor | なし | 初期ノイズの強さ。0.8で平坦(安定・おとなしめ)、0.9でシャープ(メリハリ)。ばらつきを抑えたいとき。 |
| num-candidates | 1 | 一度に生成する候補数。増やすと良い1本を選べますがVRAMを多く使います。 |
| model-precision | fp32 | bf16にするとVRAM節約・高速化。品質差はわずかに出る場合あり。 |
基本は既定のままで大丈夫で、声が似ないならcfg-scale-speaker、指示どおりにならないならcfg-scale-textやcfg-scale-captionを少しずつ動かすのがわかりやすいです。
まとめ
Irodori-TTSは、ライセンス周りも緩く、生成していて普通に楽しいモデルです。
絵文字で感情を付けたり、VoiceDesignで声を作ったり、試すだけでもいろいろ遊べると思います。
ゲームの素材やリップシンク動画などいろいろなシーンで使えると思うので、興味がある方は試してみてください。
以上、Irodori-TTSの使い方を紹介しました。
参考になれば幸いです。
