当前位置: 首页 > ds >正文

基于Snoic的音频对口型数字人

Sonic 是一个基于深度学习的语音驱动数字人生成项目,支持将静态人像图与语音合成为口型同步的视频内容。项目整合了多个知名开源模型,包括 Whisper、SVD 和自定义的口型生成网络,具备出色的视觉效果与语音对齐能力。

本文梳理了 Sonic 项目的本地运行准备过程与模型部署流程,并覆盖了 Conda 环境创建、模型下载配置及推理命令说明,后续还扩展至与 ComfyUI 的整合实践,展示了如何将其应用于实际工作流中。

文章目录

  • 项目准备
  • 项目应用
  • 项目拓展
  • 总结

项目准备

使用 Anaconda 可以快速创建和管理 Python 环境,尤其适合初学者。配合 GPU 版本的 PyTorch,可充分利用显卡加速,显著提升深度学习任务的执行效率。

在使用 Snoic 项目时,确保完成环境配置、下载源码和预训练模型,是项目顺利运行的关键。

需求说明
配置要求显存8G以上,显卡起步1650(N卡)
环境安装Python初学者在不同系统上安装Python的保姆级指引
Win10+Python3.9+GPU版Pytorch环境搭建最简流程
项目源码Snoic
整合包使用AIGC工具平台-Snoic数字人对口型

模型下载地址

从 Hugging Face Hub 下载多个模型文件并存放在本地特定路径中,方便离线使用。huggingface_hub[cli] 安装了命令行工具,huggingface-cli download 可以无需登录直接将模型缓存至指定文件夹。这些模型一般用于语音识别、图像驱动生成视频、或者语音合成,属于项目中关键的推理组件。

  python -m pip install "huggingface_hub[cli]"huggingface-cli download LeonJoe13/Sonic --local-dir  checkpointshuggingface-cli download stabilityai/stable-video-diffusion-img2vid-xt --local-dir  checkpoints/stable-video-diffusion-img2vid-xthuggingface-cli download openai/whisper-tiny --local-dir checkpoints/whisper-tiny
模型名称来源仓库本地保存路径用途说明
SonicLeonJoe13/Soniccheckpoints/可能为动画风格或角色语音驱动模型(推测)
Stable Video Diffusion (img2vid-xt)stabilityai/stable-video-diffusion-img2vid-xtcheckpoints/stable-video-diffusion-img2vid-xt图像转视频模型,用于视频生成
Whisper Tinyopenai/whisper-tinycheckpoints/whisper-tinyOpenAI 的语音转文本模型,支持多语言识别

如果下载缓慢可以更换国内镜像。

使用 export HF_ENDPOINT=https://hf-mirror.com 命令切换即可。

在这里插入图片描述

虚拟环境

在本项目中可以使用 Conda 来创建和管理虚拟环境。在项目的根目录中,通过 Conda 创建一个新的虚拟环境,假设环境名称为 venv,并使用 Python 3.6 版本。

conda create --name venv python=3.10

创建好环境后,通过以下命令激活虚拟环境。命令行前会显示虚拟环境名称 venv,表示当前环境已激活。

conda activate venv 

在激活的虚拟环境中,按照项目提供的 requirements.txt 文件安装所需的 Python 包。

pip install -r requirements.txt

项目应用

使用预训练模型使用,下面是执行项目的标准结构命令。

python demo.py   '/path/to/input_image'  '/path/to/input_audio'  '/path/to/output_video'

基于 Sonic 模型的推理入口,支持将静态图像与语音音频合成为带有口型的视频。用户通过命令行传入图像路径、音频路径和输出路径,同时可选启用人脸裁剪、设置动态缩放比例或固定随机种子以提升复现性。参数设计简洁,适合快速测试与批量生成。

参数名类型默认值说明
image_pathstr必填输入图像路径,作为口型生成的驱动人脸图像
audio_pathstr必填输入音频路径,作为驱动内容的语音素材
output_pathstr必填生成视频的保存路径
--dynamic_scalefloat1.0图像动态缩放比例,适配分辨率时使用
--cropflagFalse是否启用自动人脸裁剪(基于检测框),启用后将生成 .crop.png 文件
--seedintNone随机种子,用于结果可复现控制

项目拓展

将 Sonic 推理流程集成进了 ComfyUI 工作流系统,实现了可视化、模块化的语音驱动头像动画生成。它通过音频驱动静态图像生成自然唇动动画,搭配扩散模型和语音感知网络,在保留语义一致性的同时生成同步口型、流畅过渡的人脸视频。

此项目特别适合视频播报、虚拟角色、数字人等 AIGC 场景,并提供了完整的 ComfyUI 工作流示例和模型支持。

进入 ComfyUI 的 custom_nodes 目录,克隆本模块并安装模块所需的依赖项。

cd ./ComfyUI/custom_nodes
git clone https://github.com/smthemex/ComfyUI_Sonic.git
pip install -r requirements.txt

Sonic 核心模型权重

下载地址:Google Drive 模型文件夹

ComfyUI/models/sonic/
├── audio2bucket.pth
├── audio2token.pth
├── unet.pth
├── yoloface_v5m.pt
├── whisper-tiny/
│   ├── config.json
│   ├── model.safetensors
│   └── preprocessor_config.json
├── RIFE/
│   └── flownet.pkl

Whisper 语音模型

获取:openai/whisper-tiny(Hugging Face)将下载后的文件放置于 sonic/whisper-tiny/ 文件夹中。

SVD 扩散模型

Sonic 使用 SVD 模型进行高质量帧生成。 svd_xt.safetensors, svd_xt_1_1.safetensors任选一个放置至如下路径:

ComfyUI/models/checkpoints/
├── svd_xt.safetensors 或 svd_xt_1_1.safetensors
  • 最新版示例(2024.05.16)

    在这里插入图片描述

总结

Sonic 项目的设计围绕端到端的语音驱动视频生成流程展开,最大特点在于模型结构与功能模块解耦清晰。音频识别、图像驱动、视频合成各环节使用了独立模型,相互配合完成高质量输出。同时命令行接口简洁,降低使用门槛,适配性良好。核心模型引入 Whisper 语音识别与 SVD 扩散算法,有效保障语义同步和帧间流畅性,支撑其数字人生成的稳定效果。

该模块也存在一些可优化点。模型下载依赖命令行且路径需手动管理,缺乏一体化的脚本封装或 GUI 界面,使用过程易受环境因素干扰。虚拟环境依赖较多,版本兼容性敏感。ComfyUI 集成部分虽然提升易用性,但节点功能粒度略粗,灵活性受限,调试空间不足。

http://www.xdnf.cn/news/15524.html

相关文章:

  • OPC数采服务器软件Takebishi为何比Kepware实施成本更低?
  • I/O 多路复用实现方式
  • kafka的部署
  • 第十二批深度合成算法备案情况
  • 分布式系统中设计临时节点授权的自动化安全审计
  • Codeforces Round 787 (Div. 3)(A,B,C,D,E,F,G)
  • NSSCTF Web 一点学习
  • 【2025/07/14】GitHub 今日热门项目
  • 015 程序地址空间入门
  • muduo面试准备
  • ThreadLocal深度解析:结构、存储机制与最佳实践
  • Linux ACL权限策略
  • 分享三个python爬虫案例
  • Docker搭建Redis分片集群
  • 【PTA数据结构 | C语言版】字符串连接操作
  • Kotlin集合接口
  • 【数据同化案例1】ETKF求解参数-状态联合估计的同化系统(完整MATLAB实现)
  • 问题记录:Fastjson序列化-空值字段处理
  • 跨域中间件通俗理解
  • 日记-生活随想
  • LVS负载均衡集群概述
  • C++--List的模拟实现
  • 【时时三省】(C语言基础)通过指针引用数组元素2
  • 20250711_Sudo 靶机复盘
  • 【读书笔记】《Effective Modern C++》第4章 Smart Pointers
  • 串口学习和蓝牙通信HC05(第八天)
  • es里的node和shard是一一对应的关系吗,可以多个shard分配到一个node上吗
  • Pandas-数据清洗与处理
  • 构建可落地的企业AI Agent,背后隐藏着怎样的技术密码?
  • redis汇总笔记