メインコンテンツへスキップ
見出し画像

SillyTavern VOICEVOXとAPI接続で、しゃべるLLMを構築 OpenWebUIでも

    SillyTavernの記事を書くのもたぶんこれで一区切りですが、VOICEVOXとの連携でおしゃべりさせてみます。

    実際、これが一番ハマった。もう無理かと諦めかけた。


    環境のインストール

    はじめに

    SillyTavernはVOICEVOXとの連携ができるよと紹介されている記事をみつけたのはこちら。


    書いてあることは、単純なんですが。


    まず、はじめにに書かれていること。

    問題になるのがOpenWebUIやSillyTavernといった海外製のフロントエンドでは、日本でよく使われているTTSエンジンのVOICEVOXなどのAPIには対応していない、という点です。

    ようするに、単純にVOICEVOXを使うことはできないけど、やり方はあるってことです。


    そのやり方が、こちら。

    VOICEVOXなどのAPIをOpenAIのTTS API仕様に変換するソフトウェアを使います。
    ・Sunwood-ai-labs/voicevox-openai-tts
    ・nichiki/voicevox-openai-tts (上のfork版)

    ここにあります。

    これを動かせば、大丈夫ってことです。


    Dockerのインストール(未インストールの場合)

    インストールの手順ですが、大前提としてDockerが動く必要があります。

    Windows版はDocker Desktopを入れておけば良いので、こちらから。

    LLMを使ってみている人なら、OpenWebUIを試してみるのに、既に入っているのではないかいと。(うちはそうでした)



    voicevox-openai-tts のインストール

    まずは、git cloneでダウンロードします。C:\\ とか、適当なところで実行します。

    git clone https://github.com/nichiki/voicevox-openai-tts

    コピーしたフォルダに移動します。

    cd voicevox-openai-tts


    Docker Desktop を起動しておいて、Dockerのコンテナを追加します。

    VOICEVOXをCPUで動かす場合は、

    docker compose up -d

    GPUにメモリの余裕があるなら、GPUを使う方がいいので、

    docker compose -f docker-compose.gpu.yml up -d

    これで、voicevox-openai というコンテナが追加されて、動いているはずです。で、この中身が、openai_tts_api と voicevox_engine です。


    Docker Desktopの画面で確認できます。


    これで準備完了です。


    VOICEVOXを使う設定

    で、最初に紹介した記事には、OpenWebUIとSillyTavernでの設定のやり方が書かれていますが、記事はLinuxサーバの環境のせいなのかなんなのか、その通りでは動きませんでした。ここから解決した結果を書きます。


    どの声を使うかは、ID番号で指定するので、つぎのURLで確認しておきます。

    http://localhost:50021/speakers

    画像

    例えば、IDを4にすると、四国めたんのセクシーになります。


    ここも参考になります。


    まずは、OpenWebUIで試してみます。

    OpenWebUIの設定

    設定 → 管理者設定 → オーディオ に進みます。

    そして、

    画像

    テキスト音声変換エンジンを「OpenAI」に
    その下の、APIのアドレスに「http://host.docker.internal:8000/v1」です。


    上の記事では、例として、http://localhost:8000/v1 と書かれてますが、これでは動きませんでした。声のIDの確認はlocalhostで表示されるのに、APIは動きません。これに気づくまで、ドハマりしました。


    右のKeyは関係ないので、適当に何か入れておいてください。何か入れないと設定が保存できません。

    TTSボイスは「4」とか、声のIDを入れます。TTSモデルは「tts-1」のままでよいです。


    今度は、設定 → オーディオ から、

    画像

    TTS設定を、応答の自動再生を「オン」にすれば、LLMの回答をVOICEVOXが音声で読み上げてくれます。



    SillyTavernの設定

    拡張機能から、TTSのメニューを開きます。

    画像

    Select TTS Providerを「OpenAI Compatible」にして、
    EnabledとAuto Generationのチェックボックスをチェックします。

    あとは、好みに合わせてチェックします。


    そしてProvider Endpointを「http://host.docker.internal:8000/v1/audio/speech」とします。


    ここもhttpl://localhost:8000/v1/audio/speechでは動きませんでした。

    大体、SillyTavern自体が、httpl://localhost:8000/(http://127.0.0.1:8000/)で動いているのに、どういうこと?とは思っていましたが。


    Model:は「tts-1」のままで。

    Available Voicesは、今後使いそうなIDをカンマで並べておきます。そうすると、キャラクターの設定のときに、リストで表示されます。


    次にキャラクターとのチャットを表示した状態で拡張機能を選択します。

    画像

    Default Voiceと、自分の設定した名前と、キャラクターの名前が出てきます。

    ここに、それぞれの声のIDを振ればいいですが、自分のコメントは読まない設定にしているので、デフォルトだけ設定しておけば、キャラがその音声でしゃべります。

    もちろん、キャラにそれぞれIDを設定しておけば、キャラごとに設定できます。


    ちなみに、20は「もち子ノーマル」です。

    音声のデモはこちらで聞けます。



    これで、チャット画面でどんどんしゃべってくれます。

    ただし、毎回SillyTavernの起動のときには、Dockerも起動しないといけないことと、なんだかんだでVRAMを取り合いになるので、でかいLLMはきびしくなります。



    ではまた。

     
     

    Yuki

     
     
    最近はComfyUIで、メカニカルガールとかCyberpunkとか描いてます。

    あなたへのおすすめ