環境
- irodori-tts-500m-v3
- Python
やりたいこと
Irodori-TTSはAratako氏が開発した日本語特化のローカル音声合成AIモデルである。
- 日本語に最強クラスの対応力: やっぱり日本人が作ったTTSしか勝たん
- 絵文字で感情をコントロールできる: テキスト中に絵文字を挿入するだけで声のトーンや感情表現が変わる
- 参考音声クローニング機能: 好みの参考音声を与えれば、その声質に近い音声を生成できる。たった10秒程度の音声データでも機能する
で、自分はOpen-LLM-VTuberを使って嫁を召喚したかった。
Open-LLM-VTuberにはOpenAI互換のTTS設定項目がある。ここにIrodori-TTSの互換APIを指定すれば、Open-LLM-VTuberのバックエンドとしてIrodori-TTSが使えるはずだ。
openai_tts: # Configuration for OpenAI-compatible TTS endpoints # These settings override the defaults in the openai_tts.py file if provided model: 'kokoro' # Model name expected by the server (e.g., 'tts-1', 'kokoro') voice: 'af_sky+af_bella' # Voice name(s) expected by the server (e.g., 'alloy', 'af_sky+af_bella') api_key: 'not-needed' # API key if required by the server base_url: 'http://localhost:8880/v1' # Base URL of the TTS server file_extension: 'mp3' # Audio file format ('mp3' or 'wav')
手順
探してみると有志の方がすでに互換APIを作ってくださっていたので、ありがたく使わせてもらう。
Dockerで起動したら、まずリファレンス音声を登録する。リファレンス音声は10秒程度でも十分だが長いほうが品質が良くなる傾向はあった。最大30秒なので注意。
curl -XPOST http://localhost:8880/v1/audio/voice_contents -F voice_id=myvoice -F "file=@ref.wav"
続いて音声を生成する。
curl http://localhost:8880/v1/audio/speech \ -H "Content-Type: application/json" \ -d '{ "model": "irodori-tts-500m-v3", "input": "おはようございます。", "voice": "myvoice" }' \ --output output.mp3
設定変更
.envでIrodori-TTSのデフォルトパラメーターを変更できる。自分の場合は多少時間かかっても品質向上したかったのでNUM_STEPSを増やした。
# Diffusionサンプリングのステップ数(デフォルト: 40、範囲: 1〜120) NUM_STEPS=60 CFG_SCALE_TEXT=4
V3を使う場合
V2とV3ではAPIに渡すパラメーターが異なり、元のリポジトリのままではV3が動作しない。自分でフォークしてV3対応させたので公開しておく。