VideoChat
实时交互数字人,可自定义形象与音色,支持音色克隆,对话延迟低至3s。Real-time voice interactive digital human, customizable appearance and voice, supporting voice cloning, with initial package delay as low as 3s.
实时语音交互数字人,支持端到端(MLLM - THG)和级联(ASR-LLM-TTS-THG)。可自定义形象与音色,支持音色克隆,首包延迟低至3s。 The project is written primarily in Python, distributed under the MIT License license, first published in 2024. It has gained significant community traction with 1,260 stars and 164 forks on GitHub. Key topics include: asr, dialogue-systems, digital-human, end-to-end, gradio-python-app.
数字人对话demo
实时语音交互数字人,支持端到端(MLLM - THG)和级联(ASR-LLM-TTS-THG)。可自定义形象与音色,支持音色克隆,首包延迟低至3s。
技术介绍:量子位推文
中文简体 | English
Star History
技术选型
- ASR (Automatic Speech Recognition): FunASR
- LLM (Large Language Model): Qwen
- End-to-end MLLM (Multimodal Large Language Model): GLM-4-Voice
- TTS (Text to speech): GPT-SoVITS, CosyVoice, edge-tts
- THG (Talking Head Generation): MuseTalk
本地部署
0. 显存需求
-
级联方案(ASR-LLM-TTS-THG):约8G,首包约3s(单张A100)。
-
端到端语音方案(MLLM-THG):约20G,首包约7s(单张A100)。
如果不需要使用端到端 MLLM,请选择仅包含级联方案的cascade_only分支。
bash$ git checkout cascade_only
1. 环境配置
- ubuntu 22.04
- python 3.10
- CUDA 12.2
bash$ 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
requirements中的版本仅供参考,最新依赖请查看对应模块的Repo说明
2. 权重下载
2.1 创空间下载(推荐)
创空间仓库已设置git lfs追踪权重文件,如果是通过git clone https://www.modelscope.cn/studios/AI-ModelScope/video_chat.git克隆,则无需额外配置
2.2 手动下载
2.2.1 MuseTalk
参考这个链接
目录如下:
plaintext./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中添加如下代码即可完成下载。
pythonfrom 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的获取与配置。
pythonos.environ["DASHSCOPE_API_KEY"] = "INPUT YOUR API-KEY HERE"
3.2 不使用API-KEY
如果不使用API-KEY,请参考以下说明修改相关代码。
3.2.1 LLM模块
src/llm.py中提供了Qwen和Qwen_API两个类分别处理本地推理和调用API。若不使用API-KEY,有以下两种方式进行本地推理:
- 使用
Qwen完成本地推理。 Qwen_API默认调用API完成推理,若不使用API-KEY,还可以使用vLLM加速LLM推理。可参考如下方式安装vLLM:
安装完成后,参考这个链接进行部署,使用bash$ 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-isolationQwen_API(api_key="EMPTY",base_url="http://localhost:8000/v1")初始化实例调用本地推理服务。
3.2.2 TTS模块
src/tts.py中提供了GPT_SoVits_TTS和CosyVoice_API分别处理本地推理和调用API。若不使用API-KEY,可直接删除CosyVoice_API相关的内容,使用Edge_TTS调用Edge浏览器的免费TTS服务进行推理。
4. 启动服务
bash$ python app.py
5. 使用自定义数字人(可选)
5.1 自定义数字人形象
- 在
/data/video/中添加录制好的数字人形象视频 - 修改
/src/thg.py中Muse_Talk类的avatar_list,加入(形象名, bbox_shfit),关于bbox_shift的说明参考这个链接 - 在
/app.py中Gradio的avatar_name中加入数字人形象名后重新启动服务,等待完成初始化即可。
5.2 自定义数字人音色
GPT-SoVits支持自定义音色。demo中可使用音色克隆功能,上传任意语音内容的参考音频后开始对话,或将音色永久添加到demo中:
- 在
/data/audio中添加音色参考音频,音频长度3-10s,命名格式为x.wav - 在
/app.py中Gradio的avatar_voice中加入音色名(命名格式为x (GPT-SoVits))后重新启动服务。 - TTS选型选择
GPT-SoVits,开始对话
6. 已知问题
-
报错无法找到某资源:按照报错提示下载对应的资源即可

-
右侧视频流播放卡顿:需等待Gradio优化Video Streaming效果
-
与模型加载相关:检查权重是否下载完整
Contributors
Showing top 1 contributor by commit count.
