これを英語で読んでください
GLM-4-Voice は、Zhipu AI によって開始されたエンドツーエンドの音声モデルです。 GLM-4-Voice は、中国語と英語の音声を直接理解して生成し、リアルタイムの音声会話を行うことができ、ユーザーの指示に従って音声の感情、イントネーション、スピード、方言などの属性を変更することができます。
GLM-4-Voice は 3 つの部分で構成されます。
GLM-4-Voice-Tokenizer: Whisper のエンコーダー部分にベクトル量子化を追加し、ASR データの教師ありトレーニングを行うことで、連続音声入力が離散トークンに変換されます。平均して、オーディオは 1 秒あたり 12.5 個の個別トークンで表現するだけで済みます。
GLM-4-Voice-Decoder: ストリーミング推論をサポートし、CosyVoice のフロー マッチング モデル構造に基づいてトレーニングされ、離散音声トークンを連続音声出力に変換する音声デコーダー。生成を開始するには少なくとも 10 個の音声トークンが必要であり、エンドツーエンドの会話の遅延が軽減されます。
GLM-4-Voice-9B: GLM-4-9B に基づいて、離散化された音声トークンを理解して生成するために、音声モダリティの事前トレーニングと調整が実行されます。
事前トレーニングに関しては、モデルの IQ と音声モードでの合成表現力という 2 つの問題を克服するために、Speech2Speech タスクを「ユーザーの音声に基づいてテキスト応答を作成する」と「ユーザーの音声に基づいて音声を合成する」に分離しました。 「テキスト応答とユーザーの音声」 2 つのタスクと 2 つの事前トレーニング目標は、テキスト事前トレーニング データと教師なし音声データに基づいて音声とテキストがインターリーブされたデータを合成して、これら 2 つのタスク形式に適応するように設計されています。 GLM-4-9B の基本モデルに基づいた GLM-4-Voice-9B は、数百万時間の音声と数千億の音声とテキストがインターリーブされたデータで事前トレーニングされており、強力な音声理解とモデリングを備えています。 。 能力。
調整面では、高品質な音声対話をサポートするために、GLM-4-Voice はユーザーの音声に応じて、テキストと音声の 2 つのモードでコンテンツをストリーミング形式で交互に出力できるストリーミング思考アーキテクチャを設計しました。音声モードは次のように表されます。テキストは応答コンテンツの高品質を保証するための参照として使用され、対応する音声変更はユーザーの音声コマンド要件に従って行われます。これは、維持しながらエンドツーエンドでモデル化する機能を備えています。言語モデルの IQ を最大限に活用し、同時に音声を合成するために必要なトークンは最低 20 個だけです。
より詳細な技術レポートは後ほど公開される予定です。
モデル | タイプ | ダウンロード |
---|---|---|
GLM-4-音声トークナイザー | スピーチトークナイザー | ハギングフェイス? |
GLM-4-音声-9B | チャットモデル | ハギングフェイス? |
GLM-4-音声デコーダ | スピーチデコーダ | ハギングフェイス? |
直接開始できる Web デモを提供します。ユーザーは音声またはテキストを入力でき、モデルは音声とテキストの両方の応答を返します。
まずリポジトリをダウンロードします
git clone --recurse-submodules https://github.com/THUDM/GLM-4-Voicecd GLM-4-Voice
次に、依存関係をインストールします。提供されているイメージzhipuai/glm-4-voice:0.1
を使用して、この手順をスキップすることもできます。
pip install -r 要件.txt
Decoder モデルはtransformers
による初期化をサポートしていないため、チェックポイントを個別にダウンロードする必要があります。
# git モデルのダウンロード、git-lfsgit lfs install がインストールされていることを確認してください git clone https://huggingface.co/THUDM/glm-4-voice-decoder
モデルサービスを開始する
python model_server.py --host localhost --model-path THUDM/glm-4-voice-9b --port 10000 --dtype bfloat16 --device cuda:0
Int4 精度でブートする必要がある場合は、次を実行します。
python model_server.py --host localhost --model-path THUDM/glm-4-voice-9b --port 10000 --dtype int4 --device cuda:0
このコマンドはglm-4-voice-9b
を自動的にダウンロードします。ネットワークの状態が良好でない場合は、 --model-path
使用してローカル パスを手動でダウンロードして指定することもできます。
Webサービスを開始する
python web_demo.py --tokenizer-path THUDM/glm-4-voice-tokenizer --model-path THUDM/glm-4-voice-9b --flow-path ./glm-4-voice-decoder
Web デモには http://127.0.0.1:8888 からアクセスできます。
このコマンドはglm-4-voice-tokenizer
とglm-4-voice-9b
を自動的にダウンロードします。 glm-4-voice-decoder
手動でダウンロードする必要があることに注意してください。
ネットワークの状態が良好でない場合は、これら 3 つのモデルを手動でダウンロードし、 --tokenizer-path
、 --flow-path
、および--model-path
を通じてローカル パスを指定できます。
Gradio のストリーミング オーディオ再生が不安定です。生成完了後にダイアログボックスをクリックすると、音質が向上します。
感情のコントロール、話速の変更、方言の生成など、GLM-4-Voiceの会話例をいくつか紹介します。
優しい声でリラックスへと導きます
興奮した声でサッカーの試合を解説
悲しい声で怪談を語る
東北地方の方言で冬の寒さを紹介
重慶の方言で「ブドウの皮を吐き出さずにブドウを食べなさい」と言う
北京弁で早口言葉を言う
もっと早く話す
もっと早く
このプロジェクトのコードの一部は次のものから来ています。
コージーボイス
変圧器
GLM-4
GLM-4 モデルの重みを使用するには、モデル プロトコルに従う必要があります。
このオープン ソース リポジトリのコードは、Apache 2.0 プロトコルに従っています。