综合介绍
Ultralight Digital Human 是一个开源项目,旨在开发一个超轻量级的数字人模型,可以在移动设备上实时运行。该项目通过优化算法和模型结构,实现了在移动端设备上的流畅运行,适用于社交应用、游戏和虚拟现实等多种场景。用户可以轻松训练和部署自己的数字人模型,享受个性化和沉浸式的体验。
关于在移动端上运行也是没问题的,只需要把现在这个模型通道数改小一点,音频特征用wenet就没问题了。
功能列表
- 实时运行:模型可以在移动设备上实时运行,响应迅速。
- 轻量级设计:优化后的模型结构,适合资源有限的移动设备。
- 开源项目:代码和模型完全开源,用户可以自由修改和使用。
- 多场景应用:适用于社交应用、游戏、虚拟现实等多种场景。
- 音频特征提取:支持 wenet 和 hubert 两种音频特征提取方案。
- 同步网络:通过 syncnet 技术提升唇形同步效果。
- 详细教程:提供详细的训练和使用教程,帮助用户快速上手。
使用帮助
安装流程
- 环境准备:
- 安装 Python 3.10 及以上版本。
- 安装 PyTorch 1.13.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 transformers numpy==1.23.5 soundfile librosa onnxruntime
- 下载模型文件:
- 从以下链接下载 wenet encoder.onnx 文件,并放置在
data_utils/
目录下: 下载链接
- 从以下链接下载 wenet encoder.onnx 文件,并放置在
使用流程
- 准备视频:
- 准备一个 3-5 分钟的视频,确保每一帧都有完整的面部曝光,声音清晰无杂音。
- 将视频放置在一个新的文件夹中。
- 提取音频特征:
- 使用以下命令提取音频特征:
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 训练数字人模型:
python train.py --dataset_dir ./data_dir/ --save_dir ./checkpoint/ --asr hubert --use_syncnet --syncnet_checkpoint syncnet_ckpt
- 训练 syncnet 模型以获得更好的效果:
- 推理:
- 提取测试音频特征:
python extract_test_audio.py YOUR_TEST_AUDIO_PATH --asr hubert
- 运行推理:
python inference.py --dataset ./data_dir/ --audio_feat ./your_test_audio_hu.npy --save_path ./output.mp4 --checkpoint ./checkpoint/best_model.pth
- 提取测试音频特征:
注意事项
- 确保视频帧率与所选的音频特征提取方案匹配:wenet 为 20fps,hubert 为 25fps。
- 在训练和推理过程中,定期监控模型的 loss 值,选择最优的 checkpoint 进行训练。