ChatTTS:音読ではなく、会話するためのモデル
テキストと録音を、聴ける作品に
ナレーション、ステム分離、カバー、効果音を、ブラウザだけで。
- テキスト読み上げも、ボイスクローンも
- ステムを分離、またはカバーを生成
- 登録して試聴。聴いてから決められる
ほとんどの TTS モデルは、文章を明瞭で心地よく読み上げるよう最適化されています。しかし、本当に自分に話しかけているように聞こえるべきチャットボットや音声アシスタントにとって、それはまさに見当違いの目標です。実際の会話には短い間がいくつもあり、ときには笑い声が入り、台本にはない「あの」といった言葉も出てきます。2noise チームが開発した ChatTTS は、まさにその違いを中心に作られました。最適化の対象はナレーションではなく、現実の対話が持つ、より雑然として自然な質感です。
ChatTTS とは?
ChatTTS は、一般的なナレーションやオーディオブック風の読み上げではなく、LLM アシスタントの対話、チャットボットの音声、インタラクティブな音声アプリケーションといった会話場面のために作られた、3億パラメータの生成音声モデルです。中国語と英語の両方に対応し、完全版モデルは10万時間を超えるバイリンガル会話データで学習されています。その明確な目的は、文章を読み上げたときの音ではなく、人が実際に話すときの声を捉えることにあります。
きめ細かな韻律制御:笑い声、間、間投詞
これは ChatTTS を決定づける機能であり、後処理のエフェクトとして付け足されたものではなく、モデルの中核となる生成プロセスに組み込まれています。モデルは、笑い声、自然な間、会話の間投詞といったきめ細かな韻律特徴を、音声生成そのものの一部として直接予測し、制御できます。他の一部の表現力豊かなモデルのように、効果音タグを手作業で挿入する必要はありません。プロジェクト独自の比較によると、その結果得られる韻律は、どれだけ明瞭に読み上げるかではなく、出力がどれだけ自然で会話らしく聞こえるかという点で、ほとんどのオープンソース TTS 代替モデルを上回ります。
ガウスサンプリングによる複数話者生成
ChatTTS は複数話者に対応し、シミュレーション対話や複数キャラクターのアシスタント同士のやり取りなど、本当にインタラクティブな多人数会話に利用できます。話者のバリエーションを作る方法も理解しておく価値があります。声ごとに参照音声クリップを要求するのではなく、モデル自身の推論プロセス内にあるガウス分布から話者を直接サンプリングできます。そのため、各話者について事前録音した参照クリップのライブラリを用意しなくても、さまざまな異なる声を簡単に生成できます。
実際に利用できるものについての率直な注意点
ChatTTS を土台に開発する前に知っておくべき点が二つあります。これらは、セルフホスト環境に現実的に何を期待できるかを左右します。
オープンソースのチェックポイントは完全版モデルではありません。 ChatTTS で最も性能の高い内部版は、10万時間を超える完全なデータで学習した後、教師ありファインチューニング(SFT)を適用しています。Hugging Face で一般公開されているのは、その SFT を行っていない4万時間の事前学習済みチェックポイントです。十分に高性能なベースモデルではありますが、プロジェクトの最も洗練されたデモ比較に使われているものと同じバージョンではありません。
コードと重みには別々のライセンスが適用されます。 ChatTTS のコードは AGPLv3+ で公開されている一方、モデルの重み自体は CC BY-NC 4.0 ライセンスで公開されています。つまり、事前学習済みの重みは非商用利用に制限されます。商用展開を計画しているなら、公開チェックポイントを使って製品を作る前に、この点を慎重に確認する価値があります。
ChatTTS の使い始め方
- リポジトリをクローンします。
git clone https://github.com/2noise/ChatTTS.gitを実行するとコードとセットアップ手順を取得できます。pip install chattts-forkによるインストールも文書化されていますが、初回インストール時には1ギガバイト近いデータがダウンロードされます。 - モデルを読み込み、基本的な生成を実行します。 数行の Python コード、
import ChatTTS、chat = ChatTTS.Chat()、chat.load_models()で、最初の生成クリップを作成できます。モデル読み込み時にcompile=Trueを設定すると、初回読み込みが長くなる代わりに推論性能が向上します。 - 句読点のルールに十分注意します。 ChatTTS のテキスト入力では、句読点として英語式のコンマとピリオドが明示的に求められます。それ以外の句読点は無効な入力として扱われます。異なる句読点規則の文章を移行し始めたユーザーにとって、これは予期せぬ生成失敗の一般的な原因です。
- ガウス分布から話者をサンプリングし、バリエーションを増やします。 必要な声ごとに参照クリップを集めるのではなく、モデルに内蔵された話者サンプリングを使い、さまざまな異なる声を直接生成します。
- 高性能 GPU が必要だと決めつける前に、控えめなハードウェアで試します。 LattePanda Sigma ミニ PC を使ったコミュニティのベンチマークでは、22秒のクリップを約39秒で生成したと報告されています。処理比率はおよそ 1:2 で、RTX 4090 搭載マシンと同等の性能だと評されています。このことから、モデルのパラメータ数から想像するよりも、制約のあるハードウェアに寛容である可能性が示されています。
- 商用利用前に最新のライセンス条件を確認します。 AGPLv3+ と CC BY-NC 4.0 に分かれたライセンスを踏まえ、特に事前学習済みの重みを有料製品で使う場合は、自分の具体的な用途が対象範囲に含まれるか確認してください。
より良い結果を得るためのヒント
- ナレーションではなく、会話のために文章を設計します。 ChatTTS は対話形式のコンテンツ向けに調整されています。堅く形式的な構造の文章を入力しても、本来の設計目的は十分に現れません。自然な間を含む会話調の表現を使うと、韻律モデリングをより活用できます。
- 生成前に句読点を整えます。 英語式のコンマとピリオドに関するモデルの厳格な要件を考慮し、入力テキストを手早くクリーンアップして未対応の句読点を除けば、よくある簡単に防げる失敗を回避できます。
- 複数音声のプロトタイプをすばやく作るには、ガウス話者サンプリングを使います。 キャラクターごとに参照クリップを探して事前に用意するよりも、複数話者の対話場面をすばやく試せます。
- 公開チェックポイントの能力に合わせて期待値を設定します。 一般公開されたモデルは4万時間版の SFT 前モデルであり、10万時間を超える完全なデータでファインチューニングされたモデルではありません。プロジェクトの最高のデモクリップで示されたモデルとまったく同じものが得られると考えず、それに応じて品質への期待を調整してください。
- 制約のあるハードウェアでは現実的な生成時間を見積もります。 エッジ端末やミニ PC への導入を検討する場合、LattePanda Sigma のベンチマークは有用なデータです。GPU クラスではないハードウェアで即時生成できると想定せず、リアルタイムのおよそ2倍の処理時間を見込んでください。
ChatTTS と他の表現力豊かなバイリンガルモデルの比較
| ChatTTS | Bark | CosyVoice3 | |
|---|---|---|---|
| 主な設計対象 | 会話、チャットボット/アシスタント | 生成型テキスト・トゥ・オーディオ(音声、音楽、効果音) | 方言を含む多言語クローン |
| 言語 | 中国語、英語 | 13+ | 9言語 + 18の中国語方言 |
| 非言語音 | ネイティブに予測(笑い声、間、間投詞) | 角括弧タグ([laughter]、[sighs]) | 専用機能ではない |
| 複数話者 | 対応、ガウスサンプリングを使用 | プリセット音声 | ゼロショットクローン |
| パラメータ数 | 300M | この規模では公式に非公開 | 0.5B |
| 重みのライセンス | CC BY-NC 4.0(非商用) | MIT | オープン、ホスト型 API あり |
ChatTTS が占める特定のニッチは、ちょうど二つの言語に対する対話優先の設計です。幅広い多言語対応や最大限の表現範囲を追うのではなく、中国語と英語の会話音声を実際の会話のように聞かせることに集中しています。アシスタントやチャットボットの音声を構築する人にとっては、単純な対応言語数よりもこちらの方が適切な比較基準です。
よくある質問
ChatTTS は汎用 TTS モデルと何が違いますか?
ナレーションではなく、会話形式の音声に特化して最適化されています。自然な間、笑い声、間投詞を生成の一部として直接予測し、文章を明瞭に読み上げることよりも、チャットボットやアシスタントの用途に合わせて調整されています。
一般公開されている ChatTTS モデルは完全版ですか?
完全には同じではありません。完全な内部モデルは10万時間を超えるデータで学習し、教師ありファインチューニングが適用されています。一般公開された Hugging Face のチェックポイントは、そのファインチューニングを行っていない4万時間の事前学習済みバージョンです。
ChatTTS は商用で無料利用できますか?
コードは AGPLv3+ ですが、モデルの重みは商用利用を制限する CC BY-NC 4.0 ライセンスで公開されています。商用展開を行う前に、最新のライセンス条件を慎重に確認してください。
入力テキストに含まれる一部の句読点が ChatTTS で拒否されるのはなぜですか?
モデルのテキスト処理では英語式のコンマとピリオドが明示的に求められ、それ以外の句読点は無効な入力として扱われます。そのため、あらかじめテキストを整えることで一般的な生成失敗を回避できます。
ChatTTS はボイスクローンに対応していますか?
専用のクローンモデルと同じ方法では対応していません。音声クリップから特定の参照音声を再現するのではなく、話者特性をガウスサンプリングすることで複数話者生成に対応しています。
複数話者の台本を会話音声に変換
複数話者の完成した台本がある場合は、Echoraのテキストから会話音声を利用できます。合計5,000文字まで、最大12個の会話ブロックを追加し、各ブロックに音声を割り当て、対応している話し方タグ、安定性、話者強調を調整できます。完成した会話はプレビューしてダウンロードできます。