尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

实时数字人怎么做选型与部署?LiveTalking 架构拆解与落地清单

实时数字人怎么做选型与部署?LiveTalking 架构拆解与落地清单 实时数字人怎么做选型与部署LiveTalking 架构拆解与落地清单【免费下载链接】metahuman-streamReal time interactive streaming digital human项目地址: https://gitcode.com/GitHub_Trending/me/metahuman-streamLiveTalking 是一个实时交互流式数字人引擎输入文本或语音经 LLM 生成回复、TTS 合成语音、实时口型同步最终经 WebRTC / RTMP / 虚拟摄像头推流输出覆盖虚拟主播、AI 数字人客服、培训授课等场景。跑通之前开发者最常问的其实是这么几个问题数据到底怎么流三个模型怎么挑部署卡在哪一步形象怎么换并发到底扛得住几路这篇按问题拆开讲。问题一一条消息进来到画面输出要经过哪几步整条链路可以拆成五段这也是 README.md 里架构图想表达的事API 层/human接文本echo 复读或 chat 对话两种模式/humanaudio直接接音频文件每条连接分配独立sessionid天然支持多会话并发。LLM 引擎默认对接 Qwen 系列dashscope也可换成任意 OpenAI 兼容网关在 llm.py 里注册 provider 即可。TTS 引擎模块化设计tts/ 目录下内置 edgetts、gpt-sovits、cosyvoice、tencent、doubao 等 9 种引擎--tts参数切换。特征提取 渲染层从音频里抽 Mel 等声学特征喂给口型模型推理生成的口型区域再平滑贴回原始高清视频。推流层WebRTC、RTMP、虚拟摄像头三选一详见问题五。打断也在这套链路里实现说话过程中新的输入到达TTS 直接截断重合成口型跟着新音频走不需要重启会话。问题二wav2lip、musetalk、ultralight 三个模型怎么选这是参考文档里最缺的一张表。三个内置数字人模型的定位和官方实测性能如下数据来自 README 的实测记录模型定位实测 FPS推荐显卡wav2lip256默认方案质量/性能平衡RTX 3060: 60RTX 3080Ti: 120RTX 3060 及以上musetalk效果上限更高RTX 3080Ti: 42RTX 4090: 72RTX 3080Ti 及以上ultralight轻量级显存占用最低—低显存环境优先选型逻辑一句话显存紧张、要堆并发选 wav2lip256单路画质优先选 musetalk边缘设备或显存捉襟见肘选 ultralight。启动参数--model指定模型--avatar_id指定形象两者是配对关系——不同模型的形象文件不通用。问题三8G 显存环境的完整部署清单官方在 Ubuntu 22.04 Python 3.12 PyTorch 2.9.1 CUDA 12.8 环境验证过部署分四步。第一步拉代码建环境git clone https://gitcode.com/GitHub_Trending/me/metahuman-stream conda create -n livetalking python3.12 conda activate livetalking pip install torch2.9.1 torchvision0.24.1 torchaudio2.9.1 --index-url https://download.pytorch.org/whl/cu128 pip install -r requirements.txt第二步放模型。wav2lip256.pth拷进models/目录并改名为wav2lip.pth形象包wav2lip256_avatar1解压到data/avatars/下。第三步注意端口服务端要开放 TCP 8010 和 UDP 1–65536WebRTC 走 UDP 打洞内网部署忘开 UDP 是连不上的第一嫌疑。最后启动python app.py --transport webrtc --model wav2lip --avatar_id wav2lip256_avatar1浏览器打开http://serverip:8010/index.html点开始连接输入文字就能看到数字人开口。首页就是最完整的联调面板WebRTC 连接控制、文本驱动POST /human、音频驱动POST /humanaudio、录制控制POST /record都在这一个页面里右上角还能跳到 Avatar 生成页和管理后台。想走纯 API 对接的话接口文档在 docs/api.md。问题四不用现成形象怎么换成自己的数字人有两条路都能 5 分钟内走完。网页路径访问/avatar.html上传一段真人视频后端自动完成人脸检测、特征提取、形象参数生成产物落到data/avatars/目录拿到新的 avatar_id 即可用。API 路径批量或程序化生成时调 Avatar 生成接口任务提交、进度查询、任务删除三件套文档见 docs/avatar_api.md。生成之后不用改代码——app.py 里global_avatars对已加载形象做全局缓存请求参数里换个avatar_id就是换个形象同一进程可以同时服务多个数字人。另外custom_config参数支持动作编排 JSON不说话的空档播自定义视频让形象别一直干站着。问题五输出到浏览器还是直播间四种 transport 的区别--transport参数控制出口四种模式各有适用面webrtc默认浏览器低延迟直连适合对话类产品延迟体验最好。rtmp推流到直播平台的标准协议适合无人直播挂机。rtcpush服务端主动发起推送多路并发时按max_session循环分配推流地址--push_url配目标地址。virtualcam把数字人注册成系统虚拟摄像头钉钉、腾讯会议、OBS 这类工具直接当真人摄像头用——会议里选到 OBS Virtual Camera 就是它在工作。虚拟摄像头模式和 RTMP 模式有个细节启动时后台直接拉起渲染线程开始推流不等客户端连接。这意味着这两类模式下服务一启动就在烧 GPU空跑时留意功耗。问题六并发几路算实时怎么判断不达标先给判定标准后端日志里有inferfpsGPU 推理帧率和finalfps最终推流帧率两个指标两者都 ≥ 25 才算真实时——视频按 25fps 生成低于这个值画面就开始掉帧。然后是并发瓶颈的分布规律这点比支持 N 路并发的说法更有用所有人都不说话时并发上限取决于CPU每路视频压缩编码耗 CPU所有人同时说话时瓶颈转到GPU每路口型推理耗显存和算力。所以压测要看双场景静默并发和全量说话并发取短板。并发上限本身由--max_session控制config.yaml 默认 5 路--batch_size默认 16是推理批大小显存富余时可以调大换吞吐。问题七想接自己的 TTS 或 LLM从哪下手改扩展入口是 registry.pyTTS、Avatar、Output 三类模块都走同一套去中心化注册机制新模块写一个文件、打注册标记不用动主流程。实际要改的位置基本就三处换 TTS在 tts/ 里按base_tts.py实现接口--tts指定插件名换 LLM改 llm.py 里的 provider 配置环境变量名、默认模型或直接用--llm_provider orcarouter走 OpenAI 兼容网关全局配置config.yaml 集中管理模型、音色REF_FILE/REF_TEXT 支持声音克隆、端口、并发数CLI 参数优先级更高适合临时覆盖。管理侧还有两个现成页面/admin.html实时监控会话状态和全局配置/asr是独立的语音识别测试页接口见 docs/admin_api.md。LiveTalking 把实时数字人的完整链路——文本/语音进、口型同步、四路出口——都做成了可插拔模块选型、部署、换形象、调并发各有明确抓手。下一步clone 仓库、按问题三下载模型权重先跑通第一路 WebRTC 会话再按需加并发。【免费下载链接】metahuman-streamReal time interactive streaming digital human项目地址: https://gitcode.com/GitHub_Trending/me/metahuman-stream创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表