专栏名称: GitHubStore
分享有意思的开源项目
目录
相关文章推荐
三联生活周刊  ·  70后的我,学会做一个“退场”的父母 ·  21 小时前  
三联生活周刊  ·  越来越多的年轻人,开始“同居不领证”了? ·  21 小时前  
三联生活周刊  ·  孩子不想上学,大人不想上班,还有救吗? ·  2 天前  
王开东  ·  少年情怀总是诗 ·  2 天前  
王开东  ·  少年情怀总是诗 ·  2 天前  
为你读诗  ·  龙凤美玉,同心佑平安 ·  2 天前  
51好读  ›  专栏  ›  GitHubStore

实时语音交互数字人平台VideoChat

GitHubStore  · 公众号  ·  · 2024-11-19 21:50

正文

项目简介

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



技术选型

  • 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 分支。

$ 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_downloadsnapshot_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 中提供了 Qwen Qwen_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
  1. 安装完成后,参考这个链接进行部署,使用 Qwen_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. 启动服务

$ python app.py


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

5.1 自定义数字人形象

  1. /data/video/ 中添加录制好的数字人形象视频

  2. 修改 /src/thg.py Muse_Talk 类的 avatar_list ,加入 (形象名, bbox_shfit) ,关于bbox_shift的说明参考这个链接

  3. /app.py 中Gradio的 avatar_name 中加入数字人形象名后重新启动服务,等待完成初始化即可。







请到「今天看啥」查看全文