Text-to-Speech(ローカルエンジン)
TomoriBotは、音声合成をカスタムエンドポイント機能として扱います。ローカルエンジンはボットの外部でHTTPサーバーとして動作しPOST /synthesizeを実装します。クローンエンジンはテキストに加えて設定済みの参照音声サンプルを受信し、ボイスデザイン対応のエンジンは自然言語による指示も受信できます。
利用可能なエンジン
セットアップの流れ
- 上記のカードからエンジンを1つ選び、
servers/tts/にあるそのラッパーをセットアップします。 /providersで新しいカスタムエンドポイントを追加を選び、API互換性にtts-cloneを使用します。- 保存したエンドポイントを選択し、モデルのドロップダウンを使ってその音声モデル、音声ソースモード、スクリプトマークアップ形式を追加します。
/config> モデル > モデルの切り替えを開き、登録済みの音声モデルを選択します。
ペルソナ音声の流れ
クローンエンジンの場合、ペルソナごとに1つの音声サンプルを追加して割り当てます。
- 背景音楽のない、1人の話者による10〜20秒のクリアなクリップを準備します。
/configでモデル > TTSパラメーターと音声を開き、サンプルをアップロードします。任意の音声形式を使用できます。TomoriBotはそれをモノラルのWAVに変換します。- エンジンにとって有用な場合は、対応する文字起こしを提供します。Fish S2 Proは保存された参照文字起こしをクローンリクエストに転送し、VoxCPM2はより高忠実度なUltimate Cloningのためにこれを使用します。
/configでペルソナ > 音声を開き、ペルソナと音声サンプルを選択します。
Qwen3-TTS、MOSS-VoiceGenerator、IrodoriTTS、またはVoxCPM2のボイスデザインの場合は、音声サンプルを使わず、/configのペルソナ > 音声を使ってペルソナのための自然言語による声の説明を保存してください。CosyVoice 3は参照サンプルを使ったCloneモードを採用しており、voice_instructionsを通じてその場限りの発話方向にも対応します。
ElevenLabsのユーザーは、/providersで新しいプロバイダーを追加とElevenLabsを選んでください。これにより、音声と文字起こしのエンドポイントが一緒に登録されます。
TomoriBotは、合成の前に生成する音声スクリプトから:pepega:や<:pepega:123456789012345678>のようなDiscordのカスタム絵文字構文を取り除きます。Unicode絵文字も、音声エンドポイントが絵文字マークアップを使用しない限り取り除かれます。この絵文字マークアップはIrodoriTTS向けに意図されたものです。角括弧タグは、Chatterbox TurboやFish S2 Proのようなエンドポイントでスクリプトマークアップ形式がブラケットタグに設定されている場合に保持されます。
VoxCPM2はプレーンのスクリプトマークアップ形式を使用します。そのボイスデザインと話し方の制御は、TomoriBotのinstructフィールドを経由し、VoxCPM2ラッパーがそれをモデル固有の括弧付き自然言語制御構文に変換します。
CosyVoice 3もプレーンのスクリプトマークアップ形式を使用します。文字起こし付きの参照はゼロショットクローンに、文字起こしなしの参照はクロスリンガルクローンに、voice_instructionsは指示条件付けの経路にそれぞれ対応付けられます。CosyVoiceの指示は発話全体に適用されるため、インラインの角括弧タグは取り除かれます。
エンジン比較
対応するすべてのサイドカーにわたる実測のレイテンシベンチマーク、音声サンプルの再生、詳細な機能マトリックスによる比較を並べて確認するには、**TTSエンジンの比較**を参照してください。