metahuman-stream 完全指南:4 步搭建实时交互流式数字人
【免费下载链接】metahuman-streamReal time interactive streaming digital human项目地址: https://gitcode.com/GitHub_Trending/me/metahuman-stream
想让数字人真正"开口对话",而不是只会播一段录好的口播视频,绕不开几个硬问题:口型跟语音是否同步、能不能被打断、多个人同时接入怎么办、画面怎么推出去。metahuman-stream(LiveTalking)开源项目就是冲着这套问题来的:它是一款实时交互流式数字人引擎,文本或语音驱动虚拟形象实时说话、口型同步,再通过 WebRTC、RTMP 或虚拟摄像头把画面推出去。
metahuman-stream 能帮你做什么
抛开实现细节,这个项目给你的价值大致是三件事:
- 多套数字人模型可选:内置 wav2lip、musetalk、ultralight 等模型,从轻量到高质量各有取舍,按你的显卡和场景挑,核心代码分别在
avatars/wav2lip/、avatars/musetalk/、avatars/ultralight/目录下,模块化封装,换模型只改一个启动参数。 - 全链路 AI 能力开箱即用:语音识别(基于 Whisper,见
avatars/musetalk/whisper/)、LLM 对话(llm.py)、多引擎 TTS(tts/下支持 EdgeTTS、GPT-SoVITS、腾讯云等)串成一条流水线,你不用自己拼装 ASR→LLM→TTS→口型推理。 - 输出与并发是"生产级"的:WebRTC / RTMP / 虚拟摄像头三种推流方式,支持说话被打断、多会话并发(
config.yaml里max_session控制),前端还有现成的 Web 控制台和 HTTP API。
系统内部的数据流向如下图所示,文本/音频请求进来,经过 LLM、TTS、音频特征提取、数字人模型渲染,最终从选定的推流通道出去:
把环境备好:系统要求与一键安装
先说环境底线,装不上多半卡在这几项上:
- Ubuntu 22.04(官方已验证)
- Python 3.12(建议 3.10+)
- PyTorch 2.9.1 + CUDA 12.8(用
nvidia-smi确认自己的 CUDA 版本,按 PyTorch 官网装对应版本)
装依赖只需两步,先克隆仓库再装包:
git clone https://gitcode.com/GitHub_Trending/me/metahuman-stream cd metahuman-stream pip install -r requirements.txt如果 pip 装 torch 版本不对,参考assets/faq.md里的常见问题(比如 protobuf 版本冲突、pytorch3d 编译失败都有现成解法)。
装完依赖还差一块:模型权重。把wav2lip256.pth拷贝到项目的models/目录并重命名为wav2lip.pth,再解压wav2lip256_avatar1.tar.gz到data/avatars/目录,作为你的第一个数字人形象(仓库models/目录里留了put models here.txt提示文件)。
让数字人真正跑起来:从启动到第一路流
场景一:浏览器实时对话
一条命令启动服务:
python app.py --transport webrtc --model wav2lip --avatar_id wav2lip256_avatar1注意服务端要开放 TCP 8010 和 UDP 1–65536 端口(WebRTC 需要)。启动后浏览器打开http://服务器IP:8010/index.html,页面上点"开始连接",数字人视频立刻出现;在右侧文本框输入一句话提交,数字人马上用 TTS 合成的声音开口回应,点"打断"还能让它闭嘴——这就是"实时交互"的完整体验:
不想用页面也可以用 API:POST /human发文本驱动说话,POST /humanaudio直接播音频文件,接口细节看 docs/api.md。
场景二:虚拟摄像头接入线上会议
换个启动参数,数字人就能"进"腾讯会议、Zoom、钉钉:
python app.py --transport virtualcam --model wav2lip --avatar_id wav2lip256_avatar1然后在会议软件的摄像头列表里选OBS Virtual Camera(需先装并启动 OBS),浏览器打开http://localhost:8010/virtualcam.html输入文本,数字人就对着"镜头"说话,Ctrl+Enter发送、Escape打断。完整步骤(含 OBS 配置)见 docs/virtualcam_guide.md:
快速自检清单
- 日志里
inferfps和finalfps都 ≥25 才算真正实时,达不到先降分辨率或换更轻的模型 - 不说话时并发吃 CPU,说话时并发吃 GPU:wav2lip 推荐 RTX 3060 及以上,musetalk 推荐 RTX 3080Ti 及以上
- 每路视频压缩走 CPU,分辨率越高越吃 CPU,别一上来就拉满
想玩得更深:换声音、换大脑、插自己的插件
换 TTS 和 LLM
全部配置集中在 config.yaml,命令行参数可以覆盖它。换音色改tts字段(edgetts/gpt-sovits/tencent/doubao等),配合REF_FILE+REF_TEXT做声音克隆;换对话大脑改llm_provider和llm_model(默认走 dashscope 的 Qwen 系列,也兼容 OpenAI 风格网关)。
自定义数字人与插件扩展
- 上传一段人物视频就能在线生成新的数字人形象,页面入口
/avatar.html,接口见 docs/avatar_api.md;监控会话、改全局配置走/admin.html和 docs/admin_api.md。 - 想加自己的 TTS 或推流模块,仓库用的是装饰器注册机制(registry.py),实现一个基类再
@register("tts", "你的名字")即可被调度,tts/、streamout/目录下的现有模块都是现成范例。 - 不说话时播放自定义视频(动作编排)、全身视频拼接、录音(
/record)等能力也都有对应 API,动手前翻一遍 docs/api.md 能省不少事。
装环境、放权重、起服务、开页面——四步走完,一个能听、能答、能被随时打断的实时交互数字人就在线了。剩下的调优空间,都在配置和插件层里。
【免费下载链接】metahuman-streamReal time interactive streaming digital human项目地址: https://gitcode.com/GitHub_Trending/me/metahuman-stream
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考