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

基于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.lryc.cn/news/588325.html

相关文章:

  • PyTorch 数据加载全攻略:从自定义数据集到模型训练
  • 7月14日作业
  • 选择一个系统作为主数据源的优势与考量
  • 【数据结构】基于顺序表的通讯录实现
  • Hello, Tauri!
  • The Network Link Layer: WSNs 泛洪和DSR动态源路由协议
  • Python:打造你的HTTP应用帝国
  • 院级医疗AI管理流程—基于数据共享、算法开发与工具链治理的系统化框架
  • VScode链接服务器一直卡在下载vscode服务器/scp上传服务器,无法连接成功
  • Fiddler——抓取https接口配置
  • linux服务器换ip后客户端无法从服务器下载数据到本地问题处理
  • TextIn:文档全能助手,让学习效率飙升的良心软件~
  • Git commit message
  • 2.逻辑回归、Softmax回归
  • 数据驱动 AI赋能|西安理工大学美林数据“数据分析项目实战特训营”圆满收官!
  • # 电脑待机后出现死机不能唤醒怎么解决?
  • 基于HarmonyOS的智能灯光控制系统设计:从定时触发到动作联动全流程实战
  • 天地图前端实现geoJson与wkt格式互转
  • Java图片处理实战:如何优雅地实现上传照片智能压缩
  • 1688商品详情接口逆向分析与多语言SDK封装实践
  • Redis高可用集群一主从复制概述
  • Spring Boot Cucumber 测试报告嵌入方法
  • S7-1200 中 AT 覆盖参数的应用:灵活访问数据区域的实用指南
  • STM32小实验1--点亮LED
  • 【HarmonyOS】元服务概念详解
  • 学习日志09 python
  • 若依(RuoYi)框架项目结构全解析
  • 注解@Autowired和@Resource的区别
  • USB读写自动化压力测试
  • 【React Native】ScrollView 和 FlatList 组件