Chatterbox TTS - オープンソースのテキスト音声変換モデル
(github.com/resemble-ai)- Chatterbox は、Resemble AI が公開した最新のオープンソースのテキスト音声変換モデル群で、音声クローニングと多言語音声生成をサポートする
- 最新の Chatterbox Multilingual V3 は、0.5B のモデルサイズを維持しながら、話者類似性の改善、ハルシネーションの低減、より自然な対話型多言語音声を目指している
- Chatterbox-Turbo は、英語の低遅延音声エージェント向け 350M モデルで、speech-token-to-mel デコーダ生成を 10 ステップから 1 ステップに削減し、
[laugh]、[cough]のような paralinguistic tag をサポートする - モデル構成は Turbo、Multilingual V3、Single Language Pack、既存 Chatterbox に分かれており、多言語モデルは韓国語を含む 23言語 をサポートし、Single Language Pack は 6 種類の専用ファインチューニングを提供する
- 生成されたすべてのオーディオには Resemble AI の PerTh ウォーターマーク が含まれ、MP3 圧縮・オーディオ編集・一般的な加工後でもほぼ 100% の検出精度を維持すると案内されている
Chatterbox TTS 概要
- Chatterbox は Resemble AI のオープンソースのテキスト音声変換モデル群
- デモサンプル、Hugging Face Space、Podonos 評価、Discord リンクが提供されている
最新リリース: Chatterbox Multilingual V3
- Chatterbox Multilingual V3 は Chatterbox 系列の最新の汎用多言語 TTS モデル
- V3 は従来と同じ 0.5B モデルサイズ を維持しながら、次の点を改善している
- 話者類似性
- ハルシネーションの低減
- 言語全般にわたる、より自然な対話型音声
- V2 のように広い言語範囲を目指しつつ、安定性と表現力をさらに強化した生成を提供するよう設計されている
- 複数言語で動作する単一の音声クローニングモデルを求めるユーザーに推奨される多言語モデル
Single Language Pack
- Single Language Pack は、優先言語向けの専用ファインチューニングモデルのセット
- 汎用多言語モデルよりも強力な言語別性能、より厳格な品質管理、方言認識生成が必要な場合に使用する
- 提供される専用モデルは 6 種類
Chatterbox-Turbo
- Chatterbox-Turbo は、低遅延の英語音声エージェント向けとして最も効率的なモデル
- 350M パラメータの簡素化されたアーキテクチャを採用し、従来モデルより少ない計算量と VRAM で高品質な音声を生成できるよう設計されている
- ボトルネックだった speech-token-to-mel デコーダ を蒸留し、生成ステップを 10 ステップから 1 ステップに削減
- Turbo は
[cough]、[laugh]、[chuckle]のような paralinguistic tag を標準でサポートし、リアルな表現を追加できる - 主用途は低遅延音声エージェントだが、ナレーションやクリエイティブワークフローにも適すると案内されている
- 商用 TTS サービスは 200ms 未満の超低遅延性能を提供し、エージェント・アプリケーション・インタラクティブメディアの本番用途に適していると紹介されている
モデル構成
| モデル | サイズ | 言語 | 主な機能 | 適した用途 |
|---|---|---|---|---|
| Chatterbox-Turbo | 350M | English | paralinguistic tag、低計算量・低 VRAM | zero-shot 音声エージェント、本番運用 |
| Chatterbox-Multilingual V3 | 500M | 23+ | 話者類似性の改善、ハルシネーション低減、自然な多言語音声 | グローバルアプリ、ローカライゼーション、クロスリンガル音声クローニング |
| Single Language Pack | 各 500M | 6種の専用ファインチューニング | 言語・地域別の品質管理 | 優先言語や方言に敏感なアプリ |
| Chatterbox | 500M | English | CFG と exaggeration 調整 | クリエイティブ制御付きの一般的な zero-shot TTS |
インストールと実行
- パッケージは
pip install chatterbox-ttsでインストールする - ソースからのインストールにも対応
git clone https://github.com/resemble-ai/chatterbox.git cd chatterbox pip install -e . - 開発・テスト環境は Python 3.11 と Debian 11 で、依存関係のバージョンは
pyproject.tomlに固定されている - ソースインストールモードではコードや依存関係を変更できる
使用方法
- Chatterbox-Turbo は
ChatterboxTurboTTS.from_pretrained(device="cuda")でモデルを読み込み、音声クローニングのために参照クリップのパスをaudio_prompt_pathとして渡す - Turbo の例では
[chuckle]のような paralinguistic tag を含む文を生成する - 一般英語モデルには
ChatterboxTTS、多言語モデルにはChatterboxMultilingualTTSを使う - 多言語 V3 は
ChatterboxMultilingualTTS.from_pretrained(device=device, t3_model="v3")で読み込む- レガシー V2 チェックポイントを使う場合は
t3_modelを省略するか"v2"を渡す
- レガシー V2 チェックポイントを使う場合は
- 別の声で合成するには、
audio_prompt_pathに参照オーディオファイルを指定する - 追加の例は
example_tts.pyとexample_vc.pyにある
対応言語
- 汎用 Chatterbox Multilingual モデルは次の 23言語 をサポートする
- Arabic
ar - Danish
da - German
de - Greek
el - English
en - Spanish
es - Finnish
fi - French
fr - Hebrew
he - Hindi
hi - Italian
it - Japanese
ja - Korean
ko - Malay
ms - Dutch
nl - Norwegian
no - Polish
pl - Portuguese
pt - Russian
ru - Swedish
sv - Swahili
sw - Turkish
tr - Chinese
zh
- Arabic
既存 Chatterbox の調整ヒント
- 参照クリップ は指定した言語タグと一致している必要がある
- そうでない場合、言語転移出力が参照クリップ言語のイントネーションを引き継ぐことがある
- これを緩和するには
cfg_weightを0に設定する
- デフォルト値は
exaggeration=0.5、cfg_weight=0.5で、ほとんどのプロンプトと言語でうまく動作する - 参照話者の話速が速い場合、
cfg_weightを約0.3に下げると速度調整に役立つことがある - 表現豊かまたはドラマチックな音声には、低い
cfg_weightと0.7以上のexaggerationを試す- 高い
exaggerationは話速を速くする傾向がある cfg_weightを下げると、より遅く慎重な速度へ補正するのに役立つ
- 高い
内蔵 PerTh ウォーターマーキング
- Chatterbox で生成されるすべてのオーディオファイルには Resemble AI の Perth ウォーターマークが含まれる
- このウォーターマークは Perceptual Threshold ベースの不可知覚なニューラルウォーターマーク
- MP3 圧縮、オーディオ編集、一般的な加工後でも維持され、ほぼ 100% の検出精度を保つと案内されている
- ウォーターマーク抽出は
perth.PerthImplicitWatermarker()とget_watermark()で行う- 結果はウォーターマークなし
0.0、またはウォーターマークあり1.0として出力される
- 結果はウォーターマークなし
評価
- Chatterbox Turbo は、再現可能な主観的音声評価プラットフォームである Podonos で評価されている
- 比較対象は競合 TTS システムで、評価の焦点は全体的な好み、自然さ、表現力
- 公開評価レポートが提供されている
- すべての評価は同一条件で実施され、Podonos を通じて公開アクセス可能
ライセンス外の注意
- README には「このモデルを悪用しないこと」と明記されている
- プロンプトはインターネット上で自由にアクセス可能なデータから取得したと案内されている
1件のコメント
Hacker News のコメント
デモはこちらで見られる: https://resemble-ai.github.io/chatterbox_demopage/
あまり厳選されたサンプルでないなら、かなり良いリリースだと思う。毎回同じことを言っているが、自分で試してみると音声AIのボトルネックは音声合成ではなく文字起こし品質のほうだった。最近変わったのかは分からない
まだLLMに代替の文字起こしや信頼度スコアを一緒に渡す実験はしていないが、それもうまく活用する可能性が高そうだ
よくあるフレーズ一覧と照合する機能も必要だ。LLMが「live feed」や「live here」を誤って発音するのは言い訳しにくい
https://huggingface.co/nvidia/parakeet-tdt-0.6b-v2
リアルタイムチャットと字幕生成に使っていて、3090でテレビ番組1本を1分未満で処理する。Whisperは自分の場合、幻覚が多すぎて、分類器として使うほうが役に立った
ここで無料で試せる: https://huggingface.co/spaces/ResembleAI/Chatterbox
より良い「オープン」モデルが欲しいなら、ランダム音声クローン基準ではMaskGCT、MegaTTS3、音声変換基準ではSeed-VC、MegaTTS3のほうがよく聞こえる。ただし学習/ファインチューニングのコードがあるのはSeed-VCだけ。どうせファインチューニングできないモデルを使う必要があり、自分の声により合うランダムクローンが必要なら、Chatterboxよりこちらを使うほうがよい。特にByteDanceのMegaTTS3は強力だ。ByteDanceの研究者は、ElevenLabsを除くほとんどのTTS研究チームよりはるかに先を行っており、資金・博士級研究者・学習データもはるかに多い
ただ、自分のオーストラリア訛りを非常にイギリス風、それも上品なRPアクセントのようにしてしまう。とても自然には聞こえるが、自分のアクセントは再現できていない。それでも、誰かを実際に真似るのでなければ、ほとんどのTTS用途には驚くほど明瞭で適している
Chatterboxは素晴らしい
インストールも簡単にしてくれるAPIラッパーを作り、Dockerにも対応した: https://github.com/travisvn/chatterbox-tts-api/
自分の経験では、ローカルで使える音声クローンの選択肢の中で断然最高だ
以下の質問が初歩的なのはご容赦を。インラインの
inputオブジェクトの代わりにローカルのテキストファイルを指定する簡単なCLIコマンドを探していたが見つけられない。ヒントがあればありがたい2.6向けに作られているようだ。
"chatterbox-tts 0.1.2 requires torch==2.6.0, but you have torch 2.7.0+cu128 which is incompatible. chatterbox-tts 0.1.2 requires torchaudio==2.6.0, but you have torchaudio 2.7.0+cu128 which is incompatible."Chatterbox が生成するすべての音声ファイルには、Resemble AI の Perth ウォーターマークが入るとされている
MP3 圧縮、音声編集、一般的な改変にも耐え、ほぼ 100% の検出精度を維持する知覚不能なニューラルネットワーク・ウォーターマークらしいが、私の誤解でなければ、
tts.pyのapply_watermark呼び出しをコメントアウトするだけで簡単にウォーターマークを無効化できるのでは? https://github.com/resemble-ai/chatterbox/blob/master/src/ch...こういうウォーターマークの要は、モデルの重みの中に何らかの形で組み込まれていて、簡単には切り離せないことだと思っていた。オープンソースモデルを公開しつつ、ウォーターマークを別の後処理ステップとして付けるつもりなら、そもそもなぜウォーターマークを入れるのか分からない
あるいは、学習データの観点で、誤って変なデータが混ざるのを防ぐ目的かもしれない
--no-watermarkもある。もっと大きな製品に組み込んで使う下流ユーザーに「機能」として提供するために入れたのかと思っていたTTS 市場の先頭走者は明確で深く根を張っているので、Resemble や Play(HT) のようなところは、重みを提供しつつ開発者に強く寄り添う必要がある [1]。ウォーターマーキングはそのための責任回避装置だ。ウォーターマークがなければ、404Media のような反 AI 系メディアを中心に、悪用懸念が大きく取り上げられるだろう [2]。
[1] これは正しいやり方だ。ソースコードと重みを提供し、自社 API とファインチューニングも提供して、開発者が面倒を感じないようにすべきだ。そうしてこそ市場シェアの一部を取り戻せる。
[2] https://www.404media.co/wikipedia-pauses-ai-generated-summar...
馬鹿げた質問かもしれないが、動かせる最低スペックのハードウェアはどのくらいだろう?
役に立つかもしれないので問題を書いておくと、Python 3.13 では駄目で、
uvで 3.12 の仮想環境を作ると解決する。numpy 1.26.4 がないと言われるが実際にはあり、uv pipが PyTorch リポジトリだけを探していた。--index-strategyフラグを付けて他のリポジトリも確認させる必要があった。pip install chatterbox-ttsのバージョンは CPU 専用モードにバグがあるため Git リポジトリをクローンする必要があり、main の最新バージョンは Debian でprotobuf-compilerが必要だった。最後には解釈しにくい CMake エラーが出たが、Python の開発ヘッダーがないと文句を言っているようだった。推論したいだけで Python をコンパイルしたいわけではないのに、なぜ必要なのか分からない。怒っても生産的ではないのは分かっているが、他人の Python プロジェクトを動かすときはほぼ毎回こういう経験をする。問題に一つ当たって戻り、また別の問題に当たって戻り、1時間経ってもまだ動かない
モデルが良ければ、誰かがより少ないリソースで動かす最適化方法を見つける可能性は高い。
追記: 古い Nvidia 2060 で実行してみたところ、最大 VRAM 使用量は約 5GB に見える
デフォルトの状態でそこそこ高速に動かすには、かなり強力なコンシューマー向けハードウェアが必要そうに見える。ただし改善の余地はかなりありそうだし、私は専門家ではない。
[1]: https://github.com/resemble-ai/chatterbox/issues/127
無料で動かせても、借りて使う方が安いなら、自分で動かす意味はなくなる
感情の誇張機能は興味深いが、望む声の説明だけで音声を作れる ElevenLabs ほど多才で、簡単に「造形」できるものはまだ見ていない
SparkTTS はいくつか追加パラメータを提供しており、GitHub プロジェクトのコード中のプレースホルダーを見ると、より細かな感情制御のためにモデルが改善される可能性も見える。今でも、テキスト内に韻律やトーンを強く誘導する手がかりを入れ、その結果を音声変換に再度入れて望む結果に近づける、という形である程度うまくいったことはある。ただし ElevenLabs よりはるかに手間のかかるプロセスだ
非常に一般的なアクセントでは素晴らしかったが、それ以外のアクセントもかなり一般的な部類なのに、簡単に別のアクセントへ固定されてしまうことがある
たとえばスコットランド訛りの録音がいくつかオーストラリア訛りになり、かなり弱いヨークシャー訛りでも同じだった
こうしたものは、本を説得力をもって朗読できるほど十分に良くなっているのだろうか? それとも数段落を読み上げると声の一貫性が崩れるのだろうか?
長い文章は段落単位のバッチに分けて生成し、最後に再びつなぎ合わせるのがよい。また、ワンショットのサンプルWAVが非常にクリーンでないと、Chatterboxが生成音声の末尾にランダムに不穏なヒュッという音を入れることもあった。DanteのInfernoを録音しているなら、ボーナスかもしれない。
友人や家族には、電話通話をもっと疑うよう定期的に伝える必要がある。
Walmartのギフトカードが至急必要だと言う友人が、本物の友人ではない可能性がますます高くなっている。
なりすましがあまりにも簡単で安価になっているので、近い将来こうした詐欺電話があふれないわけがない。
途中で「xに関する詩を作ってくれる?」と割り込むと、確実にふるい落とせる。ただし応答遅延があまりにも目立つ。
実際の状況なら相手はその合言葉を知っているはずなので、認証できる。AI音声や映像まで可能になった新しい時代に、この合言葉がなりすましを防いでくれるのだと、継続的に刷り込んでおく必要がある。
現在のオープンソースの多言語TTSの最先端はどの程度なのだろう? Kokoroは英語では素晴らしかったが、フランス語・日本語・ドイツ語向けの良い解法はまだ探しているところだ。