VRCT-TTS: 多言語対応音声合成アプリケーション
VRCTとVOICEVOXエンジンを連携させ、リアルタイム翻訳された音声メッセージを高品質な音声で再生するデスクトップアプリケーションです。VOICEVOX(日本語)とgTTS(多言語)の両方のTTSエンジンに対応し、翻訳前と翻訳後の音声を個別に制御できます。
- バイリンガルUI: 英語・日本語の完全対応(設定即時切り替え)
- 翻訳前・翻訳後音声: 原文と翻訳文を別々のTTSエンジンで再生
- gTTS多言語サポート: 60以上の言語に対応
- デュアル出力対応: メイン・サブの2つのオーディオデバイスに同時出力
- リアルタイム音量・速度調整: スライダーで即座に調整
- ホスト別デバイス管理: オーディオドライバごとのデバイス分類
- リアルタイム通信: VRCTからの翻訳メッセージをリアルタイム受信
- トークン認証対応: VRCT側のWebSocketトークン認証(
?token=...)に対応。トークン未設定なら従来どおり接続 - 柔軟なTTSエンジン選択: 原文・翻訳文で異なるエンジンを使用可能
- 自動言語検出: メッセージの言語を自動判定してTTSエンジンを選択
- 即時自動保存: 設定変更時に自動保存(手動保存不要)
- 詳細設定: キャラクター、スタイル、デバイス、音量、速度を個別保存
- 言語設定の永続化: UIの言語設定も保存
- Python: 3.8以上
- VOICEVOX Engine: 別途インストールが必要(日本語音声合成用)
- OS: Windows(pyaudiowpatch使用)
git clone https://github.com/misyaguziya/VRCT-TTS.git
cd VRCT-TTSpip install -r requirements.txt- VOICEVOX Engineをダウンロード
- エンジンを起動(デフォルト:
http://127.0.0.1:50021)
python main.pydist\VRCT-TTS\VRCT-TTS.exeセットアップの流れ(接続 → 読み上げ対象 → 出力 → テスト)に沿った1カラムの縦レイアウトです。使用頻度の低い項目は折りたたみに収めてあります。配色・角丸は VRCT 本体に合わせています。
┌──────────────────────────────────────────┐
│ VRCT-TTS [接続ステータス] │ ← ヘッダー
├──────────────────────────────────────────┤
│ 接続 │
│ ・WebSocket サーバー URL │
│ ・▸ トークン / 詳細設定 (折りたたみ) │
│ ・[ WebSocket 接続 / 切断 ] (全幅ボタン) │
├──────────────────────────────────────────┤
│ 読み上げ対象 │
│ ・[✓] 翻訳前 (原文) エンジン選択 ▾ │
│ ・[✓] 翻訳後 (訳文) エンジン選択 ▾ │
├──────────────────────────────────────────┤
│ VOICEVOXの声 ※どちらかで VOICEVOX 使用時のみ表示 │
│ ・キャラクター選択 ・声のスタイル │
├──────────────────────────────────────────┤
│ オーディオ出力 │
│ ・出力デバイス(ホスト + デバイス) │
│ ・+ 2台目の出力先を追加 (折りたたみ) │
│ ・音量スライダー (0-100%) │
│ ・速度スライダー (0.5x-2.0x) │
├──────────────────────────────────────────┤
│ ▸ テスト再生 (折りたたみ) │
│ ・テキスト入力 │
│ ・gTTS 言語選択(テスト用) │
│ ・[ 再生 (VOICEVOX) ] [ 再生 (gTTS) ] │
│ ・[ 再生停止とクリア ] │
├──────────────────────────────────────────┤
│ ステータス表示 [言語切替] バージョン │ ← フッター
└──────────────────────────────────────────┘
- URL設定: VRCTのWebSocketサーバーURL(デフォルト:
ws://127.0.0.1:2231) - トークン設定: VRCT側でWebSocketトークン認証が有効な場合、「▸ トークン / 詳細設定」を開き、VRCTの「WebSocket設定」でコピーしたトークンを貼り付けます(
ws://host:port/?token=...形式の完全なURLをURL欄に直接貼り付けてもOK)。トークンが未設定なら従来どおりトークンなしで接続します - 接続管理: ワンクリックで接続・切断(ヘッダー右のステータス表示で状態を確認)
- メッセージ処理: JSON形式のメッセージを自動解析
- 翻訳前 (原文) / 翻訳後 (訳文): それぞれ再生のオン/オフと TTS エンジン(VOICEVOX / gTTS)を1行で設定
- どちらかで VOICEVOX を選ぶと「VOICEVOXの声」セクションが表示されます
- キャラクター選択: 利用可能な全キャラクターから選択
- スタイル選択: 選択したキャラクターの声質バリエーション
- 原文・訳文で共通の1つの声が使われます
- ホスト選択: オーディオドライバー別の出力先選択
- デバイス選択: 具体的な出力デバイスの指定
- 2台目の出力先: 「+ 2台目の出力先を追加」を開くと2つのデバイスへ同時出力(第2スピーカー有効化と連動)
- 音量制御: 0-100%のリアルタイム調整
- 速度制御: 0.5倍速-2.0倍速の再生速度調整(gTTSのみ)
- 折りたたみ内のテキスト欄・言語選択と再生ボタンで、接続なしに音声を確認できます
アプリケーションは config.json に以下の設定を自動保存します:
{
"speaker_id": 1,
"device_index": 0,
"device_index_2": 1,
"speaker_2_enabled": false,
"host_name": "All",
"host_name_2": "All",
"volume": 0.8,
"speed": 1.0,
"ws_url": "ws://127.0.0.1:2231",
"ws_token": "",
"gtts_lang": "English",
"source_tts_engine": "VOICEVOX",
"dest_tts_engine": "gTTS",
"play_source": false,
"play_dest": true,
"language": "English"
}VRCT-TTS/
├── main.py # メインアプリケーション(GUI)
├── voicevox.py # VOICEVOX Engine APIクライアント
├── voicevox_speaker.py # VOICEVOX音声再生クラス
├── gTTS_speaker.py # gTTS音声再生クラス
├── audio_player.py # オーディオデバイス管理・再生
├── config.py # 設定管理クラス
├── language.py # 多言語UI文字列定義
├── vrct_languages.py # VRCT対応言語マッピング
├── requirements.txt # Python依存関係
├── build.bat # ビルドスクリプト
├── VRCT-TTS.spec # PyInstallerビルド設定
└── fonts/ # UIフォント
└── NotoSansJP-VariableFont_wght.ttf
build.batまたは手動でのビルド:
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
pyinstaller --onedir --clean --name VRCT-TTS --noconsole main.py --add-data "./fonts:fonts"ビルド完了後、dist\VRCT-TTS\ フォルダに実行ファイルが生成されます。
{
"type": "SENT",
"message": "Hello world",
"src_languages": {"1": {"language": "English"}},
"dst_languages": {"1": {"language": "Japanese"}},
"translation": ["こんにちは世界"]
}- メッセージ受信: WebSocketからJSONメッセージを受信
- 言語判定: 原文・翻訳文の言語を識別
- エンジン選択: 設定に基づいてTTSエンジンを選択
- 音声合成: 選択されたエンジンで音声生成
- デバイス出力: 指定されたオーディオデバイスで再生
- 原文用エンジン: VOICEVOX(日本語)またはgTTS(多言語)
- 翻訳文用エンジン: gTTS(多言語)またはVOICEVOX(日本語)
- 個別制御: 原文・翻訳文の再生を個別にオン/オフ
- 音量調整: 全エンジン共通の音量制御
- 速度調整: gTTSの再生速度をリアルタイム変更
- 即座反映: スライダー操作で設定即座に適用
- ホスト分類: DirectSound、WASAPI、MMEなどドライバー別管理
- 自動選択: デバイス未選択時の自動選択機能
- 設定復元: 前回使用デバイスの自動復元
- VOICEVOX Engine: 必ず事前に起動しておく必要があります
- 音声ファイル: 一時的な音声データはメモリ内で処理されます
- ネットワーク: gTTSはインターネット接続が必要です
- パフォーマンス: 長時間の連続使用時はメモリ使用量にご注意ください
このプロジェクトはMITライセンスで提供されています。
使用ライブラリとその制約:
- VOICEVOX: 各キャラクターの利用規約に従ってください
- gTTS: Google Translate APIの利用規約に従ってください
- VOICEVOX: 高品質な日本語音声合成エンジンを提供
- gTTS: Google Translate APIによる多言語音声合成
- VRCT: VRChat翻訳ツールとの連携機能を提供