Chatterbox TTS
servers/tts/chatterbox/server.pyを使うと、対応済みイベントタグ付きの英語音声クローンが行えます。高速モデルの経路は既定でChatterbox-Turbo(350Mパラメーター)を使用します。より小型でCPU向けのデプロイにはChatterbox-Nano(110Mパラメーター)を選べます。このラッパーはChatterbox Multilingual V3を読み込みません。
セットアップ
Section titled “セットアップ”以下のコマンドは、TomoriBotをクローンしたフォルダーであるTomoriBotリポジトリのルートから実行します。
Windows PowerShell
Section titled “Windows PowerShell”python -m venv servers\tts\chatterbox\.venvservers\tts\chatterbox\.venv\Scripts\Activate.ps1python -m pip install --upgrade pippip install numpypip install -r servers\tts\chatterbox\requirements.txtpython servers\tts\chatterbox\server.pyLinux/macOS Bash
Section titled “Linux/macOS Bash”python3 -m venv servers/tts/chatterbox/.venvsource servers/tts/chatterbox/.venv/bin/activatepython -m pip install --upgrade pippython -m pip install numpypython -m pip install -r servers/tts/chatterbox/requirements.txtpython servers/tts/chatterbox/server.pyTomoriBotがChatterboxを使用している間は、そのターミナルを開いたままにしてください。既定のエンドポイントURLはhttp://127.0.0.1:8011です。
オプション: Chatterbox-Nanoを使う
Section titled “オプション: Chatterbox-Nanoを使う”Nanoには、nano=Trueのローダーオプションに対応したChatterboxのビルドが必要です。上記の通常のセットアップの後、同じ仮想環境に固定された上流リビジョンをインストールします。このコミットハッシュは互換性のあるソースの版を固定するものであり、セキュリティを保証するものではありません。このコマンドにはgitが必要で、既にインストール済みのランタイム依存関係はそのまま維持されます。
python -m pip install --no-deps --force-reinstall "git+https://github.com/resemble-ai/chatterbox.git@5de7a54aa4e5e2baadb0182dde554908b48b85c2"続いて、ラッパーを起動する前にCHATTERBOX_FAST_MODEL=nanoを設定します。Turboを使う場合はこの変数を未設定のままにします。Windows PowerShellでは$env:CHATTERBOX_FAST_MODEL = "nano"、Linuxまたは macOSではCHATTERBOX_FAST_MODEL=nano python servers/tts/chatterbox/server.pyを使用してください。/healthのレスポンスはfast_modelを報告するため、読み込まれた選択を確認できます。NanoとTurboは同じクローンリクエストと対応済みイベントタグを使用し、どちらも英語専用です。
NanoまたはTurboを使うには、/configの高速モデル切り替えを有効のままにしておく必要があります。これを無効にすると、CFG weightとexaggerationの調整用に標準のChatterbox 0.5Bモデルが選ばれます。
標準Chatterbox(CFGとExaggerationを備えた0.5B)
Section titled “標準Chatterbox(CFGとExaggerationを備えた0.5B)”元となる0.5BのベースChatterboxモデル(ChatterboxTTS)は、サーバーラッパーに直接組み込まれています。Turboのインライン角括弧イベントタグの代わりに、**Classifier-Free Guidance(cfg_weight)と感情のexaggeration**による細かな声の制御を行います。
標準モデルを使用するには次の手順を実行します。
- いつも通りサーバーラッパーを起動します。
- Discordで
/config> モデル > TTSパラメーターと音声を実行します。 - Chatterbox高速モデルオプションを無効に切り替えます。
- 次の生成時に、ラッパーが標準の0.5Bモデルを遅延ダウンロードしてメモリに読み込みます。
どちらの値もChatterboxパラメーターの編集モーダル内のテキストフィールドです。常に編集可能で、高速モデルが有効な間は無視される旨がページに注記されています。
cfg_weight(既定0.5): 合成された音声が参照のテンポと声のスタイルにどれだけ忠実に従うかを調整します。exaggeration(既定0.5): 発話の感情の強さと大げさな抑揚を制御します。
[!NOTE] 標準Chatterboxは、
[laughs]や[sigh]のようなインラインの角括弧イベントタグに対応していません。Chatterbox高速モデルの切り替えが無効のとき、TomoriBotはプロンプトテキストから角括弧タグを自動的に取り除きます。
TomoriBotへの登録
Section titled “TomoriBotへの登録”エンドポイントのラベルまたはモデル名にChatterboxを含めてください。TomoriBotはその名前(またはそれを含むエンドポイントURL)でのみChatterboxエンドポイントを認識するため、Turboのタグ許可リスト、標準モデルでのタグ除去、/generate voice-messageのChatterbox専用オプションは、その名前が含まれている場合にのみ適用されます。
/providersを実行し、新しいカスタムエンドポイントを追加を選んで、音声用のAPI互換性を使用します。
- API互換性:
tts-clone endpoint_url:http://127.0.0.1:8011
接続を保存したら、それを選択し、モデルのドロップダウンから音声モデルを追加します。音声ソースモードには音声クローンを、スクリプトマークアップ形式にはブラケットタグを選び、発話タグが送信の過程で失われないようにします。
エンドポイントの登録とモデルのセットアップには/providersを使用します。続いて/config > モデル > モデルの切り替えを開き、登録したエンドポイントを選択して有効化してください。
ペルソナ音声のセットアップ
Section titled “ペルソナ音声のセットアップ”- 背景音楽のない、1人の話者による10〜20秒のクリアな音声クリップを準備します。
/configでモデル > TTSパラメーターと音声を開き、そのクリップをアップロードします。/configでペルソナ > 音声を開き、ペルソナと音声サンプルを選択します。
高速モデルの切り替えが有効な場合、TurboとNanoは[laugh]や[sigh]のような角括弧イベントタグを使用できます。
オプションのチューニング
Section titled “オプションのチューニング”/configのモデル > TTSパラメーターと音声を使って、Chatterboxのリクエストペイロードを調整します。
- 高速モデルの切り替えは既定で有効です。TomoriBotは対応済みのTurbo/Nanoイベントタグを保持し、ラッパーが
ChatterboxTurboTTS.generate(...)を呼び出す前に、未対応の角括弧記述子を取り除きます。 cfg_weightは既定0.5です。最小値は0で、TomoriBotはハードな最大値を設定していません。これはturboがfalseのときにのみ適用され、値を下げると速すぎる参照音声を落ち着かせるのに役立ち、値を上げるとより強く参照に従います。exaggerationは既定0.5です。最小値は0で、TomoriBotはハードな最大値を設定していません。これはturboがfalseのときにのみ適用され、値を上げると発話がより表現豊かまたは大げさになり、話す速度が速くなることがあります。
対応済みのTurbo/Nanoイベントタグは[clear throat]、[sigh]、[shush]、[cough]、[groan]、[sniff]、[gasp]、[chuckle]、[laugh]です。[excited]、[whisper]、[smiles]のような未対応の記述子は、TTSへ送られる代わりに取り除かれます。
turboが無効な場合、TomoriBotはテキストをTTSへ送る前にすべての角括弧記述子を取り除き、その後ラッパーが標準のChatterboxTTSモデルを遅延読み込みしてmodel.generate(..., cfg_weight, exaggeration)を呼び出します。