GLM-TTS:Zhipu が「十分」止まりの中国語 TTS に示したプロダクション品質の答え
テキストと録音を、聴ける作品に
ナレーション、ステム分離、カバー、効果音を、ブラウザだけで。
- テキスト読み上げも、ボイスクローンも
- ステムを分離、またはカバーを生成
- 登録して試聴。聴いてから決められる
オープンソースの TTS モデルには、GitHub の README をまとった研究デモにすぎないものが数多くあります。Zhipu AI が清華大学と共同で公開した GLM-TTS は、最初から別の目標、すなわちプロダクション環境への導入を目指して構築されました。3秒のクリップから声をクローンし、感情と発音を高い精度で制御できます。比較的控えめな10万時間のデータで学習しながら、複数のオープンベンチマークで最先端の結果を達成しており、生の品質と同じくらい効率が重視されています。
GLM-TTS とは?
GLM-TTS は、Zhipu AI と清華大学の研究者が開発した、オープンソースで産業グレードのテキスト読み上げシステムです。テキストをトークンに変換する自己回帰型言語モデルと、そのトークンを波形に変換する Flow Matching モデルという2段階のアーキテクチャを中心に構築されています。コンテンツと構造を言語モデル、音響的な具現化を Flow Matching が担うこの組み合わせは、ほかの最新 TTS システムにも見られる大まかなパターンと似ています。しかし GLM-TTS は、その上に重ねたプロダクション重視の具体的な設計で差別化されています。最適化された音声トークナイザー、複数の品質軸を同時に調整する強化学習フレームワーク、そしてモデル全体を再学習せずにカスタム音声を導入できる軽量なツールです。
内部の仕組み:LLM と Flow Matching の融合
第1段階は Llama アーキテクチャをベースにした自己回帰型言語モデルで、入力テキストと話者埋め込みを組み合わせ、音声トークンの列へ変換します。話者埋め込みはシステムのフロントエンドにある CAMPPlus モデルが抽出します。3~10秒の参照クリップを入力するだけで、GLM-TTS は話者ごとの微調整を必要とせず、その声の音色とプロソディーを即座に再現します。
第2段階では、連続 Flow Matching を用いる Diffusion Transformer によって、これらのトークンを実際の音声に変換します。トークン列を高品質なメルスペクトログラムに変換した後、ボコーダーが最終的な波形を生成します。GLM-TTS の音声トークナイザー自体も基本周波数(ピッチ)の制約を組み込んで最適化されており、比較的控えめな10万時間という学習規模でも、ピッチの正確さと全体的な音声品質を維持できる理由の一端になっています。
GRPO 強化学習:3つの要素を同時に最適化
これは GLM-TTS の技術面で最も特徴的な貢献であり、なぜ重要なのかを理解する価値があります。多くの TTS 学習では、通常は明瞭度または話者類似度という1つの主要な目標を最適化し、感情表現などほかの品質を二次的に扱います。対して GLM-TTS は、GRPO(Group Relative Policy Optimization)に基づくマルチ報酬強化学習フレームワークを採用し、発音精度、話者類似度、表現力のあるプロソディーを順番に、あるいは個別にではなく、まとめて最適化します。この共同最適化こそが、単語は技術的に正しく発音していても実際に人が話しているようには聞こえない、多くの TTS 出力に付きまとう平坦で「機械的」な質感を GLM-TTS が避けられる具体的な仕組みです。
感情とパラ言語の制御
同じ RL フレームワークを基盤として、GLM-TTS は喜び、悲しみ、怒りといった特定の感情表現に加え、笑い声や呼吸音のような自然なパラ言語音も、別途後処理するのではなく生成の一部として直接作り出せます。これは固定された感情パラメーターではなく、強化学習によって生まれる表現力です。そのため、単純なスタイルタグで生成する場合よりも、得られる話し方が実際の内容と自然に結び付いて聞こえやすくなります。
Phoneme-in:柔軟性を損なわない正確な発音
GLM-TTS は「Phoneme-in」と呼ばれる音素とテキストのハイブリッド入力方式をサポートし、通常のテキスト入力へ明示的な発音表記を直接混ぜることができます。これは、多くの TTS システムが苦手とする多音字や希少語、つまり特定の文字や単語に複数の発音候補がある問題を狙った機能です。文全体を音声表記に直すことなく、問題のある単語やフレーズだけの正しい読みを、直接かつピンポイントに固定できます。
LoRA による音声カスタマイズ
ゼロショットクローンで安定して実現できる範囲を超え、特定の一貫したカスタム音声が必要な導入シナリオに向けて、GLM-TTS は LoRA(Low-Rank Adaptation)によるパラメーター効率の高いカスタマイズをサポートします。これはネットワーク全体を再学習するコストと複雑さを避けつつ、モデルを対象音声へ適応させる軽量な微調整手法です。「十分な」ゼロショットクローンと完全なカスタム学習パイプラインの間を埋める、実用的な選択肢です。
パフォーマンスとストリーミング
Flow Matching ベースのデコーダーにより、GLM-TTS はストリーミング推論をネイティブでサポートします。RTX 4090 上では、およそリアルタイムの3~5倍の速度で動作します。クリップ全体の生成完了を待てないライブアシスタント、ゲームキャラクターの会話、ストリーミング解説といった用途にも十分な速さです。
GLM-TTS を使い始める
- 最初にハードウェアを確認します。 GLM-TTS は Python 3.10~3.12 向けに構築されており、8GB 以上の VRAM を搭載した NVIDIA GPU と、動作する CUDA ツールキットを必要とします。モデルの重み用に約 9GB のディスク容量も確保してください。CPU 推論も可能ですが、劇的に遅くなります。GPU なら数秒で済むところを、1回の生成に5~15分かかると見込んでください。
- モデルの重みをダウンロードします。
huggingface-cli download zai-org/GLM-TTS --local-dir ckptを使います。地域によって ModelScope の方が速い場合は、modelscope download --model ZhipuAI/GLM-TTS --local-dir ckptで取得できます。 - 依存関係をインストールします。 Python 3.10~3.12 の環境を用意し、推論スクリプトを実行する前にプロジェクトの
requirements.txtからインストールします。 - 基本的な生成を実行します。
python glmtts_inference.py --data=example_zh --exp_name=_test --use_cacheを使うと、付属のサンプルデータでドキュメント記載のサンプルワークフローを一通り実行できます。 - 正確な発音制御には
--phonemeフラグを追加します。 多音字や希少語の特定の読みを固定したい場合、このフラグで音素機能を有効にすると、モデル既定のテキストのみの推論ではなく、音素とテキストのハイブリッド入力を利用できます。 - 手早く試すには Gradio アプリを使います。 参照クリップをアップロードし、テキストを入力して、temperature や top_p などの生成パラメーターを調整し、結果を直接再生できます。テストのたびにスクリプトを書く必要はありません。
より良い結果を得るためのヒント
- 本当にクリーンな3~10秒の参照クリップを使います。 CAMPPlus の話者埋め込みがゼロショットクローンの大部分を担うため、参照クリップの背景ノイズや録音状態の悪さは、ほかのアーキテクチャ以上に音色の再現を損ないます。
- Phoneme-in はスクリプト全体ではなく、多音字や希少語に絞って使います。 これはピンポイントの修正ツールとして設計されています。発音が本当に曖昧な箇所だけへ発音表記を混ぜれば、文全体を不必要に音素化するよりもワークフローを簡潔に保てます。
- ゼロショットの一貫性が不十分なら LoRA カスタマイズを使います。 1つのクリップだけでなく大量のコンテンツを通して特定の声を安定させる必要がある場合、ゼロショットクローンが毎回うまくいくことを期待し続けるより、LoRA の方が現実的です。
- 必要なレイテンシーに合わせて GPU を選びます。 ドキュメントにあるリアルタイムの3~5倍という数値は RTX 4090 固有のものです。より控えめなハードウェアへ導入する場合は、リアルタイムまたはストリーミング用途を約束する前に、実際のスループットを測定してください。
- 時間が重要な用途で CPU 推論に頼らないでください。 CPU と GPU では1回の生成につき5~15分もの性能差があるため、CPU 推論は現実的にはオフラインかつ非対話型の用途に限られ、ライブアプリケーションには適しません。
GLM-TTS と中国語に強いほかのオープンモデルの比較
| GLM-TTS | CosyVoice3 | GPT-SoVITS | |
|---|---|---|---|
| 開発組織 | Zhipu AI + 清華大学 | Alibaba(FunAudioLLM) | RVC-Boss(独立) |
| ゼロショットクローン | 対応、約3~10秒の参照音声 | 対応、約3~10秒の参照音声 | 対応、5秒 |
| 学習手法 | GRPO マルチ報酬 RL(発音 + 類似度 + プロソディーを共同最適化) | 教師あり学習 | 教師あり学習 + 任意の微調整 |
| 感情制御 | RL 駆動(喜び/悲しみ/怒り、笑い声、呼吸音) | 指示ベース | 専用機能ではない |
| 発音補正 | Phoneme-in ハイブリッド入力 | 発音インペインティング | 手動アノテーション |
| ストリーミング | 対応、ネイティブ | 対応 | 非対応 |
| ライセンス | Apache 2.0(コード)/ MIT(重み) | オープン、ホスト型 API あり | MIT |
GLM-TTS の具体的な貢献は、発音、話者類似度、感情的なプロソディーを、順番にではなく一緒に最適化する目標として扱ったことです。派手な機能よりも目立ちにくい学習手法の違いですが、まさにこのような設計判断が、本当にプロダクション対応のシステムと優れた研究デモを分けます。
よくある質問
GLM-TTS を開発したのは誰ですか?
GLM-TTS は Zhipu AI が清華大学と共同で開発し、2025年12月にオープンソースとして公開されました。
GLM-TTS の音声クローンには、どれくらいの参照音声が必要ですか?
およそ3~10秒です。CAMPPlus モデルで抽出した話者埋め込みにより、話者ごとの微調整を必要としないゼロショットクローンが可能になります。
GLM-TTS における GRPO とは何ですか?
Group Relative Policy Optimization の略で、GLM-TTS が学習中に発音精度、話者類似度、表現力のあるプロソディーを、個別かつ順番に扱うのではなく共同で最適化するために使用する強化学習フレームワークです。
GLM-TTS は商用でも無料で使えますか?
はい。GLM-TTS のコードは Apache 2.0 ライセンス、モデルの重みは MIT ライセンスで公開されており、どちらも商用利用を認めています。
GLM-TTS の実行にはどのようなハードウェアが必要ですか?
8GB 以上の VRAM を備えた NVIDIA GPU、インストール済みの CUDA ツールキット、Python 3.10~3.12、そしてモデルの重み用に約 9GB のディスク容量が必要です。CPU 推論も動作しますが、かなり低速です。
参照音声から似た声の音声を生成
参照音声と新しいテキストから似た声を生成する同様のワークフローには、Echoraの音声クローンを利用できます。自分の声、または使用について明示的な許可を得た参照音声をアップロードし、最大5,000文字の新しいテキストを入力すると、参照音声に似た新しい音声を生成できます。