AI个人学习
和实操指南
豆包Marscode1

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

综合介绍

WeClone 是一个开源项目,它通过微信聊天记录和语音消息,结合大语言模型和语音合成技术,让用户创建个性化的数字分身。项目能分析用户的聊天习惯来训练模型,还可以用少量语音样本生成逼真的声音克隆。最终,数字分身可以绑定到微信机器人,实现自动回复文字和语音。这个工具适合想在微信上用AI助手或学习AI技术的人。代码完全公开,吸引了不少技术爱好者和开发者参与。

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


 

功能列表

  • 聊天记录训练:用微信聊天记录微调大语言模型,模仿用户说话方式。
  • 高质量语音克隆:用0.5B参数模型和5秒语音样本,生成相似度高达95%的声音。
  • 微信机器人绑定:将数字分身接入微信,支持自动文字和语音回复。
  • 数据预处理工具:提供脚本将聊天记录转为训练数据,默认过滤敏感信息。
  • 模型个性化优化:支持LoRA微调技术,让模型更符合用户语言习惯。

 

使用帮助

WeClone 需要一定的技术基础,比如会用 Python 和 Git。下面是详细的操作步骤,帮你从安装到使用一步步上手。

安装流程

  1. 克隆项目
    打开终端,输入:
git clone https://github.com/xming521/WeClone.git

然后进入项目目录:

cd WeClone
  1. 设置环境
    项目建议用 Python 3.9。推荐用 uv 管理环境,安装命令如下:
uv venv .venv --python=3.9
source .venv/bin/activate  # Linux/Mac
.venv\Scripts\activate     # Windows
  1. 安装依赖
    激活环境后,运行:
uv pip install --group main -e .

注意:这不包括语音克隆的 xcodec 依赖,若需要可另行安装。

  1. 下载模型
    默认使用 ChatGLM3-6B 模型。可以用 Hugging Face 下载:
git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b

如果下载慢,可用魔搭社区:

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

魔搭模型需替换 modeling_chatglm.py 为 Hugging Face 版本。

数据准备

  1. 导出聊天记录
  • 下载 PyWxDump,解密微信数据库。
  • 点击“聊天备份”,选择 CSV 格式导出联系人或群聊记录。
  • 将导出的 wxdump_tmp/export/csv 文件夹放入 ./data/csv
  • 示例数据在 data/example_chat.csv
  1. 处理数据
    运行脚本转为 JSON 格式:
./make_dataset/csv_to_json.py

默认过滤手机号、身份证号等敏感信息。可以在 blocked_words.json 添加禁用词,整句含禁用词会被去掉。

模型微调

  1. 配置参数
  • 编辑 settings.json,指定模型路径。
  • 调整 per_device_train_batch_size 和 gradient_accumulation_steps 适配显存。
  • 根据数据量调整 num_train_epochs(轮次)和 lora_rank,避免过拟合。
  1. 单卡训练
python src/train_sft.py

作者用2万条数据训练,loss 降到 3.5,效果不错。

  1. 多卡训练
    安装 DeepSpeed:
uv pip install deepspeed

运行多卡训练(替换“使用显卡数量”):

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

语音克隆

  • 准备5秒以上微信语音消息,放入 WeClone-audio 文件夹。
  • 运行相关脚本(需安装 xcodec),生成的声音保存在该文件夹。
  • 声音保留语调和情感,相似度可达95%。

绑定微信机器人

  1. 部署 AstrBot
  • 下载并安装 AstrBot(支持微信、QQ 等平台)。
  • 配置消息平台(如微信)。
  1. 启动 API 服务
python src/api_service.py

默认地址为 http://172.17.0.1:8005/v1

  1. 配置 AstrBot
  • 添加服务提供商,类型选 OpenAI。
  • API Base URL 填本地地址,模型填 gpt-3.5-turbo
  • 关闭工具调用:发送指令 /tool off reminder
  • 设置与微调时一致的系统提示词。

硬件要求

  • 默认用 ChatGLM3-6B 和 LoRA 微调,需16GB显存。
  • 其他选项:
  • QLoRA(4位精度):6GB(7B模型)到48GB(70B模型)。
  • 全参数微调(16位):60GB(7B)到600GB(70B)。
  • 建议用GPU,显存不足可调低精度或用多卡。

使用技巧

  • 数据量至少2000条,质量越高越好。
  • 语音样本要清晰,避免背景噪音。
  • 测试模型可用 web_demo.py 或 test_model.py

完成后,你的数字分身就能在微信上自动聊天和语音回复,效果非常接近本人。

 

应用场景

  1. 日常助手
    数字分身能帮你回复微信消息,比如忙时自动回应朋友问候。
  2. 技术实践
    开发者可以用它学习大语言模型和语音克隆技术,代码开源适合动手尝试。
  3. 趣味互动
    让数字分身用你的声音和语气跟朋友聊天,增加娱乐性。

 

QA

  1. 数据量少会怎样?
    数据少于2000条可能导致模型不准,建议多准备对话和清晰语音。
  2. 普通电脑能跑吗?
    需要16GB显存的GPU,普通电脑可能不行,可用低精度模式试试。
  3. 声音克隆有多像?
    用5秒样本生成的声音,相似度高达95%,语调和情感都很自然。
未经允许不得转载:首席AI分享圈 » WeClone:用微信聊天记录和语音训练数字分身
zh_CN简体中文