Read this in English
GLM-4-Voice 是智譜AI 推出的端對端語音模型。 GLM-4-Voice 能夠直接理解並產生中英文語音,進行即時語音對話,並且能夠遵循使用者的指令要求改變語音的情緒、語調、語速、方言等屬性。
GLM-4-Voice 由三個部分組成:
GLM-4-Voice-Tokenizer: 透過在Whisper 的Encoder 部分增加Vector Quantization 並在ASR 資料上有監督訓練,將連續的語音輸入轉換為離散的token。每秒音訊平均只需要用12.5 個離散token 表示。
GLM-4-Voice-Decoder: 基於CosyVoice 的Flow Matching 模型結構訓練的支援串流推理的語音解碼器,將離散化的語音token 轉換為連續的語音輸出。最少只需要10 個語音token 即可開始生成,降低端對端對話延遲。
GLM-4-Voice-9B: 在GLM-4-9B 的基礎上進行語音模態的預訓練和對齊,從而能夠理解和產生離散化的語音token。
預訓練方面,為了攻克模型在語音模態下的智商和合成表現力兩個難關,我們將Speech2Speech 任務解耦合為“根據用戶音頻做出文本回复”和“根據文本回復和用戶語音合成回复語音”兩個任務,並設計兩個預訓練目標,分別基於文字預訓練資料和無監督音訊資料合成語音-文字交錯資料以適配這兩種任務形式。 GLM-4-Voice-9B 在GLM-4-9B 的基座模型基礎之上,經過了數百萬小時音訊和數千億token 的音訊文字交錯資料預訓練,擁有很強的音訊理解和建模能力。
對齊方面,為了支援高品質的語音對話,我們設計了一套串流思考架構:根據使用者語音,GLM-4-Voice 可以流式交替輸出文字和語音兩個模態的內容,其中語音模態以文本作為參照保證回复內容的高質量,並根據用戶的語音指令要求做出相應的聲音變化,在最大程度保留語言模型智商的情況下仍然具有端到端建模的能力,同時具備低延遲性,最低只需要輸出20 個token 便可以合成語音。
更詳細的技術報告將在之後公佈。
Model | Type | Download |
---|---|---|
GLM-4-Voice-Tokenizer | Speech Tokenizer | ? Huggingface ? ModelScope |
GLM-4-Voice-9B | Chat Model | ? Huggingface ? ModelScope |
GLM-4-Voice-Decoder | Speech Decoder | ? Huggingface ? ModelScope |
我們提供了可以直接啟動的Web Demo。使用者可以輸入語音或文字,模型會同時給予語音和文字回應。
首先下載倉庫
git clone --recurse-submodules https://github.com/THUDM/GLM-4-Voicecd GLM-4-Voice
然後安裝依賴。也可以使用我們提供的鏡像zhipuai/glm-4-voice:0.1
來跳過這一步。
pip install -r requirements.txt
由於Decoder 模型不支援透過transformers
初始化,因此checkpoint 需要單獨下載。
# 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
即可在http://127.0.0.1:8888 造訪web demo。
此指令會自動下載glm-4-voice-tokenizer
和glm-4-voice-9b
。 請注意, glm-4-voice-decoder
需要手動下載。
如果網路條件不好,可以手動下載這三個模型之後透過--tokenizer-path
, --flow-path
和--model-path
指定本地的路徑。
Gradio 的串流音訊播放效果不穩定。在生成完成後點擊對話框中的音訊品質會更高。
我們提供了GLM-4-Voice 的部分對話案例,包括控制情緒、改變語速、生成方言等。
用輕柔的聲音引導我放鬆
用激動的聲音解說足球比賽
用哀怨的聲音講一個鬼故事
用東北話介紹一下冬天有多冷
用重慶話念“吃葡萄不吐葡萄皮”
用北京話念一句繞口令
加快語速
再快一點
本專案的部分程式碼來自:
CosyVoice
transformers
GLM-4
GLM-4 模型的權重的使用則需要遵循模型協定。
本開源倉庫的程式碼則遵循Apache 2.0 協定。