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

VideoChat:开源的数字人实时对话系统,支持自定义数字人的形象和音色

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. VideoChat 是一款开源的实时数字人对话系统,支持语音输入和实时对话功能,首包延迟低至 3 秒。
  2. 用户可以根据需要自定义数字人的形象和音色,实现个性化交互。
  3. VideoChat 支持 ASR-LLM-TTS-THG 和 MLLM-THG 两种生成方式,适用于直播、新闻播报等场景。

正文(附运行示例)

VideoChat 是什么

在这里插入图片描述

VideoChat 是开源的实时数字人对话系统,支持语音输入和实时对话功能。用户可以自定义数字人的形象和音色,无需训练即可进行音色克隆,首包延迟可低至 3 秒,适用于直播、新闻播报和聊天助手等多种实时语音交互场景。系统支持 GLM-4-Voice,提供 ASR-LLM-TTS-THG 和 MLLM-THG 两种生成方式。VideoChat 用 Gradio 框架构建交互式应用,支持流式视频输出,方便快速部署和构建。

VideoChat 的主要功能

  • 实时语音交互:支持用户用语音与数字人进行实时对话。
  • 形象和音色自定义:用户根据需要选择或设计数字人的外观和声音,实现个性化交互。
  • 语音输入和文本输出:将用户的语音输入转换为文本,再基于大语言模型生成回复文本。
  • 唇形同步:数字人在说话时,嘴唇动作与发出的声音同步,提高真实感。
  • 流式视频输出:基于 Gradio 框架,支持流式视频输出,让交互更加流畅。

VideoChat 的技术原理

  • 语音识别(ASR):用 FunASR 等工具将用户的语音输入转换为文本。
  • 大语言模型(LLM):基于 Qwen 等模型根据输入文本生成相应的回复文本。
  • 文本转语音(TTS):基于 GPT-SoVITS 等工具将文本回复转换为语音。
  • 说话人生成(THG):用 MuseTalk 等方案根据语音生成唇形同步的数字人视频。
  • 流式输出并行流水线:基于并行处理技术,边推理边播放,提高响应速度。
  • Gradio 框架:用 Gradio 5 实现流式视频输出,方便部署和构建交互式应用。

如何运行 VideoChat

0. 显存需求

  • 级联方案 (ASR-LLM-TTS-THG):约 8G,首包约 3s(单张 A100)。
  • 端到端语音方案 (MLLM-THG):约 20G,首包约 7s(单张 A100)。

对于不需要使用端到端 MLLM 的开发者,可以选择仅包含级联方案的 cascade_only 分支。

$ git checkout cascade_only

1. 环境配置

  • Ubuntu 22.04
  • Python 3.10
  • CUDA 12.2
  • Torch 2.3.0
$ git lfs install
$ git clone https://www.modelscope.cn/studios/AI-ModelScope/video_chat.git
$ conda create -n metahuman python=3.10
$ conda activate metahuman
$ cd video_chat
$ pip install -r requirement.txt

2. 权重下载

2.1 创空间下载(推荐)

创空间仓库已设置 git lfs 追踪权重文件,如果是通过 git clone https://www.modelscope.cn/studios/AI-ModelScope/video_chat.git 克隆,则无需额外配置。

2.2 手动下载
2.2.1 MuseTalk

参考 这个链接 下载权重文件。

目录如下:

./weights/
├── dwpose
│   └── dw-ll_ucoco_384.pth
├── face-parse-bisent
│   ├── 79999_iter.pth
│   └── resnet18-5c106cde.pth
├── musetalk
│   ├── musetalk.json
│   └── pytorch_model.bin
├── sd-vae-ft-mse
│   ├── config.json
│   └── diffusion_pytorch_model.bin
└── whisper└── tiny.pt
2.2.2 GPT-SoVITS

参考 这个链接 下载预训练模型。

2.2.3 GLM-4-Voice

app.py 中添加如下代码即可完成下载。

from modelscope import snapshot_download
snapshot_download('ZhipuAI/glm-4-voice-tokenizer', cache_dir='./weights')
snapshot_download('ZhipuAI/glm-4-voice-decoder', cache_dir='./weights')
snapshot_download('ZhipuAI/glm-4-voice-9b', cache_dir='./weights')

3. 其他配置

LLM 模块和 TTS 模块提供了多种方式,可自行选择推理方式。

3.1 使用 API-KEY(默认)

对于 LLM 模块和 TTS 模块,如果本地机器性能有限,可使用阿里云大模型服务平台百炼提供的 Qwen API 和 CosyVoice API,请在 app.py(line 14) 中配置 API-KEY。

参考 这个链接 完成 API-KEY 的获取与配置。

os.environ["DASHSCOPE_API_KEY"] = "INPUT YOUR API-KEY HERE"
3.2 不使用 API-KEY

如果不使用 API-KEY,请参考以下说明修改相关代码。

3.2.1 LLM 模块

src/llm.py 中提供了 QwenQwen_API 两个类分别处理本地推理和调用 API。若不使用 API-KEY,有以下两种方式进行本地推理:

  1. 使用 Qwen 完成本地推理。
  2. Qwen_API 默认调用 API 完成推理,若不使用 API-KEY,还可以使用 vLLM 加速 LLM 推理。可参考如下方式安装 vLLM
    $ git clone https://github.com/vllm-project/vllm.git
    $ cd vllm
    $ python use_existing_torch.py
    $ pip install -r requirements-build.txt
    $ pip install -e . --no-build-isolation
    
    安装完成后,参考 这个链接 进行部署,使用 Qwen_API(api_key="EMPTY", base_url="http://localhost:8000/v1") 初始化实例调用本地推理服务。
3.2.2 TTS 模块

src/tts.py 中提供了 GPT_SoVits_TTSCosyVoice_API 分别处理本地推理和调用 API。若不使用 API-KEY,可直接删除 CosyVoice_API 相关的内容,使用 Edge_TTS 调用 Edge 浏览器的免费 TTS 服务进行推理。

4. 启动服务

$ python app.py

5. 使用自定义数字人(可选)

5.1 自定义数字人形象
  1. /data/video/ 中添加录制好的数字人形象视频。
  2. 修改 /src/thg.pyMuse_Talk 类的 avatar_list,加入 (形象名, bbox_shfit),关于 bbox_shift 的说明参考 这个链接。
  3. /app.py 中 Gradio 的 avatar_name 中加入数字人形象名后重新启动服务,等待完成初始化即可。
5.2 自定义数字人音色

GPT-SoVits 支持自定义音色。demo 中可使用音色克隆功能,上传任意语音内容的参考音频后开始对话,或将音色永久添加到 demo 中:

  1. /data/audio 中添加音色参考音频,音频长度 3-10s,命名格式为 x.wav
  2. /app.py 中 Gradio 的 avatar_voice 中加入音色名(命名格式为 x (GPT-SoVits))后重新启动服务。
  3. TTS 选型选择 GPT-SoVits,开始对话。

6. 已知问题

  1. 报错无法找到某资源:按照报错提示下载对应的资源即可。
  2. 右侧视频流播放卡顿:需等待 Gradio 优化 Video Streaming 效果。
  3. 与模型加载相关:检查权重是否下载完整。

资源

  1. GitHub 仓库:https://github.com/Henry-23/VideoChat
  2. 在线体验 Demo:https://www.modelscope.cn/studios/AI-ModelScope/video_chat

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


http://www.mrgr.cn/news/70715.html

相关文章:

  • 《现代制造技术与装备》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • Simulink中Model模块的模型保护功能
  • linux下使用vscode编译及引用动态链接库
  • 矩阵的拼接
  • WPF窗体基本知识-笔记-命名空间
  • C++ —— string类(上)
  • 二维差分矩阵 模板题
  • 李佳琦回到巅峰背后,双11成直播电商分水岭
  • 链式结构二叉树
  • 【QT常用技术讲解】任务栏图标+socket网络服务+开机自启动
  • 项目管理平台盘点:2024推荐的9款优质工具
  • jmeter基础05_第1个http请求
  • 【论文速看】DL最新进展202411011-图像超分、Transformer
  • 分布式----Ceph部署(上)
  • 软件测试中的PIE模型
  • 11个简单易用的电商购物车设计案例
  • 算法每日双题精讲——滑动窗口(长度最小的子数组,无重复字符的最长子串)
  • 探索 Java 中的线程池自定义技巧:高效、灵活地管理并发任务!
  • D-Link NAS设备 account_mgr.cgi 未授权RCE漏洞复现(CVE-2024-10914)
  • 【linux】网络基础 ---- 应用层
  • PCL 点云拟合 Ransac拟合圆柱
  • FastHTML快速入门:服务器渲染超媒体应用的利器
  • 并发编程(9)——Actor/CSP设计模式
  • js 数据类型=》理解=》应用
  • 【Android、IOS、Flutter、鸿蒙、ReactNative 】文本点击事件
  • 工具收集 - java-decompiler / jd-gui