VideoChat

VideoChat

实时语音交互数字人,支持端到端语音方案(GLM-4-Voice - THG)和级联方案(ASR-LLM-TTS-THG)。可自定义形象与音色,无须训练,支持音色克隆,首包延迟低至3s。Real-time voice interactive digital human, supporting end-to-end voice solutions (GLM-4-Voice - THG) and cascaded solutions (ASR-LLM-TTS-THG). Customizable appearance and voice, supporting voice cloning, with initial package delay as low as 3s.

Stars: 811

Visit
 screenshot

VideoChat is a real-time voice interaction digital human tool that supports end-to-end voice solutions (GLM-4-Voice - THG) and cascade solutions (ASR-LLM-TTS-THG). Users can customize appearance and voice, support voice cloning, and achieve low first-packet delay of 3s. The tool offers various modules such as ASR, LLM, MLLM, TTS, and THG for different functionalities. It requires specific hardware and software configurations for local deployment, and provides options for weight downloads and customization of digital human appearance and voice. The tool also addresses known issues related to resource availability, video streaming optimization, and model loading.

README:

数字人对话demo

实时语音交互数字人,支持端到端语音方案(GLM-4-Voice - THG)和级联方案(ASR-LLM-TTS-THG)。可自定义形象与音色,支持音色克隆,首包延迟低至3s。

在线demo:https://www.modelscope.cn/studios/AI-ModelScope/video_chat

详细的技术介绍请看这篇文章

中文简体 | English

Star History

Star History Chart

TODO

  • [x] TTS模块添加音色克隆功能
  • [x] TTS模块添加edge-tts
  • [x] LLM模块添加qwen本地推理
  • [x] 支持GLM-4-Voice,提供ASR-LLM-TTS-THG和MLLM-THG两种生成方式
  • [ ] GLM-4-Voice集成vllm推理加速
  • [ ] 集成gradio-webrtc(需等待支持音视频同步),提高视频流稳定性

技术选型

本地部署

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 requirements.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 APICosyVoice 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. 报错无法找到某资源:按照报错提示下载对应的资源即可 alt text

  2. 右侧视频流播放卡顿:需等待Gradio优化Video Streaming效果

  3. 与模型加载相关:检查权重是否下载完整

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for VideoChat

Similar Open Source Tools

For similar tasks

For similar jobs