コンテンツにスキップ

音声: TTS & STT

TomoriBotは、話す(テキスト読み上げ、TTS)ことと、聞く(音声認識、STT)ことができます:

  • TTSを使用すると、ネイティブのDiscord音声メッセージで返信できます。
  • STTを使用すると、ユーザーからの音声の添付ファイルを、会話のコンテキストとして使用できるテキストに変換できます。

どちらも同じエンドポイントシステムを通じて機能します。最も簡単な方法はElevenLabs(クラウド版。詳細は下記)を使用することです。自身のハードウェアで音声を処理したい場合は、ローカルエンジンを使用し、セルフホストのガイドに従ってください。

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

Section titled “ElevenLabs(クラウド、最も簡単)”
  1. ElevenLabsからAPIキーを取得します。
  2. /speech elevenlabsを実行し、キーを貼り付けます。この1つのコマンドで以下のことが行われます:
    • ElevenLabsの音声エンドポイント(および文字起こしエンドポイント)を登録します。
    • それらをアクティブとして選択します。
    • その場で1つのペルソナに音声を割り当てることができます。
  3. /speech voice-assignを使用して、追加のペルソナに音声を割り当てます。音声の閲覧はElevenLabs Voice Libraryで行えます。ここから自身の音声をクローンすることもできます。

保存されたキーを更新するには、いつでも再度/speech elevenlabsを実行してください。

注意事項:

  • 無料プランでは、用意された音声(premade voices)のみ機能します用意された音声のリストを参照してください。
  • 音声メッセージの生成や読み上げ時には文字数がカウントされます。無料プランには月ごとの制限がありますので、ElevenLabsのダッシュボードを確認してください。
  • 音声での返信はvoice_message_enabledによって制限されており、アクティブなペルソナに音声が割り当てられている必要があります。

Discord上で同じ手順を確認するには、/help speechを実行してください。

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

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

セルフホストのインスタンスでは、代わりにローカルの音声クローンサーバーを実行できます。一般的なフローは以下の通りです: ラッパーサーバーを起動し、/provider custom-endpoint addで登録し、/model speechで選択し、/speech voice-addでサンプルをアップロードし、最後に/speech voice-assignで割り当てます。どのような音声形式でも受け入れられます(モノラルのWAVに自動変換されます)。BGMのない10〜20秒のクリップが最適です。

各エンジンにはそれぞれセットアップガイドがあります:

  • Chatterbox-Turbo:高速、英語のみ対応。[excited]のような括弧付きの表現タグをサポートします。
  • Qwen3-TTS:多言語対応(10言語)。自然言語によるVoiceDesignモードを備えています。
  • IrodoriTTS:日本語特化。絵文字を感情の合図として読み取ります。

一覧については、テキスト読み上げ(TTS)ハブをご覧ください。

文字起こしのエンドポイントは、ユーザーの音声添付ファイルをテキストに変換し、バックグラウンドでの会話のコンテキストとして機能させます。文字起こしがチャットに表示して投稿されるかどうかは、/speech transcriptsで個別に制御されます。

上記ですでに説明した通り、/speech elevenlabsは音声とともに文字起こしのエンドポイントも登録します。文字起こしのエンドポイントを切り替えるには、/model transcriptionを使用します。

ローカルエンジン(セルフホスト)

Section titled “ローカルエンジン(セルフホスト)”
  • WhisperX:ローカルでの推奨。約100言語対応、GPUアクセラレーション、複数のモデルサイズ。
  • KoboldCPP:ご使用のビルドがOpenAI互換の文字起こしエンドポイントを公開している場合に機能します。
  • whisper.cpp

一覧については、音声認識(STT)ハブをご覧ください。Discordでの概要を確認するには、/help transcriptionを実行してください。