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.

WeClone:用微信聊天记录和语音训练数字分身

 

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

  1. 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
  1. 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
  1. 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.

  1. 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

  1. Exporter les journaux de discussion
  • téléchargement PyWxDumpdé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.
  1. 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

  1. Paramètres de configuration
  • compilateur settings.jsonspécifier le chemin d'accès au modèle.
  • s'adapter per_device_train_batch_size répondre en chantant gradient_accumulation_steps Adaptation de la mémoire vidéo.
  • Adaptation au volume des données num_train_epochs(tours de table) et lora_rankévitant ainsi l'ajustement excessif.
  1. 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.

  1. 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

  1. 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).
  1. Démarrer le service API
python src/api_service.py

L'adresse par défaut est http://172.17.0.1:8005/v1.

  1. 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-être test_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

  1. 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é.
  2. 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.
  3. Fun Interactive
    Laissez votre sosie numérique discuter avec vos amis en utilisant votre voix et votre ton pour plus de divertissement.

 

QA

  1. 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.
  2. 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.
  3. 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
AiPPT

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...