1 环境配置

1.1 系统环境配置

  1. 确保计算机使用的N卡,具有N卡驱动、cuda、cudnn环境
import torch
torch.cuda.is_available() # 输出true
  1. ffmpeg 自行下载,配置到环境变量

1.2 Python环境

1.2.1 backend 环境

进入:项目的根目录

conda create -n backend python=3.9
conda activate backend
pip install -r requirements.txt
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
1.2.2 ultralight 模块

安装环境

进入:项目的根目录\external_modules\ultralight下

conda create -n dh python=3.10
conda activate dh
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia
conda install mkl=2024.0
pip install -r requirements.txt
测试模型

数据准备

cd data_utils
python process.py YOUR_VIDEO_PATH --asr hubert

先训练一个syncnet,效果会更好。

cd ..
python syncnet.py --save_dir ./syncnet_ckpt/ --dataset_dir ./data_dir/ --asr hubert

然后找一个loss最低的checkpoint来训练数字人模型。

cd ..
python train.py --dataset_dir ./data_dir/ --save_dir ./checkpoint/ --asr hubert --use_syncnet --syncnet_checkpoint syncnet_ckpt

在推理之前,需要先提取测试音频的特征(之后会把这步和推理合并到一起去),运行

python data_utils/hubert.py --wav your_test_audio.wav  # when using hubert

or

python data_utils/python wenet_infer.py your_test_audio.wav  # when using wenet

# 推理
python inference.py --asr hubert --dataset ./your_data_dir/ --audio_feat your_test_audio_hu.npy --save_path xxx.mp4 --checkpoint your_trained_ckpt.pth

# 合并音频和视频
ffmpeg -i xxx.mp4 -i your_audio.wav -c:v libx264 -c:a aac result_test.mp4
1.2.3 fish-speech 模块

安装环境

进入:项目的根目录\external_modules\fish-speech下

conda create -n fish-speech python=3.10
conda activate fish-speech
mkdir -p checkpoints/fish-speech-1.4
huggingface-cli download fishaudio/fish-speech-1.4 --local-dir checkpoints/fish-speech-1.4
pip install torch torchvision torchaudio
pip install -e .
测试模型

推理过程分为以下几个步骤:

a. VQGAN编码:

python tools/vqgan/inference.py \
 -i "paimon.wav" \
 --checkpoint-path "checkpoints/fish-speech-1.4/firefly-gan-vq-fsq-8x1024-21hz-generator.pth"

此步骤将生成一个fake.npy文件。

b. 语言模型生成:

python tools/llama/generate.py \
 --text "要转换的文本" \
 --prompt-text "你的参考文本" \
 --prompt-tokens "fake.npy" \
 --checkpoint-path "checkpoints/fish-speech-1.4" \
 --num-samples 2 \
 --compile

此命令会在工作目录下创建codes_N文件,其中N是从0开始的整数。

c. VQGAN解码:

python tools/vqgan/inference.py \
 -i "codes_0.npy" \
 --checkpoint-path "checkpoints/fish-speech-1.4/firefly-gan-vq-fsq-8x1024-21hz-generator.pth"

注意:请确保按顺序执行上述步骤,并在每个步骤之间检查生成的文件。

1.2.4 wav2lip-onnx-256 模块(可选)

安装环境

进入:项目的根目录\external_modules/wav2lip-onnx-256

# 创建目录
mkdir -p checkpoints
# 下载wav2lip_256.onnx 和 wav2lip_256_fp16.onnx到checkpoints文件下
wget https://github.com/instant-high/wav2lip-onnx-256/releases/download/v1.0.0/wav2lip_256.onnx -O checkpoints/wav2lip_256.onnx
wget https://github.com/instant-high/wav2lip-onnx-256/releases/download/v1.0.0/wav2lip_256_fp16.onnx -O checkpoints/wav2lip_256_fp16.onnx
# 创建环境
conda create -n wav2lip_onnx python=3.8
conda activate wav2lip_onnx
pip install -r requirements.txt
测试模型

python inference_onnxModel.py --checkpoint_path "checkpoints\wav2lip_256.onnx" --face "D:\some.mp4" --audio "D:\some.wav" --outfile "D:\output.mp4" --nosmooth --pads 0 10 0 0 --fps 29.97

如果源有问题,请尝试 (-i https://pypi.tuna.tsinghua.edu.cn/simple/)

2 文件配置

2.1 .env配置文件

请在项目根目录创建 .env 文件,并添加以下配置:

# 项目安装目录配置 更换为自己的项目路径,注意一定要单斜杠
PROJECT_ROOT=E:\your_path\marketing_creator_pro_max_backend

# 本机地址
LOCAL_HOST=http://127.0.0.1:8000

FISH_SPEECH_CONDA_ENV=fish-speech
ULTRALIGHT_CONDA_ENV=dh

# 阿里云OSS配置
OSS_ENDPOINT=your_oss_endpoint
OSS_ACCESS_KEY_ID=your_access_key_id
OSS_SECRET_ACCESS_KEY=your_secret_access_key
OSS_BUCKET_NAME=your_bucket_name

3 下载必备的材料

参考网站百度网盘 点击这里

将网盘的data/public目录下的内容放入该项目项目根目录/data/public目录下(不存在则自行创建)

4 启动项目

  1. 返回项目根目录,在backend环境中启动项目:
    uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
    
    启动后:数据库会自行创建,并自动创建表结构(backend_schema.sql的DML语句需要手动执行,即Insert语句
  2. 访问API文档: 在浏览器中打开 http://127.0.0.1:8000/docs

注意:请确保在运行主项目之前已经正确配置了fish-speech、ultralight模块。每次使用不同的模块时,需要切换到相应的Conda环境。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐