cren / weclone-audio /README.md
CrenCren's picture
Upload folder using huggingface_hub
88aba71 verified

A newer version of the Gradio SDK is available: 5.46.1

Upgrade

WeClone-audio 模块

WeClone-audio 是一个使用微信语音消息克隆声音的模块,使用模型实现高质量语音合成。

显存需求

Spark-TTS 推荐

  • 0.5B 模型: 约 4GB 显存

Llasa (已弃用)

  • 3B 模型: 约 16GB 显存
  • 1B 模型: 约 9GB 显存

1. 导出微信语音数据

1.1 准备工作

  • 使用 PyWxDump 提取微信聊天记录
  • 下载软件并解密数据库
  • 点击聊天备份,导出类型选择"解密文件"

1.2 环境配置

语音导出仅支持Windows环境 WeClone Audio使用uv作为包管理器。

# 为 PyWxDump 创建 Python 环境和安装依赖
# 
uv venv .venv-wx --python=3.10
.venv-wx\Scripts\activate
uv pip install pywxdump

1.3 导出语音文件

python weclone-audio/src/get_sample_audio.py --db-path "导出数据库路径" --MsgSvrID "导出聊天记录的MsgSvrID字段"

2. 语音合成推理

Spark-TTS模型

环境安装 可不创建新环境,直接安装sparktts依赖组到WeClone共主环境

uv venv .venv-sparktts --python=3.10
source .venv-sparktts/bin/activate
uv pip install --group sparktts -e .

git clone https://github.com/SparkAudio/Spark-TTS.git weclone-audio/src/Spark-TTS

模型下载

通过python下载:

from huggingface_hub import snapshot_download

# 假设此 Python 代码在 weclone-audio 目录下运行 模型将下载到 weclone-audio/pretrained_models/Spark-TTS-0.5B
snapshot_download("SparkAudio/Spark-TTS-0.5B", local_dir="pretrained_models/Spark-TTS-0.5B")

或通过git下载:

# 假设当前在 weclone-audio 目录
mkdir -p pretrained_models

# Make sure you have git-lfs installed (https://git-lfs.com)
git lfs install
git clone https://huggingface.co/SparkAudio/Spark-TTS-0.5B pretrained_models/Spark-TTS-0.5B

使用代码推理

import os
import SparkTTS  
import soundfile as sf
import torch

from SparkTTS import SparkTTS 

# 假设此 Python 代码在 weclone-audio 目录下运行
# 模型路径相对于当前目录
model_path = "pretrained_models/Spark-TTS-0.5B"
sample_audio = "sample.wav"
output_audio = "output.wav"

model = SparkTTS(model_path, "cuda")

with torch.no_grad():
    wav = model.inference(
        text="晚上好啊,小可爱们,该睡觉了哦",
        prompt_speech_path=sample_audio, # 使用相对路径
        prompt_text="对,这就是我万人敬仰的太乙真人,虽然有点婴儿肥,但也掩不住我逼人的帅气。",
    )
    sf.write(output_audio, wav, samplerate=16000) # 使用相对路径

Llasa模型 (已弃用)

2.1 环境配置

# 创建并配置推理环境 
## 可不创建新环境,与LLaMA-Factory环境共用
uv venv .venv-xcodec --python=3.9
source .venv-xcodec/bin/activate
uv pip install --group xcodec -e .
# 退出环境
deactivate

# 系统依赖安装(如果需要)
sudo apt install python3-dev 
sudo apt install build-essential

2.2 使用代码推理

如果遇到问题,请尝试将参考音频转换为WAV或MP3格式,将其裁剪至15秒以内,并缩短提示文本。

import os
import soundfile as sf
# 假设 text_to_speech.py 位于 src/ 或其他可导入的位置
from text_to_speech import TextToSpeech


sample_audio_text = "对,这就是我万人敬仰的太乙真人,虽然有点婴儿肥,但也掩不住我逼人的帅气。"  # 示例音频文本
# 假设此 Python 代码在 weclone-audio 目录下运行
# 示例音频路径相对于当前目录
sample_audio_path = "sample.wav"
output_audio = "output.wav"


tts = TextToSpeech(sample_audio_path, sample_audio_text)
target_text = "晚上好啊"  # 生成目标文本
result = tts.infer(target_text)
sf.write(output_audio, result[1], result[0])  # 使用相对路径