[人工智能] [开源免费] 实时数字人 OpenTalking 项目演示

前几天在 V2EX 分享过一次 OpenTalking ,当时主要介绍的是“一张图片生成可对话角色”的玩法: https://www.v2ex.com/t/1209898#reply5 。 这几天我们又做了一版优化, 适配了更多的模型。目前支持 wav2lip 以及后处理流程、musetalk 、f...
[人工智能] [开源免费] 实时数字人 OpenTalking 项目演示
[人工智能] [开源免费] 实时数字人 OpenTalking 项目演示
https://www.v2ex.com/t/1209898#reply5

这几天我们又做了一版优化, 适配了更多的模型。目前支持 wav2lip 以及后处理流程、musetalk 、flashtalk 和 quicktalk 。

项目地址:
https://github.com/datascale-ai/opentalking

大家可以点击 B 站看看我们的演示视频: https://www.bilibili.com/video/BV1CsLz6WEF9/?vd_source=4820076c616e58ceb357c528a571ff11

这版主要优化的目标是:让实时数字人的完整链路更容易跑通,也更方便做演示和二次开发。

OpenTalking 本身不是一个单独的 talking head 模型,而是一个实时对话数字人框架。我们希望它能把 LLM 、STT 、TTS 、WebRTC 、字幕同步、用户打断和数字人视频驱动这些模块串成一条完整链路。

实际做下来之后会发现,数字人 demo 和数字人产品之间差距挺大。

如果只是给一段音频生成一个会说话的视频,很多模型都可以做。但如果要实现真正的实时对话,就会遇到很多工程问题:

用户语音输入
→ STT
→ LLM 流式回复
→ TTS
→ 数字人视频驱动
→ WebRTC 播放
→ 字幕同步
→ 用户打断
→ 状态回收并进入下一轮

任何一个环节没处理好,体验都会比较割裂。

比如用户已经开始下一轮了,但数字人还在说上一轮内容;或者字幕、音频、画面不同步;或者打断之后 TTS 停了,但视频端还在播放旧状态。

所以这版优化里,我们重点整理了会话链路、前端演示体验和几种后端模式。

目前 OpenTalking 支持几种模式:

Mock:不需要模型权重,适合快速跑通完整链路;
Local:适合本地单机 GPU 验证;
OmniRT:适合接远端推理服务;
Direct WebSocket:方便对接自己的数字人模型后端。



目前项目还比较早期,这版优化也还有不少可以继续改的地方。后面会继续完善低延迟交互、角色资产管理、更多 Avatar 后端接入和部署体验。

欢迎大家试用,也欢迎拍砖。
也想听听大家觉得实时数字人做到什么程度,才算真正可用。
来源: v2ex查看原文