一个能在移动设备上实时运行的数字人模型,这应该是第一个开源的如此轻量级的数字人模型。
源码地址:
https://github.com/anliyuan/Ultralight-Digital-Human
下载源码后:
1. 安装依赖:
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 opencv-python
pip install transformers
pip install numpy==1.23.5
pip install soundfile
pip install librosa
pip install onnxruntime
2. 下载模型:
https://drive.google.com/file/d/1e4Z9zS053JEWl6Mj3W9Lbc9GDtzHIg6b/view?usp=drive_link
把模型放到源码的data_utils/下。
3. 数据处理:
准备好你的视频,3到5分钟的就可以,必须保证视频中每一帧都有整张脸露出来的人物,声音清晰没有杂音,把它放到一个新的文件夹里面。
提取音频特征:
用了两个不同的特征提取器,分别是wenet和hubert,选择使用wenet的话,你必须保证你视频的帧率是20fps,如果选择hubert,视频帧率必须是25fps。hubert的效果更好,但是wenet速度更快,可以在移动端上实时运行。
cd data_utils
python process.py YOUR_VIDEO_PATH --asr hubert
4. 训练模型:
先训练一个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
5. 整合:
ffmpeg -i xxx.mp4 -i your_audio.wav -c:v libx264 -c:a aac result_test.mp4