コンテンツにスキップ

音声: TTS & STT

TomoriBotは、Discordで話したり聞いたりすることができます。テキスト読み上げ (TTS) で音声応答を送信し、音声テキスト変換 (STT) で音声メッセージを会話コンテキストに書き起こします。

/providers で音声プロバイダーを選択するか、自分自身のGoogleまたはOpenRouter音声モデルを使用する場合は /personal providers を使用します。また、独自のハードウェア上でローカル音声モデルを実行することもできます。

Googleを追加すると、TTS(ボイスデザイン) にGemini Flash TTSが選択されます。OpenRouterを追加すると、TTS(ボイスクローン) に有料のFish S2.1 Proが選択され、そのスロットが空の場合にのみ TTS(ボイスデザイン) にSeed Audio 1.0が設定されます。OpenRouterはすでに選択されているGeminiやVertexのデザインを置き換えないため、両方のプロバイダーを同時にアクティブにしておくことができます。Seedが提供される前にOpenRouterを追加していた場合、Seedを選択するまでデザインスロットは空のままになります。OpenRouterキーを再度追加すると、意図的にクリアしたスロットを含め、空のデザインスロットにSeedが設定されます。Flash-Liteや無料のFishを使用するには明示的なモデル選択が必要であり、利用可否やプロバイダーのクォータが適用されます。いずれかのスロットを変更またはクリアするには、/config > モデル > モデルの切り替え を使用します。 個人の選択とオン/オフの切り替えは /personal config > モデル > モデルの切り替え にあります。一方の個人モードをオフにすると、もう一方がアクティブのまま、そのモードでサーバーの選択を使用できます。

選択と同じスコープのプロバイダーのAPIキーを使用してください。チャットのサブスクリプションだけではAPIアクセスは有効になりません。Geminiの無料API利用枠 にはプロジェクトクォータと利用要件があります。AI Studioでアクセス権を確認してください。無料のFishは別個のモデルコード fish-audio/s2.1-pro-free:free であり、明示的に選択する必要があります。「サーバーモデルのフォールバック」が有効になっている場合、個人の無料モデルが失敗してもサーバーの有料モデルの選択へフォールバックできます。

/config > ペルソナ > 音声 で 声を説明 を選択すると、最大1,000文字の説明を保存できます。モデルを選択する前に説明を記述できます。Fishまたはローカルの音声クローンモデルを使用するには、/config > モデル > TTSパラメーターと音声 で参照を追加し、ペルソナの「音声」ページで割り当てます。プロバイダーを変更しても両方の入力は保存されたままになります。ボイスデザイン または ボイスクローン を選択して優先度を設定します。優先した入力に一致するモデルや使用可能な声がない場合は、もう一方の保存された入力を使用できます。ページには、サーバーの選択に対してどのソースが有効かが表示されます。

短いセリフを入力するには /generate voice-message を実行するか、ペルソナにボイスメッセージを送信するよう依頼します。このコマンドは、1回限りの説明や参照のアップロードも受け付けます。

任意の model パラメーターを使用すると、このメッセージ用の互換性のある音声モデルまたはサーバーエンドポイントを選択できます。個人設定の項目には (個人のプロバイダー経由) と表示されます。保存済みのデフォルト設定は維持され、明示的に選択したモデルは生成に失敗しても別のモデルにフォールバックしません。通常のルーティングを使用する場合は空欄のままにしてください。

保存された説明はGeminiの音声IDを再利用します。編集するとそのIDは破棄されます。1回限りの説明では一時的なIDが作成され、生成後にbotによって削除されます。クリーンアップに失敗した場合は、その認証情報が再度使用されたときに再試行されます。クラッシュやあいまいなタイムアウトの後、管理者はプロバイダーのコンソールで音声を手動で削除する必要がある場合があります。 説明はエクスポートされたPNGやJSONのペルソナカードに含まれます。リモートの音声IDと参照の割り当ては除外されます。Googleは設計された音声IDをAPIプロジェクトに保存します。Geminiの参照音声による音声複製は、botが同意録音を収集できるようになるまで保留されます。

Seed AudioはGeminiとは仕組みが異なります。発話するたびに説明から声を構築するため、同じ説明でもメッセージごとに少し異なって聞こえることがあります。常に同じ声を維持したい場合は、Geminiまたは参照サンプルを使用してください。Seedは英語と中国語で最も効果的であり、1メッセージあたり最大2分の音声を生成するため、セリフは1,100文字で制限されます。また、説明、読み上げ指示、セリフは合計2,048文字を共有するため、説明が長いとセリフに使える文字数が少なくなります。収まらないセリフは送信前に拒否され、botからセリフを短くするよう求められます。 OpenRouterはSeedを音声の秒数単位で請求するため、Fishと比べて1分あたりおよそ10倍の費用がかかります。Geminiに切り替えるかスロットをクリアするには、/config > モデル > モデルの切り替え を使用してください。

個人の音声生成の失敗は、「サーバーモデルのフォールバック」設定とサーバー権限に従います。フォールバックが成功するとコマンドの受信メッセージに表示されます。プロバイダーは失敗した処理やキャンセルされた処理に対しても請求を行う場合があります。セリフや音声の制限は利用金額の上限を設定するものではありません。

ElevenLabs(クラウド、最も簡単)

Section titled “ElevenLabs(クラウド、最も簡単)”
  1. ElevenLabs からAPIキーを取得します。
  2. /providersを実行し、新しいプロバイダーを追加、ElevenLabsを選択して、キーを貼り付けます。このフロー:
    • ElevenLabs音声エンドポイントと文字起こしエンドポイントを登録します。
    • 両方のエンドポイントをアクティブ化します。
    • オプションで、すぐに1人のペルソナに音声を割り当てます。
  3. /config > ペルソナ > [音声] で追加のペルソナに音声を割り当てます。ElevenLabsボイスライブラリ でボイスを参照し、独自のクローンを作成することもできます。

/providersでElevenLabsを選択し、キーを更新する必要がある場合は常にエンドポイントを編集を選択します。

注:

  • 無料プランでは、既製の音声のみが機能します。プリメイドボイスリストを参照してください。
  • 音声メッセージを生成するときに文字数がカウントされます。無料枠には月ごとの制限があるため、ElevenLabsダッシュボードを監視してください。
  • 音声応答には/config > 権限のvoice_message_enabledが必要で、アクティブなペルソナには音声が割り当てられている必要があります。
  • /config > ペルソナ > [音声] を変更するには、サーバーでの [サーバーの管理] 権限が必要ですが、所有者はDMで引き続き使用できます。

/helpで、機能を選択し、次に音声を選択して、Discordの対話型ウォークスルーを実行します。

ローカルの音声クローンエンジン(セルフホスト)

Section titled “ローカルの音声クローンエンジン(セルフホスト)”

セルフホスト型インスタンスでは、ローカルの音声クローンサーバーを実行できます。ワークフロー: サーバーを起動し、/providersでその接続とモデルを登録し、/providersで選択し、/config > モデル > TTSパラメーターとボイスでリファレンスサンプルをアップロードし、それを/config > ペルソナ > ボイスで割り当てます。あらゆるオーディオ形式が受け入れられます (モノラルWAVに自動的に変換されます)。BGMなしの10 ~ 20秒のクリップが最適です。

各エンジンには独自のセットアップガイドがあります。

  • Chatterbox-Turbo/Nano: [laugh]などの感情タグを使用した高速英語音声クローン作成。
  • Qwen3-TTS: 多言語 (10言語) に加えて、自然言語のVoiceDesignモード。
  • MOSS-TTS: 多言語クローンと英語または中国語の音声デザイン。
  • いろどりTTS: 絵文字を感情の手がかりとして読み取る日本語に特化したエンジン。

ハードウェアのガイダンスと完全なエンジンのリストについては、Text-to-Speech比較表 を参照してください。

文字起こしモデルは、音声の添付ファイルをTomoriBotが会話で使用できるテキストに変換します。TTSとは別に、/config > モデル > モデルの切り替え からプロバイダー、次にモデルを選択して設定します。サーバーのキーでの文字起こしを停止するには、- モデルなし を選択します。Google、Vertex AI、OpenRouterがホスト型の文字起こしモデルを提供しており、他に文字起こしモデルが設定されていない状態でこれらのキーを追加すると、そのデフォルトモデルが自動的に選択されます。OpenRouterには多数の文字起こしモデルが掲載されており、/providers でモデルIDを指定して登録できます。ElevenLabsを追加した場合も文字起こしエンドポイントが登録されます。ローカルの選択肢については、音声認識ガイド を参照してください。

また、/personal config で個人の文字起こしモデルを選択することもできます。自分自身の音声メッセージには個人のキーが優先的に使用され、サーバーへのフォールバックが有効な場合はサーバーのモデルにフォールバックします。ホスト型の文字起こしは、文字起こしを行う音声メッセージごとにプロバイダーから課金されます。

/config > 動作 > 通知動作 > 音声の文字起こし で、チャットに表示される文字起こしを非表示にできます。非表示にした場合でも、テキストは会話コンテキストに渡されます。