VideoChat:实时语音互动数字人演示项目
支持端到端语音方案(GLM-4-Voice – THG)和级联方案(ASR-LLM-TTS-THG)。可自定义形象与音色,无须训练,支持音色克隆,首包延迟低至3s。
概述
该项目演示了与可定制数字人进行实时语音互动的功能。它支持端到端(GLM-4-Voice)和级联(ASR-LLM-TTS-THG)语音解决方案。用户可以自定义数字人的外观和声音,并支持声音克隆。初始延迟低至3秒。
详细说明
该项目提供了一个演示,展示如何创建一个可以进行实时语音对话的互动数字人。以下是其关键方面的详细介绍:
1. 核心功能:
- 实时语音互动: 项目的核心是使数字人与用户进行自然对话。
- 端到端和级联解决方案: 提供两种处理方式:
- 端到端(GLM-4-Voice): 通过多模态大语言模型(MLLM)直接处理语音和生成对话头像(THG)。
- 级联(ASR-LLM-TTS-THG): 该方法将处理过程分为几个阶段:自动语音识别(ASR)、大语言模型(LLM)、文本到语音转换(TTS)和对话头像生成(THG)。
- 定制化: 用户可以自定义数字人的外观和声音。
- 声音克隆: 项目支持声音克隆,允许用户为数字人提供特定或个性化的声音。
- 低延迟: 项目旨在实现低延迟,首包延迟约为3秒。
2. 技术选择:
- ASR: 使用FunASR进行自动语音识别。
- LLM: 使用Qwen作为大语言模型。
- 端到端MLLM: GLM-4-Voice处理端到端多模态处理。
- TTS: 支持多个TTS引擎:GPT-SoVITS、CosyVoice和edge-tts。
- THG: 使用MuseTalk进行对话头像生成。
3. 本地部署:
- 硬件要求:
- 级联解决方案:大约需要8GB的GPU内存(例如单个A100)。
- 端到端解决方案:大约需要20GB的GPU内存。
- 软件要求:
- Ubuntu 22.04
- Python 3.10
- CUDA 12.2
- PyTorch 2.3.0
- 设置步骤:
- 环境配置: 提供了如何克隆仓库、创建conda环境并安装必要Python包的说明。
- 权重下载: 提供了下载MuseTalk、GPT-SoVITS和GLM-4-Voice所需权重的说明,可以通过直接下载或使用ModelScope。
- 其他配置:
- API密钥: 解释了如何使用LLM和TTS模块的API密钥(Qwen API和CosyVoice API)。如果不想使用API密钥,还提供了本地推理的说明。这涉及使用
Qwen
进行本地LLM推理或使用Edge_TTS
进行TTS。
- API密钥: 解释了如何使用LLM和TTS模块的API密钥(Qwen API和CosyVoice API)。如果不想使用API密钥,还提供了本地推理的说明。这涉及使用
- 启动服务: 使用命令
python app.py
启动演示。
4. 定制化:
- 数字人外观: 用户可以添加自己录制的数字人头像视频。
- 数字人声音: 用户可以将声音样本添加到
/data/audio
文件夹中,并在app.py
文件中添加声音名称。支持的格式为x (GPT-So-Vits)
。
5. 关键文件:
app.py
: 主应用程序文件,处理Gradio界面和逻辑。src/llm.py
: 包含LLM实现(Qwen, Qwen_API)。src/tts.py
: 包含TTS实现(GPT_So_Vits_TTS, CosyVoice_API, Edge_TTS)。src/thg.py
: 使用MuseTalk处理对话头像生成。
Github:https://github.com/Henry-23/VideoChat
在线demo:https://www.modelscope.cn/studios/AI-ModelScope/video_chat