【音声合成】Irodori-TTS-ServerをWindowsで使う方法(OpenAI互換の日本語TTS)

OpenAI互換のAPIで、ローカルに日本語の音声合成サーバーを立てられる「Irodori-TTS-Server」が公開されました。

リファレンス音声を渡して喋らせたり(ボイスクローン)、自分で作ったスクリプトからAPIでリクエストしたり自由にIrodori-TTSを使用できるみたいです。

今回はWindowsで、最小構成で動かすところまでを紹介します。

Irodori-TTS-Serverとは?

Irodori-TTS-Serverは、日本語音声合成のIrodori-TTSを、OpenAIのTTS APIと同じ形式で使えるようにしたサーバーです。

ツールやコードからこのサーバーのAPIを呼ぶだけでIrodori-TTSが使えます。

使うモデルはIrodori-TTS-500M-v3で、サーバーの初回起動時にHugging Faceから自動でダウンロードされます。

リファレンス音声を渡してその声に寄せるボイスクローンや、wav・mp3などの出力形式、長文の自動分割にも対応してるとのことです。

主な特徴

  • OpenAI互換のエンドポイント(/v1/audio/speech)で呼べる
  • リファレンス音声でボイスクローンができる
  • 出力はwav・mp3・flacなどに対応
  • 長文は自動で分割して合成してくれる
  • モデルが比較的軽めでローカルでも扱いやすい
GitHub – Aratako/Irodori-TTS-Server: OpenAI Text-to-Speech API compatible server for Irodori-TTS
OpenAI Text-to-Speech API compatible server for Irodori-TTS – Aratako/Irodori-TTS-Server

インストール(Windows)

必要なものはPython 3.10とuvです。

uvはPythonのパッケージ管理ツールで、入れていない場合は先に用意してください。

uv
uv is an extremely fast Python package and project manager, written in Rust.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

準備ができたら、任意のパスにリポジトリをクローンして依存関係をインストールします。

依存は.venvに入るので自身で作る必要はないみたいです。

git clone https://github.com/Aratako/Irodori-TTS-Server.git
cd Irodori-TTS-Server
uv sync --extra cu128
copy .env.example .env

GPUが無い場合は、cu128の代わりにcpuを指定すればCPUでも動かせます(ただし生成はかなり遅くなります)。

uv sync --extra cpu

インストールできたら、サーバーを起動します。

uv run python -m irodori_openai_tts --host 0.0.0.0 --port 8088

初回起動時にモデルが自動でダウンロードされるので、最初は少し時間がかかります。

こんな表示が出たら起動完了です。

Irodori-TTS-Serverが起動完了したターミナルの表示

起動できたら、別のターミナルから動作確認します。

curl.exe http://localhost:8088/health

ステータスが返ってくれば起動成功です。

curlで/healthを叩いたときのサーバー応答

使い方

例えばボイスクローンを生成したい場合、リファレンス音声をvoicesフォルダに置きます。

voices/
  sample.wav

あとは音声合成のエンドポイントに、喋らせたいテキストと使う声を指定してリクエストするだけです。

今回はサンプルボイスにずんだもんの音声をお借りしました。

WEB版VOICEVOX
VOICEVOXをWEB上で利用できるサイト | WEB版VOICEVOXの Main Page | ずんだもん、

Windowsのコマンドプロンプトはクォートの扱いが面倒なので、リクエスト内容はjsonファイルにして渡すと簡単です。

例えばbody.jsonを作って、以下の内容を書きます。

{
  "model": "irodori-tts",
  "input": "こんにちは。これはIrodori-TTSのテストです。",
  "voice": "sample",
  "response_format": "wav"
}

そのファイルを指定してリクエストします。

curl.exe http://localhost:8088/v1/audio/speech -H "Content-Type: application/json" -d '@body.json' --output speech.wav

成功すると実行したパスにspeech.wavが作られ、sampleの声でテキストを読み上げた音声になります。

生成は結構長くて2分半くらいかかりました。

音声はちゃんとずんだもんのボイスクローンが作れています。

Irodori-TTS-Serverはどんなことに応用できるか

OpenAIのTTS APIと互換なので、自分で作ったツールやスクリプトからAPIで接続して音声生成が行えます。

例えばLLMに台本作って貰いそこから音声作成したり、いくつかtxtファイル用意してバッチ処理したり。

音声生成の処理を自由に組めるのがメリットだと思うので、AIエージェントとかでやりたい処理作って貰うと、生成が捗るかもしれません。

まとめ

最初に公開されたIrodori-TTSもスクリプトで実行できるしGUIもあったので、個人的にはそこまで大きな違いがわかりませんでした。

AIによると、モデルを1回ロードして常駐できるので何回もスクリプトで実行するよりは速く処理できるみたいです。

あとOpenAI互換なので、すでにOpenAIのTTSを使ってるコードなら接続先を変えるだけでも使えるとのこと。

単純に選択肢が増えたので、自分のやりたいことに合わせやすくはなってると思います。

気になった方はぜひ試してみてください。

以上Irodori-TTS-Serverの使い方を紹介しました。

参考になれば幸いです。

タイトルとURLをコピーしました