[开源免费] 实时数字人 OpenTalking 项目演示 - V2EX
爱意满满的作品展示区。
xuxin123122

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

  •  
  •   xuxin123122 12h 27m ago 485 views

    最近我们把自己做实时数字人过程中的一套工程框架整理了一下,开源出来了,项目叫 OpenTalking 。

    Github 传送门是: https://github.com/datascale-ai/opentalking

    演示视频: https://www.bilibili.com/video/BV1CsLz6WEF9/?vd_source=4820076c616e58ceb357c528a571ff11

    它不是一个单纯的 talking head 模型,也不是只跑一段视频生成 demo 的脚本,而是一个更偏“实时对话数字人产线”的开源框架。简单来说,我们希望它能把 LLM 、TTS 、STT 、WebRTC 、字幕事件、角色音色、用户打断、前端交互和数字人视频驱动模型这些东西串起来,让一个数字人真正可以进行实时对话。

    我自己在做这个方向的时候,一个很强烈的感受是:数字人 demo 和数字人产品之间,其实隔着一大段工程距离。

    Imgur

    如果只是让一张脸动起来,或者让一段音频驱动口型,这件事现在已经有不少开源模型可以做了,比如 Wav2Lip 、MuseTalk 、LivePortrait 、FlashTalk 这些路线。它们各自解决了数字人链路里的某一个关键环节,有的偏口型同步,有的偏头像驱动,有的偏高质量视频生成。但是当你真的想把它做成一个可以和用户连续对话、可以部署、可以切换模型、可以接入真实业务的系统时,问题就会变复杂很多。

    用户说一句话之后,系统要先做语音识别;识别出来的文本要交给 LLM ; LLM 最好是流式生成,不然等待时间会很长;生成的文本要交给 TTS ; TTS 产生音频之后,还要同步驱动数字人视频;前端要低延迟播放音视频;字幕要和语音尽量对齐;用户中途打断时,LLM 、TTS 、视频流和字幕都要一起停掉,然后进入下一轮对话。

    这些环节单独拿出来看,好像每一步都有现成工具。但真正串在一起之后,就会发现大量时间都花在“胶水层”上:状态管理、事件同步、模型服务适配、前后端通信、WebRTC 播放、配置管理、错误恢复、延迟控制、不同后端切换等等。

    OpenTalking 想解决的就是这部分问题。

    我们不希望它只绑定某一个具体的视频生成模型,而是希望它成为一个相对通用的实时数字人对话框架。你可以先用 Mock 模式把整条链路跑通,也可以在本地接入轻量模型做单机部署,还可以通过远端推理服务接入更高质量的数字人生成后端。对于开发者来说,这样的好处是:你不需要一上来就把所有组件都搭完,而是可以分阶段验证。

    比如你刚开始只是想看看实时数字人产品的完整流程,那么可以直接用 Mock 模式。这个模式下不需要下载模型权重,也不需要准备复杂的视频推理环境,主要用来验证前端、后端、LLM 、TTS 、字幕和对话状态是否能跑通。

    如果你想进一步在消费级显卡上跑一个真实的数字人,可以尝试本地推理路线,比如 QuickTalk 或 Wav2Lip 这类方案。它们更适合单机验证和轻量部署,适合开发者在自己的机器上做实验。

    如果你对画质、稳定性和吞吐要求更高,可以走远端推理服务的路线,比如通过 OmniRT 接入 FlashTalk 这类后端。这样 OpenTalking 本身负责对话编排和前端交互,真正重的推理部分可以放在更合适的机器上。

    我觉得这也是现在实时数字人领域很重要的一个趋势:模型本身当然重要,但系统工程同样重要。一个数字人是否“可用”,不只是看它单帧画质有多好,还要看端到端延迟是否足够低,音画是否同步,用户打断是否自然,多轮对话是否稳定,角色配置是否方便,部署和调试是否简单。

    很多时候,用户感知到的体验并不是“这帧脸部细节提升了多少”,而是“它是不是能像一个实时存在的人一样响应我”。这就要求我们把 LLM 、语音、视频和前端交互放在一个统一系统里一起优化。

    OpenTalking 目前已经包含了 WebUI 前端、后端 API 、会话编排、多种模型后端模式、角色配置、字幕事件和基础的实时对话链路。前端里可以配置数字人角色、音色、LLM 、TTS 、STT 和数字人驱动模型,也可以查看模型连接状态,并进行完整的对话演示。后端则主要负责编排一次对话中发生的各种事件,包括用户输入、模型回复、语音合成、字幕生成、视频播放和打断控制。

    目前项目里支持的路线包括 Mock 、Local 、OmniRT 和 Direct WebSocket 。Mock 适合快速跑通; Local 适合本地部署; OmniRT 适合接入远端推理服务; Direct WebSocket 则方便开发者对接自己的模型服务。

    我们后面还会继续完善几个方向。一个是接入更多数字人模型后端,让不同 talking head 、portrait animation 、audio-to-video 模型都能更方便地挂进来。另一个是继续优化低延迟交互,包括流式 LLM 、流式 TTS 、字幕事件同步和用户打断。还有一个方向是角色资产管理,比如角色形象、音色、人设 prompt 、静默视频、默认开场白、表情风格等,未来都应该可以更系统地配置和复用。

    我个人比较看好实时数字人在几个场景里的应用,比如 AI 新闻主播、在线客服、教育讲解、企业知识库问答、电商讲解、虚拟 IP 和本地化陪伴类应用。尤其是现在 LLM 、TTS 和 STT 已经比较成熟,接下来真正决定体验的,可能就是谁能把整条链路做得更稳定、更低延迟、更容易部署。

    当然,OpenTalking 现在还处在比较早期的阶段,很多地方还不够完善。我们把它开源出来,一方面是希望给做数字人的开发者一个可以直接上手的工程起点,另一方面也希望和更多对实时数字人感兴趣的人一起讨论:数字人到底应该怎么从一个演示视频,走向一个真正可用的交互产品。

    如果你也在关注实时数字人、Talking Head 、LLM Agent 、TTS/STT 、WebRTC 或私有化部署,可以看看这个项目。

    GitHub: https://github.com/datascale-ai/opentalking

    欢迎 Star 、提 issue ,也欢迎一起交流这个方向。

    No Comments Yet
    About     Help     Advertise     Blog     API     FAQ     Solana     2875 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 04:05 PVG 12:05 LAX 21:05 JFK 00:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86