WeClone : former des sosies numériques à l'aide des journaux de conversation et des voix WeChat
Introduction générale
WeClone est un projet open-source qui permet aux utilisateurs de créer des sosies numériques personnalisés en utilisant les journaux de chat et les messages vocaux de WeChat, combinés à de grands modèles de langage et à une technologie de synthèse vocale. Le projet peut analyser les habitudes de chat d'un utilisateur pour entraîner le modèle, et peut également générer des clones vocaux réalistes à partir d'un petit nombre d'échantillons de voix. Enfin, le sosie numérique peut être associé à un robot WeChat, ce qui permet de répondre automatiquement au texte et à la voix. Cet outil convient aux personnes qui souhaitent utiliser un assistant d'intelligence artificielle sur WeChat ou apprendre la technologie de l'intelligence artificielle. Le code est entièrement public et a attiré de nombreux passionnés de technologie et développeurs.

Liste des fonctions
- Formation au journal de bord: Ajustement fin de grands modèles de langage pour imiter la parole de l'utilisateur avec des transcriptions de chat de Microsoft.
- Clonage de discours de haute qualitéGénérer des sons avec une similarité allant jusqu'à 951 TP3T en utilisant un modèle paramétrique de 0,5B et un échantillon de parole de 5 secondes.
- WeChat Robot BindingLe téléphone portable peut être connecté à WeChat pour prendre en charge les réponses textuelles et vocales automatiques.
- Outils de prétraitement des donnéesLes données d'entraînement sont converties en données de formation à l'aide de scripts qui filtrent par défaut les informations confidentielles.
- Optimisation de la personnalisation du modèleLe modèle est compatible avec la langue de l'utilisateur grâce à la technologie de réglage fin LoRA.
Utiliser l'aide
WeClone nécessite quelques compétences techniques, comme Python et Git, mais voici un guide détaillé étape par étape pour vous aider à démarrer, de l'installation à l'utilisation.
Processus d'installation
- projet de clonage
Ouvrez un terminal et tapez
git clone https://github.com/xming521/WeClone.git
Allez ensuite dans le répertoire du projet :
cd WeClone
- Mise en place de l'environnement
Python 3.9 est recommandé pour ce projet.uv
la commande d'installation est la suivante :
uv venv .venv --python=3.9
source .venv/bin/activate # Linux/Mac
.venv\Scripts\activate # Windows
- Installation des dépendances
Après avoir activé l'environnement, exécutez-le :
uv pip install --group main -e .
Note : Ceci n'inclut pas le clonage vocal de xcodec
Dépendance, peut être installée séparément si nécessaire.
- Télécharger les modèles
Le modèle ChatGLM3-6B est utilisé par défaut. Il peut être téléchargé à l'aide de Hugging Face :
git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b
Si le téléchargement est lent, utilisez la communauté Magic Hitch :
export USE_MODELSCOPE_HUB=1 # Windows 用 set
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git
Le modèle Magic Match doit être remplacé modeling_chatglm.py
pour la version "Hugging Face".
Préparation des données
- Exporter les journaux de discussion
- téléchargement
PyWxDump
décryptage de la base de données Microsoft. - Cliquez sur "Sauvegarde des chats" et sélectionnez le format CSV pour exporter vos contacts ou vos chats de groupe.
- Placer le fichier exporté
wxdump_tmp/export/csv
Dossier dans./data/csv
. - Les données de l'exemple se trouvent dans le
data/example_chat.csv
.
- Traitement des données
Exécuter le script au format JSON :
./make_dataset/csv_to_json.py
Filtrage par défaut des informations sensibles telles que les numéros de téléphone portable et les numéros d'identification. Il se trouve dans la section blocked_words.json
L'ajout d'un mot interdit supprime toute la phrase contenant le mot interdit.
Modélisation de la mise au point
- Paramètres de configuration
- compilateur
settings.json
spécifier le chemin d'accès au modèle. - s'adapter
per_device_train_batch_size
répondre en chantantgradient_accumulation_steps
Adaptation de la mémoire vidéo. - Adaptation au volume des données
num_train_epochs
(tours de table) etlora_rank
évitant ainsi l'ajustement excessif.
- formation à une carte
python src/train_sft.py
Les auteurs se sont entraînés avec 20 000 données et la perte est tombée à 3,5 avec de bons résultats.
- Formation Doka
Installer DeepSpeed :
uv pip install deepspeed
Exécutez l'entraînement multicartes (remplacez "Nombre de cartes graphiques utilisées") :
deepspeed --num_gpus=使用显卡数量 src/train_sft.py
clonage de la parole
- Préparez un message vocal WeChat de plus de 5 secondes à placer dans
WeClone-audio
Dossier. - Exécuter les scripts appropriés (nécessite une installation)
xcodec
), le son généré est enregistré dans ce dossier. - La voix conserve l'intonation et l'émotion, avec une similitude allant jusqu'à 951 TP3T.
Robot de liaison WeChat
- Déploiement d'AstrBot
- Téléchargez et installez AstrBot (prend en charge WeChat, QQ et d'autres plateformes).
- Configurer la plateforme de messagerie (par exemple, WeChat).
- Démarrer le service API
python src/api_service.py
L'adresse par défaut est http://172.17.0.1:8005/v1
.
- Configuration d'AstrBot
- Ajoutez un fournisseur de services et sélectionnez OpenAI pour le type.
- API URL de base pour l'adresse locale, modèle pour
gpt-3.5-turbo
. - Fermer l'appel d'outil : envoyer la commande
/tool off reminder
. - Définissez un mot-guide cohérent avec celui utilisé pour le réglage fin.
exigences en matière de matériel
- Le réglage fin par défaut avec ChatGLM3-6B et LoRA nécessite 16 Go de mémoire vidéo.
- Autres options :
- QLoRA (précision 4 bits) : 6GB (modèle 7B) à 48GB (modèle 70B).
- Découpage paramétrique complet (16 bits) : 60 Go (7 Go) à 600 Go (70 Go).
- Le GPU est recommandé, le manque de mémoire vidéo peut être ajusté pour réduire la précision ou utiliser une carte multiple.
Conseils et astuces
- La quantité de données est d'au moins 2 000 entrées, plus la qualité est élevée, mieux c'est.
- Les échantillons de parole doivent être clairs et éviter les bruits de fond.
- Modèle d'essai disponible
web_demo.py
peut-êtretest_model.py
.
Une fois cette opération effectuée, votre sosie numérique sera en mesure de discuter et de répondre vocalement sur WeChat avec des résultats très proches de ceux de la personne.
scénario d'application
- Assistant journalier
La séparation numérique peut vous aider à répondre aux messages WeChat, par exemple en répondant automatiquement au message d'accueil d'un ami lorsque vous êtes occupé. - Pratique technologique
Les développeurs peuvent l'utiliser pour apprendre les grands modèles de langage et les techniques de clonage de la parole, et le code est ouvert à l'expérimentation pratique. - Fun Interactive
Laissez votre sosie numérique discuter avec vos amis en utilisant votre voix et votre ton pour plus de divertissement.
QA
- Que se passe-t-il lorsque la quantité de données est faible ?
Moins de 2000 données peuvent conduire à des modèles imprécis, il est recommandé de préparer plus de dialogues et de discours clairs. - Un ordinateur ordinaire peut-il le faire fonctionner ?
Nécessite un GPU avec 16 Go de mémoire vidéo, ce qui n'est pas toujours possible sur un ordinateur ordinaire. - Quelle est la similitude des clones sonores ?
Les voix générées avec les échantillons de 5 secondes avaient une similarité de 951 TP3T, avec une intonation et une émotion naturelles.
© déclaration de droits d'auteur
L'article est protégé par le droit d'auteur et ne doit pas être reproduit sans autorisation.
Articles connexes
Pas de commentaires...