Susaki皆さん、こんにちは!
QAやテスト関連の情報発信を行っている「SusakiWorks」運営者のSusakiです。
テストエンジニアのMisakiです!
前回はSillyTavernで、AI秘書「Aya」のキャラクター設定までできましたね。



そうだね。
LINEみたいに会話できるようになったけど、やっぱり文字だけだと少しさみしい。
今回はAyaに「声」をつけていくよ!
Ayaさんがしゃべるんですか!
楽しみです!
前回までの設定
前回は、次の内容を紹介しました。
- 各種導入:Homebrew、Git、Node.js、SillyTavernのインストール
- キャラクター設定:ペルソナ(ユーザー側)と、AI秘書「Aya」の作成
- チャットUI設定:吹き出し形式でのチャット
まだの方は、先に前回の記事をご覧ください。


音声設定
SillyTavernには TTS(Text To Speech:文字読み上げ) の拡張機能が標準で入っていて、キャラクターの返信を音声で読み上げられます。
今回は、手軽な順に3段階で進めます。
| パターン | 音声 | 対応 | 特徴 |
|---|---|---|---|
| 1 | System音声 | 追加インストールなし | すぐ試せるが、声の選択肢は少なめ |
| 2 | VOICEVOX | 無料ソフトを導入 | 日本語が自然で、キャラクターボイスが豊富 |
| 3 | オリジナル音声 | 学習が必要 | 自分だけの声を作れる |
パターン① System音声設定
まずは何も追加せず、パソコンに最初から入っている音声で読み上げてみます。
System音声は、ブラウザの読み上げ機能を使います。Macの場合は、macOSの日本語音声が使えます。
画面上部の「拡張機能」(ブロックのアイコン)を開きます。


TTSの項目を開きます。
「Select TTS Provider」で System を選びます。
「Enabled」にチェックを入れます。
キャラクター(Aya)に使う声を選びます。(日本語の声を選びます。)


「Auto Generation」にチェックを入れると、返信のたびに自動で読み上げます。


これだけでしゃべりました!
でも、ちょっと機械っぽい声ですね。



そうなんだ。
まずは「音が出る」ことの確認用だね。
次は、もっと自然な日本語の声にしていくよ。
パターン② VOICEVOXの音声設定
VOICEVOXとは
VOICEVOXは、無料で使える日本語の音声合成ソフトです。
「ずんだもん」や「四国めたん」など、たくさんのキャラクターボイスが用意されていて、文字を入力すると自然な日本語で読み上げてくれます。
- 公式サイト:https://voicevox.hiroshiba.jp/
- Windows / Mac / Linux に対応
- ソフトを起動している間、裏で 音声合成用のAPIサーバー(ポート50021) が動きます。
SillyTavernからは、このAPIを呼び出して音声を作ります。


注意事項
利用規約について VOICEVOXで作った音声を公開するときは、「VOICEVOX:ずんだもん」のようなクレジット表記が必要です。
キャラクターごとに利用規約が違うので、ブログやYouTubeで使う前に必ず確認しましょう。
VOICEVOXの音声を設定するには
公式サイトからダウンロードしてインストールし、起動します。
ブラウザで次のURLを開きます。
http://127.0.0.1:50021/docs
「VOICEVOX Engine」のAPI一覧(Swagger UI)が表示されれば準備OKです。
SillyTavernには、VOICEVOXが標準では入っていません。
そのため、コミュニティ製のファイルを追加します。
SillyTavern本体のファイルを直接編集する方法なので、自己責任で行ってください。
1.VOICEVOX用のファイルをダウンロードします。
curl -L -o ~/SillyTavern/public/scripts/extensions/tts/voicevox_tts.js \
https://gist.githubusercontent.com/Akaneko-works/4286b411d735de4208f7a82b8f35e269/raw/
2.同じフォルダの index.js を開き、2か所に追記します。
ファイル冒頭のimportの並びに:import { VoiceVoxTtsProvider } from './voicevox_tts.js';
const ttsProviders = { の中に:VOICEVOX: VoiceVoxTtsProvider,
3.SillyTavernを再起動します。
※ SillyTavernを更新すると、この追記が消えることがあります。その場合は、もう一度追記してください。
※ ダウンロードするファイルは、Akaneko-works さんが公開しているコミュニティ製のものです。
(本記事の作成にあたり、作者の赤猫さんによる以下のnote記事を参考にさせていただきました。)
https://note.com/lef_works/n/n90a277564b6b
- 「拡張機能」→「TTS」を開きます。
- 「Select TTS Provider」で 「VOICEVOX」 を選びます。
- 「VOICEVOX Base URL」に「http://127.0.0.1:50021」を入力します。
- 「Enabled」、「Auto Generation」にチェックを入れます。
Auto Generationをオンにすると、返事が自動で読み上げられます。 - 「Audio Playback Speed」は1.00のままにしておきます。
1.00以外にすると、VOICEVOX側の速度と掛け算されて、意図しない速さになります。 - Ayaに使う声(話者)を選びます。
今回は、「琴詠ニア(ノーマル)」を選択しました。
VOICEVOX:琴詠ニア - 必要に応じて、「Voice Editor」で話す速さ(Speed)や声の高さ(Pitch)を調整します。
①各設定とVoicevoxのキャラクター


②Voice Editorは必要に応じて調整





Susakiさん、Misakiさん、お疲れ様です。
本日もよろしくお願いいたします。
わぁ!Ayaさんの声、すごく自然です!
VOICEVOX連携の「つまずきポイント」
実際に設定してみて、つまずいたところをまとめます。
つまずき①:VOICEVOXが起動していない
VOICEVOXのアプリを閉じると、APIサーバーも止まります。
音が出ないときは、まず http://127.0.0.1:50021/docs が開けるか確認しましょう。
つまずき②:「Invalid CSRF token」エラーが3回出る
音声を再生しようとしたら、次のエラーが3回続けて表示されました。
ForbiddenError: Invalid CSRF token. Please refresh the page and try again.
CSRF…?音声とは関係なさそうなエラーですね。



そう、ここがハマりどころだったんだ。
このエラーはVOICEVOXではなく、SillyTavern自身が出しているエラーなんだよ。
- 原因:VOICEVOXの接続先(Base URL)が間違っていて、VOICEVOXに送るはずのリクエストがSillyTavernに届いていた。
SillyTavernは、正しい手続きを踏んでいないリクエストを「不正なリクエスト」として断るので、このエラーになる - 3回出る理由:VOICEVOXとの通信は、失敗すると自動で3回までやり直す作りになっている。
- 対処:Base URLを、VOICEVOXのアドレス(
http://127.0.0.1:50021)に正しく設定し直す。
つまずき③:SillyTavernを分けたら音声設定が消えた
SusakiWorks用とは別プロジェクトで、SillyTavernを2つに分けて運用しました。
分ける前は設定が共通だったため、分けた後のSusakiWorks側ではTTSがオフになっていて、接続先も空になっていました。
SillyTavernを複数動かすときは、それぞれで音声設定が必要です。
このあたりは、つまづくと調査に時間がかかりそうですね。。。



そうだね。
ここは技術的なところなので、エラーメッセージをWebで検索して、類似事象の事例がないか調べたり、ClaudeやGeminiなどのAIに相談してみるのがいいね。
パターン③ オリジナル音声設定(概要紹介)
「既存のキャラクターボイスではなく、自分だけの声にしたい」という場合は、オリジナル音声を作れます。
今回は概要だけ紹介し、詳しい手順は別の記事でまとめる予定です。
学習用の音声を録音します。
雑音が少なく、はっきり話している音声が向いています。
⚠️ 注意事項
他人の声や、権利のある音声(アニメ・配信など)を無断で使うのはNGです。
自分の声か、使用許可のある音声を使いましょう。
学習には 「GPT-SoVITS」というオープンソースのツールを使います。
数秒〜数分ほどの音声からでも、その人らしい声を再現できるのが特徴です。
私の場合は、短い音声ファイルをつなぎ合わせ、20分弱の音声ファイルを用意しました。


GPT-SoVITSのAPIサーバーを起動して、SillyTavernとつなぎます。
conda activate GPTSoVits
cd ~/agents/gpt-sovits
python api_v2.py -a 127.0.0.1 -p 9880
SillyTavernのTTS設定で、Providerに「GPT-SoVITS-V2 (Unofficial)」を選び、接続先に http://127.0.0.1:9880 を設定します。
今回の音声設定のご紹介としては、「VoiceVox」での設定となるため、オリジナル音声の詳細な設定は、別途改めてご紹介したいと思います。
次はデータ投入に関する設定をご紹介します。



コメント