気の向くままに辿るIT/ICT/IoT
ハードウェア

Irodori-TTSでローカル音声生成AI on Linux/AMD Ryzen 7 8845HS PC

ホーム前へ次へ
ミニパソコンって?

Irodori-TTSでローカル音声生成AI on Linux/AMD Ryzen 7 8845HS PC

Irodori-TTSでローカル音声生成AI on Linux/AMD Ryzen 7 8845HS PC

2026/04/14
ボイスクローニングもできる日本語TTSモデルIrodori-TTS

 Ubuntu/AMD Ryzen 7 8845HS搭載マシンで音声合成モデルの1つIrodori-TTSによるテキスト/音声変換、ゼロショットボイスクローニングのローカル生成AIをCLIとWebUIなGUIでやってみた話。

経緯

 ふとAsterisk音声ガイドの音声を自作スマートスピーカーのOpen JTalkで使用中のmeiさんに変えてみようかと試しにスクリプトで全ての音声をオリジナルからmei_happyさんに変換、視聴してみたことが発端。

 既に使っている身としては、soxでピッチも変えてみたりしつつ、何れにせよ、これで十分良いかなと思ったものの、日本語(かつ標準語)のイントネーションなどはAsteriskオリジナルの方が、明らかに自然、ならば、AIでファインチューンとかできたら...と思いつつ、自身のAMD Ryzenマシンでamdgpuを使えるものをと探していた際にたどり着いた次第。

 1〜2年前のおすすめTTSは、なんかちょっと違うんだよねと思っていた中、Irodori-TTSって見かけたことなかったけど...と思ったら、それもそのはず、3〜10秒のサンプル音源からクローニングできるというアリババのQwen3-TTSの登場が今年1月、そのQwen3やQwen3.5をベースとしてファインチューニングされたのがIrodori-TTSらしく、まだ登場したてホヤホヤな模様。

 自身は、8年前にChainer/Pytorch/TensolFlow等を試したり、AIとは言い難いながらJulius/Open JTalkなスマートスピーカーを作り、5年前に自然言語処理系を、4年前にChatGPT3を、その間、断続的にOCRやOpenCVなどコンピュータビジョンを試してみたり。

 その時点では、これまでの進化はすごい一方、特に違和感のない流暢な日本語音声の生成や、音声に限らず、専門家でもエンジニアでもないエンドユーザーが気軽に試すっていうのは、言っても、まだまだ先の話かなと思っていました。

 そんな折、去年試した、AIエージェント、画像認識や画像生成AI、動画生成AIの存在やそのクオリティに驚かされ、そしてまた今回、テキストや極々短時間な音源サンプルで、はたまた、テキストとキャプションで、なんなら異なる国や地域の言語であっても変換できてしまうなどTTS/Text To SoundやSTT/Sound To Textも、こんなにも進化しているのかと、多方面での進化の著しさに、また、何より、4年と言わずとも2年前と比べても、人の介在もほぼなく、既にAIが自動でやってくれるようになっているとは...と、改めて驚かされました。

 こうなると自身の使い道においては、精度は十分過ぎるほど、ただ、自身のマシンだと、短文でも推論に1分少々はかかり、5〜6時間とは言え、300種超あるAsteriskの音源を変換する気にはなれないので、さておくことにしましたが。

Irodori-TTSとは

 Irodori-TTSは、RF-DiT/Rectified Flow Diffusion Transformer技術ベースの日本語テキスト-音声変換(TTS/Text To Speech)モデル。

 その技術と学習は、連続的な潜在空間を持つDACVAE(DAC/Descript Audio CodecのVAE/Variational Auto-Encoder/変分オートエンコーダバージョン)を採用したEcho-TTSにほぼ準拠しており、参照音声からのゼロショット音声クローン生成にも対応。

 このIrodori-TTSの特徴は、なんと言ってもプロンプト(=入力テキスト)に絵文字を併用することによる絵文字とその音響効果で、話者の話し方や感情、抑揚といった表現力を出力音声に持たせることができる点。

 今日現在、Irodori-TTSには、バージョン1であるAratako / Irodori-TTS-500Mに続きリリースされたAratako / Irodori-TTS-500M-v2とIrodori-TTS-500M-v2モデルを基にしたとされるAratako/Irodori-TTS-500M-v2-VoiceDesignがあります。

 Irodori-TTS-500M-v2-VoiceDesignに至っては、絵文字による音響効果に加え、サンプルとなる参照音源の代わりに(画像生成AI同様に)音声にしたいテキスト入力(プロンプト)、必要なら、どんな音声にしたいかを説明するキャプション(≒補足)を併せて、話者の口調を変化させたり、豊かな感情表現をももつ音声を生成することができるようになっています。

 生成される音声をいくつか聴いてみるとアニメのキャラクターやVTuberを主なターゲットにしている印象を受けましたが、もちろん、そうでない音声も生成でき、イントネーション含め、これだけ流暢で自然な日本語音声を生成できるものが、既に世にあるとは驚くばかり。

 Irodori-TTSがベースとしているアリババのQwen/Qwen3、2026年1月に登場した、そのQwen3-TTSは、日中韓語に対応するものながら、日本語としての精度は、まずまずながらも、そこまで高い評価ではない模様であることからしてIrodori-TTSによるファインチューンが秀逸ということなのでしょう。

 単発だと精度にばらつきがあるにしても、これは画像生成AI同様、バッチ数を上げることで精度の高いものが含まれる確率が上がります。

 複雑だったり、大きな矛盾のある文章を基にすると一貫した音声生成精度にならないとありますが、そりゃそうでしょうし、絵文字による感情表現も一貫性がないこともあるかもとのことですが、そこはご愛嬌。

 他のTTSと比べても、漢字には、強い方ではなく、ひらがなやカタカナに変換が必要だったりすることもあるかもとは言え、これは、欧米圏のように単語間にスペース区切りがない中、単一の漢字でも音訓だけでなく複数通りの読み方があるものもあり、熟語にしても同じ漢字の並びであっても読み方が違うケース、更には当て字まであったり、日本語等固有の難しさから当然、他より強くないとは言え、これだけいければ、十分なケースも多々あることでしょう。

 尚、日本語をターゲットとして作られたとはいえ、多言語化も視野にある気配、さらなる精度向上が期待できるのだとしたら、益々楽しみですね。

Irodori-TTSのインストール

ubuntu $ git clone https://github.com/Aratako/Irodori-TTS.git
ubuntu $ cd Irodori-TTS
ubuntu $ uv sync
ubuntu $

 Irodori-TTSのインストールは、NVIDIA GPUなら、Aratako/Irodori-TTSにある通り。

ubuntu $ cd path/to
ubuntu $ git clone https://github.com/Aratako/Irodori-TTS.git
ubuntu $ cd Irodori-TTS
ubuntu $ uv sync
ubuntu $ uv venv --python /usr/bin/python3
ubuntu $ source .venv/bin/activate
ubuntu $ uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.4
ubuntu $ uv pip install -r requirements.txt
ubuntu $

 自身は、AMD Radeon GPU、というか、内蔵iGPUなのでIrodori-TTSをROCmで動かす(Ubuntu編)に倣って、こんな感じ。

 というか、cmake、build-essentialと記憶にはありませんが、Pythonモジュールであり、「一時的に」Python仮想環境を作ることができるというuvも既にインストール済み、uv syncもしちゃいましたが。

 「一時的にPython仮想環境を作る」ため、PC再起動後も同じことをしたい場合には、uvコマンド部分については全て、都度改めて実行する必要がありますが、始まりも終わりも他との依存関係を考える必要もなく、作業が終われば、使用していたストレージ空間を全て開放できる点などがメリット。

Irodori-TTS CLI

 uv syncしてしまったのでAMD Radeonながら、NVIDIAのCUDAがインストールされており、齟齬があってどっちも使われないからでしょうか、uv runすると常にトロく野太い音声が生成され、.venv/bin/pythonにするとROCmが使われるようで、相応な音声が生成されました。

ubuntu $ export HSA_OVERRIDE_GFX_VERSION=11.0.3
ubuntu $ uv run python infer.py \
ubuntu $ .venv/bin/python infer.py \
ubuntu $ --hf-checkpoint Aratako/Irodori-TTS-500M-v2 \
ubuntu $ --text "おかけになった電話番号は使われちゃってます。" \
 
ubuntu $ --no-ref \
    or
ubuntu $ --ref-wav Reference_File.wav \
 
ubuntu $ --output-wav outputs/sample.wav
ubuntu $ pwd
~/path/to/Irodori-TTS
ubuntu $ ls outputs/sample.wav
sample.wav
ubuntu $ aplay outputs/sample.wav
...
ubuntu $

 というわけで自身は、uv runではなく、.venv/bin/pythonとして使用モデル、音声テキスト、参照先(指定なしなら--no-ref、ありなら--ref-wav 参照ファイルパスを含むwavファイル名)、出力パスを指定の上、スクリプトinfer.pyを実行。

 (infer.pyはIrodori-TTS/直下にあるので)このように指定した場合、音声ファイルsample.wavは、Irodori-TTS/outputs/以下に生成されます。

 尚、CLI/GUI何れにせよ、初回起動時は、モデルのダウンロード分、時間がかかります。

Irodori-TTS Web UI

 Irodori-TTS-500M-v2とIrodori-TTS-500M-v2-VoiceDesignには、それぞれ、ブラウザベースのWeb UIがあり、実行オプションの--server-nameは、127.0.0.1|localhostなら当該端末のみブラウザから、これを0.0.0.0とすれば、(ファイアウォール等でブロックされていない限り、)LAN内の他端末のブラウザからでもアクセスできるようになります。

 CLIと同じく、amdgpuな自身は、uv runではなく、.venv/bin/pythonで実行します。

ubuntu $ .venv/bin/python gradio_app.py \
ubuntu $ --server-name 0.0.0.0 --server-port 7860
Irodori-TTS-500M-v2用Web UI

 Irodori-TTS-500M-v2なら、こんな感じで起動してブラウザからIPアドレス|URL:ポートの恰好でアクセス。

 画面上部は、タイトル[Irodori-TTS Inference](推論)、モデル指定の[checkpoint]、デバイス名[Model Device]/精度[Model Precision]、デバイス名[Codec Device]/精度[Codec Precision]。

 その下段にモデル読み込み[Load Model]ボタンとモデル開放[Unload Model]ボタン、モデル状態[Model Status]。

 更に下段にテキスト入力欄、更に下段に参照音源アップロード[Reference Audio Upload]欄。

 その下段にサンプリング設定項目としてステップ数[Num Step]、出力する音声数[Num Candidates]、種[Seed]欄、その下段に[CFG Guidance Mode]、[CFG Scale Text]、[CFG Scale Speaker]。

 続いて下段にデフォルトで閉じている高度な設定[Advanced]、クリックで[CFG Scale Override]、[CFG Min T]、[CFG Max T]、[Context KV Cache]、[Max Text Len]、[Max Caption Len]、[Truncation Factor]、[Rescale k]、[Rescale sigma]。

 そしてその下段に音声生成ボタン[Generate]。

 続いて生成された音声用プレイヤー表示欄、実行ログ[Run Log]、生成時間等から成る[Timing]欄。

 gradio_app.pyはIrodori-TTS/直下にあるので、このように指定した場合、出力される音声ファイルは、Irodori-TTS/gradio_outputs/以下に生成されます。

ubuntu $ .venv/bin/python gradio_app_voicedesign.py \
ubuntu $ --server-name 0.0.0.0 --server-port 7861
Irodori-TTS-500M-v2用Web UI

 Irodori-TTS-500M-v2-VoiceDesignなら、こんな感じで起動。

 Irodori-TTS-500M-v2-VoiceDesignのWeb UIについては、ざっと見る限り、Irodori-TTS-500M-v2のWebUIと異なる項目は、参照音源[Reference Audio Upload]の代わりにVoiceDesignモデルの特徴である[Caption/Style Prompt]欄になっている点だけかと。

 尚、CLI/GUI何れにせよ、初回起動時は、モデルのダウンロード分、時間がかかります。

 gradio_app_voicedesign.pyはIrodori-TTS/直下にあるので、このように指定した場合、出力される音声ファイルは、Irodori-TTS/gradio_outputs_voicedesign/以下に生成されます。

備考

 想定していた使用目的からして自身としてはCLIで十分で、そんなCLIでは、nvtopコマンドやamdgpu_topで見ている限りにおいては、amdgpuも使われている模様ながら、Web UIでCPUやfp32以外に選択肢がないのは、amdgpuを使えていないっぽい?

 CLIでもWeb UIでも条件が同一なら、推論にかかる時間は、同じくらいですが...実はどっちもCPUのみでGPUは使われてない?

 ちなみに精度も一択でかつ、Ryzen 7 8845HS/Halk Pointではサポートされていないと思われるfp32...ですが、推論自体は正常に完了、音声も生成されています。

 ありがたし?

ホーム前へ次へ