Lisez ceci en anglais
GLM-4-Voice est un modèle vocal de bout en bout lancé par Zhipu AI. GLM-4-Voice peut comprendre et générer directement des voix chinoises et anglaises, mener des conversations vocales en temps réel et modifier l'émotion, l'intonation, la vitesse, le dialecte et d'autres attributs de la voix selon les instructions de l'utilisateur.
GLM-4-Voice se compose de trois parties :
GLM-4-Voice-Tokenizer : en ajoutant la quantification vectorielle à la partie encodeur de Whisper et en effectuant une formation supervisée sur les données ASR, l'entrée vocale continue est convertie en jetons discrets. En moyenne, l'audio ne doit être représenté que par 12,5 jetons discrets par seconde.
GLM-4-Voice-Decoder : un décodeur vocal qui prend en charge le raisonnement en streaming et est formé sur la base de la structure du modèle Flow Matching de CosyVoice pour convertir les jetons vocaux discrets en sortie vocale continue. Au moins 10 jetons vocaux sont nécessaires pour commencer à générer, réduisant ainsi le délai de conversation de bout en bout.
GLM-4-Voice-9B : sur la base de GLM-4-9B, une pré-formation et un alignement des modalités vocales sont effectués pour comprendre et générer des jetons vocaux discrétisés.
En termes de pré-entraînement, afin de surmonter les deux difficultés du QI du modèle et de l'expressivité synthétique en mode parole, nous avons découplé la tâche Speech2Speech en « faire une réponse textuelle basée sur l'audio de l'utilisateur » et « synthétiser une parole basée sur la réponse textuelle et la parole de l'utilisateur" Deux tâches et deux objectifs de pré-entraînement sont conçus pour synthétiser des données entrelacées parole-texte basées sur des données textuelles de pré-entraînement et des données audio non supervisées pour s'adapter à ces deux formes de tâches. Basé sur le modèle de base du GLM-4-9B, GLM-4-Voice-9B a été pré-entraîné sur des millions d'heures d'audio et des centaines de milliards de jetons avec des données audio-texte entrelacées, et possède une solide compréhension et modélisation audio. . capacité.
En termes d'alignement, afin de prendre en charge un dialogue vocal de haute qualité, nous avons conçu une architecture de réflexion en streaming : selon la voix de l'utilisateur, GLM-4-Voice peut alternativement produire du contenu dans deux modes : texte et voix dans un format de streaming. Le mode vocal est représenté par Le texte est utilisé comme référence pour garantir la haute qualité du contenu de la réponse, et les modifications vocales correspondantes sont apportées en fonction des exigences de commande vocale de l'utilisateur. Il a toujours la capacité de modéliser de bout en bout. conservant au maximum le QI du modèle de langage, tout en ayant une faible latence, il lui suffit de produire un minimum de 20 jetons pour synthétiser la parole.
Un rapport technique plus détaillé sera publié ultérieurement.
Modèle | Taper | Télécharger |
---|---|---|
GLM-4-Voice-Tokenizer | Tokeniseur de parole | ? |
GLM-4-Voix-9B | Modèle de discussion | ? |
Décodeur vocal GLM-4 | Décodeur vocal | ? |
Nous proposons une démo Web qui peut être démarrée directement. Les utilisateurs peuvent saisir de la voix ou du texte, et le modèle donnera des réponses vocales et textuelles.
Téléchargez d'abord le référentiel
git clone --recurse-submodules https://github.com/THUDM/GLM-4-Voicecd GLM-4-Voice
Installez ensuite les dépendances. Vous pouvez également utiliser l'image zhipuai/glm-4-voice:0.1
que nous fournissons pour ignorer cette étape.
pip install -r exigences.txt
Étant donné que le modèle Decoder ne prend pas en charge l'initialisation via transformers
, le point de contrôle doit être téléchargé séparément.
# téléchargement du modèle git, veuillez vous assurer que l'installation de git-lfsgit lfs est installée clone git https://huggingface.co/THUDM/glm-4-voice-decoder
Démarrer le service de modèle
python model_server.py --host localhost --model-path THUDM/glm-4-voice-9b --port 10000 --dtype bfloat16 --device cuda:0
Si vous devez démarrer avec la précision Int4, exécutez
python model_server.py --host localhost --model-path THUDM/glm-4-voice-9b --port 10000 --dtype int4 --device cuda:0
Cette commande téléchargera automatiquement glm-4-voice-9b
. Si les conditions du réseau ne sont pas bonnes, vous pouvez également télécharger et spécifier manuellement le chemin local via --model-path
.
Démarrer le service 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
Vous pouvez accéder à la démo Web à l'adresse http://127.0.0.1:8888.
Cette commande télécharge automatiquement glm-4-voice-tokenizer
et glm-4-voice-9b
. Veuillez noter que glm-4-voice-decoder
doit être téléchargé manuellement.
Si les conditions du réseau ne sont pas bonnes, vous pouvez télécharger manuellement ces trois modèles, puis spécifier le chemin local via --tokenizer-path
, --flow-path
et --model-path
.
La lecture audio en streaming de Gradio est instable. La qualité audio sera meilleure lorsque vous cliquerez sur dans la boîte de dialogue une fois la génération terminée.
Nous fournissons quelques exemples de conversation de GLM-4-Voice, notamment le contrôle des émotions, la modification de la vitesse de parole, la génération de dialectes, etc.
Guide-moi pour me détendre d'une voix douce
Commentaire des matchs de football avec une voix excitée
Racontez une histoire de fantômes d'une voix plaintive
Présentez à quel point l'hiver est froid en dialecte du nord-est
Dire « Mangez des raisins sans cracher les peaux de raisin » en dialecte de Chongqing
Dites un virelangue en dialecte de Pékin
parler plus vite
plus rapide
Une partie du code de ce projet provient de :
CosyVoix
transformateurs
GLM-4
L'utilisation des poids du modèle GLM-4 doit suivre le protocole du modèle.
Le code de ce référentiel open source suit le protocole Apache 2.0.