WeClone: formación de dobles digitales con registros de chat y voces de WeChat

Trae

Introducción general

WeClone es un proyecto de código abierto que permite a los usuarios crear dobles digitales personalizados a partir de registros de chat y mensajes de voz de WeChat, combinados con grandes modelos lingüísticos y tecnología de síntesis de voz. El proyecto puede analizar los hábitos de chat de un usuario para entrenar el modelo, y también puede generar clones de voz realistas con un pequeño número de muestras de voz. Con el tiempo, el doble digital puede vincularse a un bot de WeChat, lo que permite responder automáticamente a texto y voz. Esta herramienta es adecuada para quienes quieran utilizar un asistente de IA en WeChat o aprender tecnología de IA. El código es totalmente público y ha atraído a muchos entusiastas de la tecnología y desarrolladores.

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

 

Lista de funciones

  • Formación en registro de chatPerfeccionamiento de modelos de macrolenguaje para imitar el habla del usuario con transcripciones de chat de microcanales.
  • Clonación de discursos de alta calidad: Genera sonidos con una similitud de hasta 951 TP3T utilizando un modelo paramétrico de 0,5B y una muestra de voz de 5 segundos.
  • WeChat Robot EncuadernaciónConecta el split digital a WeChat para que admita respuestas automáticas de texto y voz.
  • Herramientas de preprocesamiento de datosProporciona scripts para convertir los registros de chat en datos de formación, filtrando la información sensible por defecto.
  • Optimización de la personalización de modelos: Admite la tecnología de ajuste fino LoRA para que el modelo sea más compatible con el idioma del usuario.

 

Utilizar la ayuda

WeClone requiere algunos conocimientos técnicos, como Python y Git, pero aquí tienes una guía detallada paso a paso para ayudarte a empezar, desde la instalación hasta el uso.

Proceso de instalación

  1. proyecto de clonación
    Abre un terminal y escribe:
git clone https://github.com/xming521/WeClone.git

A continuación, vaya al directorio del proyecto:

cd WeClone
  1. Configuración del entorno
    Se recomienda Python 3.9 para este proyecto. uv el comando de instalación es el siguiente:
uv venv .venv --python=3.9
source .venv/bin/activate  # Linux/Mac
.venv\Scripts\activate     # Windows
  1. Instalación de dependencias
    Después de activar el entorno, ejecútelo:
uv pip install --group main -e .

Nota: Esto no incluye la clonación de voz de xcodec Dependencia, puede instalarse por separado si es necesario.

  1. Descargar modelos
    El modelo ChatGLM3-6B se utiliza por defecto. Puede descargarse utilizando Hugging Face:
git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b

Si la descarga es lenta, utiliza la comunidad Magic Hitch:

export USE_MODELSCOPE_HUB=1  # Windows 用 set
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git

Hay que sustituir el modelo Magic Match modeling_chatglm.py para la versión Cara de Abrazo.

Preparación de datos

  1. Exportar registros de chat
  • descargando PyWxDumpdescifrando la base de datos de Microsoft.
  • Haz clic en "Copia de seguridad del chat" y selecciona el formato CSV para exportar tus contactos o chats de grupo.
  • Coloque el wxdump_tmp/export/csv Carpeta en ./data/csv.
  • Los datos del ejemplo están en data/example_chat.csv.
  1. Tratamiento de datos
    Pasa el script a formato JSON:
./make_dataset/csv_to_json.py

Filtrado por defecto de información sensible como números de teléfono móvil y DNI. Se encuentra en la sección blocked_words.json Al añadir una palabra prohibida se elimina toda la frase que la contiene.

Ajuste de modelos

  1. Parámetros de configuración
  • compilador settings.jsonespecifique la ruta del modelo.
  • adaptar per_device_train_batch_size responder cantando gradient_accumulation_steps Adaptación de la memoria de vídeo.
  • Ajuste al volumen de datos num_train_epochs(rondas) y lora_rankevitando el sobreajuste.
  1. formación con una tarjeta
python src/train_sft.py

Los autores entrenaron con 20.000 datos y la pérdida bajó a 3,5 con buenos resultados.

  1. Formación Doka
    Instala DeepSpeed:
uv pip install deepspeed

Ejecute el entrenamiento multitarjeta (sustituya "Número de tarjetas gráficas utilizadas"):

deepspeed --num_gpus=使用显卡数量 src/train_sft.py

clonación de voz

  • Prepara un mensaje de voz WeChat de más de 5 segundos para poner en WeClone-audio Carpeta.
  • Ejecute las secuencias de comandos pertinentes (requiere instalación) xcodec), el sonido generado se guarda en esa carpeta.
  • La voz conserva la entonación y la emoción, con una similitud de hasta 951 TP3T.

Robot WeChat vinculante

  1. Despliegue de AstrBot
  • Descarga e instala AstrBot (compatible con WeChat, QQ y otras plataformas).
  • Configurar la plataforma de mensajería (por ejemplo, WeChat).
  1. Iniciar el servicio API
python src/api_service.py

La dirección por defecto es http://172.17.0.1:8005/v1.

  1. Configuración de AstrBot
  • Añade un proveedor de servicios y selecciona OpenAI para Tipo.
  • API URL base para dirección local, modelo para gpt-3.5-turbo.
  • Cerrar la llamada a la herramienta: enviar comando /tool off reminder.
  • Establezca una palabra de aviso del sistema que sea coherente con la utilizada para el ajuste fino.

requisitos de hardware

  • El ajuste fino por defecto con ChatGLM3-6B y LoRA requiere 16 GB de memoria de vídeo.
  • Otras opciones:
  • QLoRA (precisión de 4 bits): de 6 GB (modelo 7B) a 48 GB (modelo 70B).
  • Recorte paramétrico completo (16 bits): de 60 GB (7 B) a 600 GB (70 B).
  • Se recomienda GPU, la falta de memoria de vídeo se puede ajustar a menor precisión o utilizar una multitarjeta.

Trucos y consejos

  • La cantidad de datos es de al menos 2.000 entradas; cuanto mayor sea la calidad, mejor.
  • Las muestras de voz deben ser claras y evitar el ruido de fondo.
  • Modelo de prueba disponible web_demo.py tal vez test_model.py.

Una vez hecho esto, tu doble digital podrá chatear automáticamente y responder por voz en WeChat con resultados muy parecidos a los de la persona.

 

escenario de aplicación

  1. Asistente diario
    La división digital puede ayudarte a responder a los mensajes de WeChat, por ejemplo respondiendo automáticamente al saludo de un amigo cuando estás ocupado.
  2. Prácticas tecnológicas
    Los desarrolladores pueden utilizarlo para aprender grandes modelos lingüísticos y técnicas de clonación del habla, y el código es abierto para la experimentación práctica.
  3. Diversión interactiva
    Deja que el doble digital chatee con tus amigos con tu voz y tono para mayor entretenimiento.

 

CONTROL DE CALIDAD

  1. ¿Qué ocurre cuando la cantidad de datos es baja?
    Menos de 2000 datos pueden dar lugar a modelos inexactos, por lo que se recomienda preparar más diálogos y un discurso claro.
  2. ¿Puede ejecutarlo un ordenador normal?
    Requiere una GPU con 16 GB de memoria de vídeo, lo que puede no ser posible en un ordenador normal, así que pruébalo en modo de baja precisión.
  3. ¿En qué se parecen los clones sonoros?
    Las voces generadas con las muestras de 5 segundos tenían una similitud de 951 TP3T, con entonación y emoción naturales.
© declaración de copyright
AiPPT

Artículos relacionados

Sin comentarios

ninguno
Sin comentarios...