世界を動かす技術を、日本語で。

チャターボックス TTS

2025年6月12日原文(github.com)

概要

ChatterboxはResemble AI初の本格オープンソースTTSモデル。MITライセンスで公開され、ElevenLabs等の商用モデルを上回る評価。感情誇張制御など独自機能を搭載。導入・利用が簡単で、開発・商用利用にも最適。全生成音声にウォーターマーク付与。

Chatterbox TTSとは

  • Resemble AIが開発した 初の本格オープンソースTTS(Text-to-Speech)モデル
  • MITライセンス で自由に利用・改変が可能
  • ElevenLabs等の 商用クローズドモデルと比較しても高評価
  • 感情誇張制御 (exaggeration control)を初めて搭載したOSS TTS
  • Hugging Face Gradioアプリ で即体験可能
  • 商用利用や精度向上には 有料TTSサービス も提供
    • 200ms未満の超低遅延 で安定運用が可能

主な特徴

  • 最先端(SoTA)のゼロショットTTS 技術
  • 0.5BパラメータのLlamaバックボーン
  • 誇張/強度コントロール による多彩な表現
  • アライメント情報を活用した高安定推論
  • 50万時間分のクリーンデータで学習
  • 全出力音声にウォーターマーク (Perth Watermarking)を埋め込み
  • 簡単なボイスコンバージョン(音声変換)スクリプト を同梱
  • ElevenLabsを上回るパフォーマンス

利用例・ヒント

  • TTSやボイスエージェント 用途
    • デフォルト(exaggeration=0.5, cfg_weight=0.5)で多くのケースに対応
    • 早口話者の場合、cfg_weightを0.3程度に下げることでペース調整
  • 表現力豊かな音声やドラマチックな読み上げ
    • cfg_weightを0.3程度に下げ、exaggerationを0.7以上に上げる
    • exaggerationを上げると話速が上がるためcfg_weightで調整

インストール方法

  • pipで簡単インストール
    • pip install chatterbox-tts
  • ソースからのインストールも可能
    • conda環境推奨(Python 3.11, Debian 11で開発・テスト済み)
    • 依存関係はpyproject.tomlで管理

使い方(サンプルコード)

  • 基本的な音声合成

    import torchaudio as ta
    from chatterbox.tts import ChatterboxTTS
    model = ChatterboxTTS.from_pretrained(device="cuda")
    text = "Ezreal and Jinx teamed up with Ahri, Yasuo, and Teemo to take down the enemy's Nexus in an epic late-game pentakill."
    wav = model.generate(text)
    ta.save("test-1.wav", wav, model.sr)
    
  • 別の音声プロンプトを指定して合成

    AUDIO_PROMPT_PATH = "YOUR_FILE.wav"
    wav = model.generate(text, audio_prompt_path=AUDIO_PROMPT_PATH)
    ta.save("test-2.wav", wav, model.sr)
    
  • さらに詳細例はexample_tts.pyやexample_vc.pyを参照

対応言語

  • 現在は英語のみ対応

技術協力・参考技術

  • Cosyvoice
  • Real-Time-Voice-Cloning
  • HiFT-GAN
  • Llama 3
  • S3Tokenizer
  • Perth Watermarking

責任あるAIのためのウォーターマーク

  • すべての生成音声に Perth(知覚閾値)ウォーターマーク を埋め込み
  • MP3圧縮や編集にも耐える 高精度な検出性能
  • ウォーターマーク抽出用スクリプト も提供

    import perth
    import librosa
    AUDIO_PATH = "YOUR_FILE.wav"
    watermarked_audio, sr = librosa.load(AUDIO_PATH, sr=None)
    watermarker = perth.PerthImplicitWatermarker()
    watermark = watermarker.get_watermark(watermarked_audio, sample_rate=sr)
    print(f"Extracted watermark: {watermark}")
    # 出力: 0.0(非ウォーターマーク)または1.0(ウォーターマーク有)
    

コミュニティ・注意事項

  • 公式Discord で共同開発・情報交換が可能
  • 悪用禁止 (倫理的な利用を推奨)
  • プロンプトデータは インターネット上の公開データ を利用

このようにChatterboxは、 高品質・高機能・オープンソース なTTSモデルとして、研究・開発・商用利用まで幅広く活用可能です。

Hackerたちの意見

ここで無料で試せるよ: https://huggingface.co/spaces/ResembleAI/Chatterbox

残念ながら、トレーニングやファインチューニングのコードは公開されてないから、FluxやStable Diffusionが「オープン」と呼ばれるのとは違うんだ。もっと良い「オープン」モデルが欲しいなら、これらのモデルがゼロショットには向いてるよ: Zeroshot TTS: MaskGCT, MegaTTS3 ゼロショットVC: Seed-VC, MegaTTS3 確かに、Seed-VCだけがトレーニング/ファインチューニングコードを持ってるけど、これらのモデルはChatterboxよりも音質が良いよ。だから、ファインチューニングできないものを使うなら、声に合ったより良いゼロショットモデルを使った方がいいよ。(特にByteDanceのMegaTTS3ね。ByteDanceの研究は、ElevenLabs以外のほとんどのTTS研究チームを圧倒してる。彼らは小規模なラボよりもずっと多くの資金と博士研究者を持ってるし、トレーニングデータも豊富だから。)

デモはこちら: https://resemble-ai.github.io/chatterbox_demopage/ (私のじゃないけど)これ、選りすぐりじゃなければいいリリースだと思う!毎回言ってるけど、作業としてはあんまり魅力的じゃないんだよね。でも私の実験では、音声AIはTTSよりも転写にかなり制約されてる。最近変わったのかな?

その通り!Speechmatics使ったことあるけど、転写は結構いい感じだよ。

ちなみに、最近の経験ではLLMは転写エラーを読み取るのがすごく得意だってわかったよ。まだLLMに別の転写や信頼度を与える実験はしてないけど、それも上手く使えると思う。

Huggingfaceのデモで遊んでみたけど、このページはちょっと選りすぐりかな?特に、私の返答にはそんな感情が出てこないんだよね。

デモに直接悪口が入ってるのがめっちゃ好き!しかも『パルプ・フィクション』からだし! > 「お前ら、動いたら全員ぶっ殺すからな。」 もう退屈な「ミス・デイジー」デモにはうんざりだよ。インディーTTSコミュニティでは、よくネイビーシールズのコピペが使われてるからね [1, 2]。Resembleが自ら悪口を使ってるのを見るのは新鮮だ。彼らはこれがどう使われるか分かってるんだ。 [1] https://en.wikipedia.org/wiki/Copypasta [2] https://knowyourmeme.com/memes/navy-seal-copypasta

合成データで回避できない?

ちょっと変な質問だけど、これ動かすのに最低限どのくらいのスペックが必要?

変な質問じゃないよ、私も聞きに来た!4桁のGPUが必要なのか、それとも12年前のThinkPadでも動くのか、またはその中間くらいのスペックでいいのか知りたいな。

古いCPUでどう動くか報告しようと思ったけど、30分ほどいじっても全然動かない。誰かの役に立てばと思って問題をリストアップするね。 - Python 3.13では動かない。幸い、uvを使えば3.12でvenvを簡単に作れる - numpy 1.26.4が存在しないって言われた。確かに存在するのに、uv pipがpytorchのリポジトリで探してた。--index-strategyフラグを渡して他のリポジトリをチェックさせたけど。これはuvのバグかもしれないけど、「numpy 1.26.4が存在しない」と言われて、numpyが今は2.xなのを見たら、頭がクラクラする。 - pip install chatterbox-ttsのバージョンはCPU専用モードでバグがあるから、Gitリポジトリをクローンした - mainの最新バージョンはDebianにprotobuf-compilerをインストールする必要がある - 解読できない変なCMakeエラーが出た。Pythonの開発ヘッダーがインストールされてないって文句言ってるのかな。なんでそんなのが必要なの?推論をやろうとしてるのに、Pythonをコンパイルするわけじゃないし…怒っても仕方ないって分かってるけど、他人のPythonプロジェクトを動かすときはいつもこんな感じ。問題にぶつかって、戻って、また問題にぶつかって、戻って、1時間経ってもまだ動かない。

それは馬鹿げた質問じゃないよ、最高の質問だ!無料で動かせるものがあるのに、レンタルの方が安いなら、DIYの意味がなくなるよね。

Hacker Newsで議論の続きを見る