本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
前两天我在知乎刷到一个很有意思的问题:“一个人能做出什么开源项目?”
看到这个问题我非常有感触,因为今年我也做了一个开源项目(不是那种awesome xxx,或者skill类的项目),深切地感受到了一个人做开源项目有多不容易,即便是在有AI辅助的情况下仍然有诸多的阻碍需要开发者去克服。项目开源了2个多月,目前在github获得了1.3K star。如果你也有做开源的打算,不妨听听我的故事。
一句话说明这个项目: 我做了一个开源实时数字人 Agent 框架:只需要一张照片,就可以生成一个能和你视频聊天的数字人。
先别急着划走。我知道很多人对“数字人”可能有点反感。但我这里说的数字人跟你想的可能会不太一样。
缘起:为什么想做实时数字人
2026 年初迎来了 AI 视频生成大爆发,当时我随手用小云雀生成了一段“蒂法”的视频,我觉得效果非常惊艳。当时我心想要是有一天能够打破第四面墙,和蒂法视频通话就好了。她能理解我生活的世界,我也可以听她聊最终幻想设定之外的更多内容,为此我还发了条朋友圈。

开始动手
事情的转机在 2 月份,机缘巧合之下我发现了一个开源数字人模型——FlashTalk。这是一个音频驱动的数字人模型,这个模型最吸引人的地方是它做到了比主流数字人模型更好的效果,同时还能够进行实时推理。但这是有代价的,想要做到实时推理,需要 5 块 H200 显卡。巧的是,我当时恰好有一个能借到 H200 显卡的朋友。于是乎我花了一段时间去研究这个模型,我逐渐意识到我的愿望说不定真的能实现。
朋友的显卡终归是要还的,正在我苦于没有显卡可用时,开源界又丢出了一个新的模型——FlashHead(还是 FlashTalk 团队出品),这是一个 1.3B 的模型,这次不需要专业级显卡了,5090 就能跑。虽然效果比不上 FlashTalk,但是我终于玩得起了。
于是乎我开始动手,在 FlashHead 之上去构建一个应用。这个项目最核心的功能就是实现全双工端到端的实时视频通话。我在这个核心玩法的基础上拓展了其他一些更方便使用的功能,例如好看的 UI 界面、角色管理、角色定义,并且采用模块化设计,数字人底座、TTS、ASR、LLM 全部采用插件化方式实现,这样方便用户去定制一个数字人形象。然后是记忆模块,如何让定制的角色更加生动、更加有个性、更有活人感?
推进:从模型 Demo 做成完整应用
经过将近 3 个月的迭代,CyberVerse 现在已经集成了 FlashHead、LiveAct 这两个本地数字人模型,以及百度曦灵、讯飞数字人。这四个模型是我目前能找到的开源和商用方案里效果最好的一批。同时,CyberVerse 也集成了 OpenAI、千问、豆包等大模型,作为数字人的耳朵、大脑和声音。
受到 OpenClaw 和 Hermes Agent 的启发,我开始尝试将数字人与 Agent 结合起来。这样数字人就不仅仅是一个只会陪你聊天的纸片人,更是能够帮你干活的小帮手。在整个 Agent 的架构设计上,我采用了主 Agent + SubAgent 的两层设计。主 Agent 负责响应用户,SubAgent 负责去做更复杂的一些任务。目前,我采用了 pi Agent 作为 SubAgent 的核心,我喜欢 pi Agent 的简洁性和高扩展性。
最近我又加上了离线视频生成功能,让 CyberVerse 更像一个一站式数字人工作台:角色选择、角色编辑、离线生成和实时通话放在同一个系统里。只需要一张参考图,就可以创建自己的角色;如果不想要数字人形象,也可以关闭数字人模块,把它当作纯语音 Agent 使用。
我一个人把它做到了什么程度
角色选择

进入 CyberVerse 后,可以看到一个角色库。每张卡片对应一个数字人角色。 注:这里的角色仅用于 Demo 演示,不会随 CyberVerse 内置提供,也不用于商业用途。
角色编辑

添加图片注释,不超过 140 字(可选)
角色编辑页可以设置形象来源、角色名称、角色描述、语音模型、人设风格等。
离线视频生成

CyberVerse 支持离线视频生成,方便用户生成一些口播视频。离线视频生成最大的好处是不用考虑实时性,这样就可以生成更高画质的视频,支持文本驱动和语音驱动。
实时通话

最后的最后,就是这个项目最重要的功能了——实时视频通话!这个部分花了很多精力处理 WebRTC、音画同步、待机视频与说话片段衔接,以及主 Agent 与 SubAgent 的协调。
一个人做开源的体验
项目更新了 2 个多月了,基本是我一个人在做,也收到了社区贡献的 2 个 PR。

一个人做项目是一种什么体验呢?就像一个人安静地弹一首钢琴曲,偶尔有人路过驻足观看一下,也不用着急去演下一首,一切从心。有时候我也挺想有人跟我一起开发,每次发推文都说欢迎大家提 PR、提 issue,现在我已不再说这句话,就这么慢慢悠悠地一个人开发也挺好的。定个小目标吧,把这个项目坚持更新一年。
项目地址: https:github.com/dsd2077/CyberVerse