コンテンツにスキップ

Text-to-Speech(ローカルエンジン)

キャラクターごとの料金を支払ったり、サードパーティの音声APIに音声をストリーミングしたりすることなく、マシン上で自然な音声メッセージやキャラクターの音声を直接生成します。

TomoriBotは音声をカスタムエンドポイント機能として扱います。ローカルエンジンはボットの外部でHTTPサーバーとして動作し、POST /synthesize を実装します。クローンエンジンはテキストと設定された参照音声サンプルを受け取り、VoiceDesign対応エンジンは自然言語の指示も受け取ることができます。

利用可能なエンジン

セットアップの流れ

  1. 上記のカードからエンジンを1つ選択し、servers/tts/ からそのラッパーをセットアップします。
  2. /providers で + 新しいカスタムエンドポイントを追加 を選択し、API互換性 tts-clone を使用します。
  3. 保存したエンドポイントを選択し、そのモデルドロップダウンを使用して音声モデル、音声ソースモード、およびスクリプトマークアップを追加します。
  4. /config > モデル > モデルの切り替え を開き、TTS (Voice Design) または TTS (Voice Clone) でエンドポイントを選択します。自動エンドポイントは両方の選択をアクティブにします。一方を解除しても他方は保持されます。

ホスト型の音声プロバイダーや個人設定については、音声:TTS & STT を参照してください。

ネットワークアクセス

TTSローカルサーバーはすべてデフォルトで 127.0.0.1 にバインドするため、同じマシン上のボットからしか接続できません。TomoriBotをDockerや別のマシンで実行する場合は、サーバー側で TOMORI_TTS_HOST=0.0.0.0 を設定し、ホストのアドレス(例:http://host.docker.internal:8015)でエンドポイントを登録してください。

各サーバーは独自のポート変数(CHATTERBOX_PORT、QWEN3TTS_PORT、IRODORI_TTS_PORT、FISH_S2_PORT、VOXCPM2_PORT、COSYVOICE3_PORT、MOSS_TTS_PORT)を読み込むため、1つの .env で複数のサーバーを同時に実行できます。bun run launch は起動するサーバーに .env を渡しますが、手動で起動したサーバーはシェルの環境変数のみを読み込みます。

サーバーには認証がありません。ポートに到達できる人は誰でもGPUで合成を実行できます。ループバック以外へのバインドは信頼できるネットワーク内に限定し、それより外へ公開するサーバーには認証付きリバースプロキシを前段に配置してください。

ペルソナボイス

音声クローンの場合、/config > モデル > TTSパラメーターと音声 でクリーンな単一話者のサンプルをアップロードし、ペルソナ > 音声 で割り当てます。推奨されるクリップの長さや文字起こしの要件については、エンジンのガイドを確認してください。

TomoriBotは最大130秒までのサンプルを受け入れ、モノラルWAVに変換します。アップロードのサイズ制限はデフォルトで10 MBです。SPEECH_SAMPLE_MAX_MB で変更できます。FLACなどの圧縮形式を使用すると、長いクリップをサイズ内に収めやすくなります。

音声デザインをサポートするエンジンの場合、ペルソナ > 音声 で音声の説明を保存します。ペルソナは説明とサンプルの両方を持つことができます。音声ソースの優先度によって、どちらの使用可能なソースを最初に試すかが選択されます。サポートされているモードとスクリプトマークアップについては、各エンジンのガイドを参照してください。

/config > 権限 で音声メッセージを有効にし、ペルソナに送信を依頼するか、/generate voice-message を使用して試してみてください。