Closed6

「Chatterbox-TTS」を試す

kun432kun432

GItHubレポジトリ

https://github.com/resemble-ai/chatterbox

Chatterbox TTS

私たちは、Chatterbox をご紹介できることを大変嬉しく思います。これは Resemble AI による初の本格的なプロダクション向けオープンソース TTS モデルです。MIT ライセンスで提供されており、Chatterbox は ElevenLabs などの主要なクローズドソースシステムと比較評価され、並列評価でも一貫して高い評価を受けています。

ミーム、動画、ゲーム、AI エージェントなど、どのようなコンテンツ制作でも、Chatterbox があなたの作品に命を吹き込みます。また、感情の誇張コントロールをサポートする初のオープンソース TTS モデルでもあり、これにより音声表現が際立ちます。今すぐ Hugging Face Gradio アプリ でお試しください。

モデルが気に入ったものの、より高精度なスケールアップやチューニングが必要な場合は、競争力のある価格で提供される TTS サービス(リンク)もご利用いただけます。このサービスは、エージェント、アプリケーション、インタラクティブメディアでの本番利用に理想的な、200ms 未満の超低レイテンシで信頼性の高いパフォーマンスを実現します。

主な特徴

  • 最先端のゼロショット TTS
  • 0.5B Llama バックボーン
  • 独自の誇張/強調コントロール
  • アライメント情報に基づく推論による超高安定性
  • 50万時間分のクリーニング済みデータで学習
  • 出力にウォーターマーク付与
  • 簡単に使えるボイスコンバージョンスクリプト
  • ElevenLabs を凌駕する性能

ヒント

  • 一般利用(TTS・ボイスエージェント):
    • デフォルト設定(exaggeration=0.5, cfg_weight=0.5)はほとんどのプロンプトで良好に動作します。
    • 参照スピーカーが速い話し方の場合、cfg_weight を約 0.3 に下げると話速が改善されることがあります。
  • 表現力豊かな音声や劇的なスピーチ:
    • より低い cfg_weight 値(例: ~0.3)を試し、exaggeration を約 0.7 以上に上げてみてください。
    • exaggeration を高くすると発話速度が上がる傾向があるため、cfg_weight を下げることで、よりゆっくりとした丁寧な発話に調整できます。

責任ある AI のための組み込み PerTh ウォーターマーキング

Chatterbox で生成されるすべての音声ファイルには、Resemble AI の Perth (Perceptual Threshold) Watermarker が埋め込まれています。これは、人間には知覚できないニューラルウォーターマークであり、MP3 圧縮、音声編集、一般的な加工にも耐性を持ち、ほぼ 100% の検出精度を維持します。

免責事項

このモデルを不正な目的で使用しないでください。プロンプトはインターネット上で自由に利用可能なデータから収集されています。

誇張/強調コントロールってのが特徴なのかな。

公式のサンプルはこちら

https://resemble-ai.github.io/chatterbox_demopage/

HuggingFaceのデモはこちら

https://huggingface.co/spaces/ResembleAI/Chatterbox

上に記載がある通りAPIサービスもある。なかなか高速を謳っている。

https://www.resemble.ai/

kun432kun432
kun432kun432

Colaboratory T4で。

パッケージインストール

!pip install chatterbox-tts
!pip freeze | grep -i chatterbox
出力
chatterbox-tts==0.1.1

このまま進めるとモデルロード時にエラーになる。おそらく上のパッケージインストールでいくつかの依存パッケージも更新されているがランタイムに読み込まれないため。一旦ここでランタイムを再起動しておく。

ではモデルロード

import torchaudio as ta
from chatterbox.tts import ChatterboxTTS

model = ChatterboxTTS.from_pretrained(device="cuda")

この時点でのVRAM消費は4.2GB程度。

出力
Thu May 29 15:16:01 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.15              Driver Version: 550.54.15      CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  Tesla T4                       Off |   00000000:00:04.0 Off |                    0 |
| N/A   47C    P0             28W /   70W |    4228MiB /  15360MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

ちなみにRAMも少し上がっている。

では推論。モデルロード後初回の推論だけ10秒程度かかるが、2回目以降は5秒程度と速くなる。

text = "Good morning. It's a beautiful day today. On days like this, I feel like going to the horse races."
wav = model.generate(text)
ta.save("chatterbox-tts-sample1.wav", wav, model.sr)

Colaboratory上で直接聞くには以下

from IPython.display import Audio

Audio("chatterbox-tts-sample1.wav", autoplay=True)

実際に生成されたもの

https://audio.com/kun432/audio/chatterbox-tts-sample1

ヒントにもあるが、誇張した表現にすることができる。generate()メソッドはデフォルトだと以下のパラメータとなっている。

  • exaggeration: 0.5
  • cfg_weight: 0.5
  • temperature: 0.8

このうち、exaggeration が誇張表現の設定で高くすればするほど誇張した表現になる。ヒントには0.7以上とある。exaggeration を上げると発話スピードが速くなりがちになるので、cfg_weight0.3 以下に下げるのが推奨みたい。後で試すけど、リファレンスを音声を使った音声クローンの場合、そのリファレンスの発話スピードが速ければ生成される音声も速くなるので、cfg_weight0.3 程度に下げろとある。つまり cfg_weight は発話速度に影響するパラメータと思われる。

exaggerationを極端に上げてみた。

text = "Good morning. It's a beautiful day today. On days like this, I feel like going to the horse races."
wav = model.generate(text, exaggeration=2.0, cfg_weight=0.3)
ta.save("chatterbox-tts-sample2.wav", wav, model.sr)

Audio("chatterbox-tts-sample2.wav", autoplay=True)

実際に生成されたもの。若干最後おかしくなるぐらい叫んでる。

https://audio.com/kun432/audio/chatterbox-tts-sample2

音声クローンは以下のようにリファレンス音声を渡せば良い。

AUDIO_PROMPT_PATH="my_voice.wav"
wav = model.generate(text, audio_prompt_path=AUDIO_PROMPT_PATH)
ta.save("chatterbox-tts-sample3.wav", wav, model.sr)

自分の声で試してみたけど、日本語のリファレンス音声でも英語できれいに発話していた。

kun432kun432

レポジトリにはGradioのスクリプトもあるようなので、HuggingFace Spaceと同じものをローカルで動かせるのだろうと思う。

kun432kun432

まとめ

軽量で生成もまあまあ速い方だと思う。誇張表現ってのは少し変わってて面白い。

kun432kun432

もうこんなものがある

https://github.com/devnen/Chatterbox-TTS-Server

Dockerで試してみた。

git clone https://github.com/devnen/chatterbox-tts-server.git
cd chatterbox-tts-server

自分の環境はCUDA-12.4なので、Dockerfileの1行目を少し修正

https://github.com/devnen/Chatterbox-TTS-Server/blob/b343328338376c911779dcba626134f2e0fc4119/Dockerfile#L1

Dockerfile
FROM nvidia/cuda:12.4.1-runtime-ubuntu22.04
(snip)

あと、docker-composeの以下の箇所、レガシーな方じゃないと自分の環境では動かなかった。

https://github.com/devnen/Chatterbox-TTS-Server/blob/b343328338376c911779dcba626134f2e0fc4119/docker-compose.yml#L20-L38

docker-compose.yml
(snip)
    #devices:
    #  - nvidia.com/gpu=all
    #device_cgroup_rules:
    #  - "c 195:* rmw"
    #  - "c 236:* rmw"

    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]
(snip)

ビルドして起動。そこそこ時間がかかる。

docker compose up --build

起動したらブラウザで8004番ポートにアクセスするとこんな画面。

デフォルトの例文はこんな感じ。

Are you tired of slow, unreliable connections? Upgrade today to Quantum Fiber, the fastest internet in the galaxy! Experience seamless streaming, lag-free gaming, and instant downloads. Call now and get your first three months half price! Don't wait, this offer won't last forever!

デフォルトでとりあえず精製してみると、初回だけ遅いけど、2回目以降は4秒程度で生成してくれる。

文単位で最小ににしてみた。

Are you tired of slow, unreliable connections?

これで1.5秒ぐらい。自分が試した中ではIndex TTSが一番早かったけど、それと同等レベルで十分速い方だと思う。

あとなんとなくだけど、以下はコメントアウトしたほうがいいと思う。いかが有効だと起動時にモデル取得に失敗することが多い気がする。(モデルをローカルにキャッシュしていないのかもしれない)

https://github.com/devnen/Dia-TTS-Server/blob/main/docker-compose.yml#L44

VRAM的にはこんな感じ

出力
Mon Jun  2 19:59:37 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 560.35.05              Driver Version: 560.35.05      CUDA Version: 12.6     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4090        Off |   00000000:01:00.0 Off |                  Off |
|  0%   53C    P0             49W /  450W |    5071MiB /  24564MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

このスクラップは3ヶ月前にクローズされました