【大模型】数字人 Sonic 的环境配置和使用

一、Sonic 的简单介绍

Sonic是由腾讯和浙江大学联合开发的开源数字人技术框架。它能够通过音频驱动肖像图片生成生动的面部表情和口型动作,从而制作出高度逼真的数字人口播视频,广泛应用于虚拟主播、数字客服等场景,具有高效、低成本的特点。

作者:由腾讯和浙江大学的研究团队开发。

GitHub链接 :https://github.com/jixiaozhong/Sonic。

发布年份:2025年。

主要功能

音频驱动:仅凭声音精准控制虚拟人的面部表情、唇部动作和头部运动,生成逼真又流畅的视频。

上下文增强音频学习:提取长时间片段的音频知识,提供面部表情和唇部运动的先验信息。

运动解耦控制器:独立控制头部和表情运动,实现更自然的动画效果。

时间感知位置移位融合:融合全局音频信息,生成长时间稳定的视频。

多样化视频生成:支持不同风格的图像和多种分辨率的视频生成。

应用场景

虚拟主播:可用于虚拟主播的视频生成,让虚拟主播能够根据音频内容做出自然的表情和动作。

动画制作:帮助动画创作者快速生成动画角色的口型和表情动画,提高制作效率。

游戏开发:在游戏中生成逼真的NPC表情和动作,增强游戏的沉浸感。

社交媒体:为社交媒体平台生成个性化的数字人视频内容,吸引用户关注。

二、Sonic 的环境配置

工程下载

bash

复制代码

git clone https://github.com/jixiaozhong/Sonic.git

cd Sonic

虚拟环境安装与激活

bash

复制代码

conda create -n Sonicpython=3.10

conda activate Sonic

环境自动安装

要求:需要支持 CUDA 的 NVIDIA GPU。该模型在单个 32G GPU 上进行了测试。本人使用 Tesla V100-SXM2-32GB

系统:Linux

然后项目目录下运行如下命令。

bash

复制代码

pip3 install -r requirements.txt

模型的下载

该项目使用的模型官网提供的是通过huggingface下载。方便起见,推荐使用modelscope下载。由于模型比较大,实际操作建议设置下载路径,下载到数据盘中。下面是我实际设置的路径【/opt/ai-platform/lldataset/240/modelscope/modelscope/hub/Sonic】,自己使用时修改为想要存放的路径即可。

复制代码

pip install modelscope

modelscope download --model zeabur/comfyui-sonic --local_dir /opt/ai-platform/lldataset/240/modelscope/modelscope/hub/Sonic/sonic

modelscope download --model stabilityai/stable-video-diffusion-img2vid-xt --local_dir /opt/ai-platform/lldataset/240/modelscope/modelscope/hub/Sonic/stable-video-diffusion-img2vid-xt

modelscope download --model openai-mirror/whisper-tiny --local_dir /opt/ai-platform/lldataset/240/modelscope/modelscope/hub/Sonic/whisper-tiny

下载结束后,确保路径【/opt/ai-platform/lldataset/240/modelscope/modelscope/hub/Sonic】下的结构如图:

复制代码

/opt/ai-platform/lldataset/240/modelscope/modelscope/hub/Sonic/

├── RIFE/

│ └── flownet.pkl

├── Sonic/

│ ├── audio2bucket.pth

│ ├── audio2token.pth

│ ├── configuration.json

│ ├── ...

│ └── unet.pth

├── stable-video-diffusion-img2vid-xt/

│ └── ...

├── whisper-tiny/

│ └── ...

└── yoloface_v5m.pt

然后在工程的目录下创建文件夹【checkpoints】然后创建软连接

bash

复制代码

mkdir checkpoints

ln -s /opt/ai-platform/lldataset/240/modelscope/modelscope/hub/Sonic/* checkpoints

ls -l checkpoints ## 查看信息

补充,当我们删除【checkpoints】,仅仅删除了软连接,不会影响到连接路径下的文件。

工程的运行

参考官方命令:

bash

复制代码

python3 demo.py \

'/path/to/input_image' \

'/path/to/input_audio' \

'/path/to/output_video'

个人运行命令如下

bash

复制代码

python3 demo.py \

'data/2d5d485a216668e6e75f7b52b92a6b46.jpeg' \

'data/3月26日-1.MP3' \

'data/3月26日-1.mp4'

工程运行期间,可能会报错缺少对应的库,直接 pip install 安装即可。

三、Sonic的数字人的测试

使用显卡Tesla V100-SXM2-32GB,生成30s的视频,耗时20分钟。

正确运行结束后,终端如下图:

生成视频时,查看gpu使用情况如下图,需要约16G显存。

3.2 效果测试

【先上测试结论】:

上传图片人物占比无硬性要求:上传的图片,人物可以漏出任意比例。相较于echomimic_v2 的必须露出上半身的要求,使用体验很佳。

侧面人物图片 可以生成对口型视频。

卡通人物 可以生成对口型视频。

【测试1 】一个小女孩。

生成的数字人如下图:

【测试2】文学泰斗。

生成的数字人如下图:

四、Sonic 的数字人使用体验

【记录日期】2025.3.27

【使用体验】实际使用效果不会一眼假,已经很贴近真人,但整个视频中可能存在个别帧稍显不流畅,值得深入研究、测试和使用。

五、Sonic 的 ComfyUI 版本

后续补充。