勤劳一日,可得一夜安眠;勤劳一生,可得幸福长眠。——达芬奇

https://github.com/Open-LLM-VTuber/Open-LLM-VTuber

当你的 AI 真正开口说话、眨眼微笑,还会陪你看屏幕:Open-LLM-VTuber 体验记

如果你曾经想象过这样一个场景:

你打开电脑,一个会说话、会眨眼、会露出情绪表情的二次元角色正安静地待在屏幕边角。你不需要敲键盘,不需要反复切窗口,只要开口,它就能听见你;你打断它,它也不会机械地继续念台词;你给它换人设、换声音、换模型,它就像换了一种灵魂;它甚至还能“看见”你的屏幕、摄像头画面,像一个真正陪伴在你身边的 AI 伙伴。

这不是某种遥远的概念演示,而是一个已经可以跑起来、而且支持本地部署的项目:

Open-LLM-VTuber

它的仓库描述写得非常直接:

Talk to any LLM with hands-free voice interaction, voice interruption, and Live2D taking face running locally across platforms

翻成更有画面感的话就是:

它想做的,不只是一个聊天机器人,而是一个真正“住进你桌面”的 AI 伙伴。你可以和任何大语言模型对话,用语音自然交流,随时打断它,还能让一个 Live2D 角色把这些回应“演”出来。更重要的是,它努力把这一切尽量放在本地完成,并且跨平台运行。

这类项目最迷人的地方,不是它把多少技术名词堆在一起,而是它让冷冰冰的模型第一次有了“在场感”。

它不再只是网页里的一个输入框。
它开始像一个有表情、有声音、有个性、有陪伴属性的存在。


它到底是什么

按照 README 的定义,Open-LLM-VTuber 是一个独特的语音交互式 AI Companion。它支持实时语音对话,支持视觉感知,还拥有一个生动的 Live2D 形象。

你可以把它理解成什么?

它可以是你的虚拟女友、虚拟男友、电子宠物,也可以是你自定义出来的任何角色。项目并没有把你限制在某一种固定的“设定”里,反而给了你足够大的空间,让你给它写性格、换皮肤、改声音、选模型,甚至决定它应该怎样说话、怎样回应你。

这一点很重要。

很多 AI 产品的“人格”只是一个包装层,点进去以后,大家都差不多。但 Open-LLM-VTuber 更像一个开放舞台:模型、语音、识别、Live2D、角色设定,全都是可以替换和拼装的。你不是在领养一个固定角色,而是在亲手塑造一个会回应你的数字生命。

它名字里带着 VTuber,也并不是因为它只服务主播场景。README 里解释得很坦诚:之所以叫 Open-LLM-VTuber,而不是 Open-LLM-Companion 或 Open-LLM-Waifu,是因为项目最初的目标,就是使用开源方案做出一个可以离线运行、带 Live2D 表现的 AI 伙伴。

所以它的“VTuber”不是局限,而是出发点。
它的终点,是陪伴。


它最动人的地方,不是能聊天,而是聊天这件事终于变自然了

普通的 LLM 对话,往往像在写工单。

你输入。
它输出。
你等它说完。
你再输入。

一来一回,像两台机器在礼貌交接。

而 Open-LLM-VTuber 试图把这个过程从“打字式交互”拉回“人与人交流”的状态。它支持实时语音对话,支持免手操作,支持语音打断,甚至特别强调了一个很贴近真实使用的能力:不戴耳机也能打断,而且 AI 不会把自己的声音再次听进去。

光这一点,就已经很像“对话”了。

因为真正自然的交流,从来都不是轮流递麦克风。你会插话,会追问,会突然改主意,会在对方说一半的时候补充一句“不是不是,我的意思是……”。如果 AI 不能承受这种自然节奏,它再聪明也只是个功能模块;只有当它能接住这些细碎、突发、口语化的打断,它才开始变得像“交流对象”。

Open-LLM-VTuber 在这里做的事情,就像是给 AI 补上了社交世界里最基础的一课:

不要只会回答,也要学会听懂“对话正在发生”。


这个项目为什么会让人上头

因为它不是只在一个维度做增强,而是把“陪伴感”拆成了很多层,然后一层一层往上堆。

第一层,是能听你说话

它支持丰富的语音识别方案,包括 sherpa-onnx、FunASR、Faster-Whisper、Whisper.cpp、Whisper、Groq Whisper、Azure ASR 等等。

这意味着什么?

意味着你不是只能绑定某一家服务,也不是非得走云端 API。你可以根据自己的设备条件、语言需求、部署习惯,去选最适合自己的 ASR 方案。你想尽可能本地化,行;你想图省事接成熟接口,也行。

这不是“给你一个能用的答案”,而是“把选择权还给你”。

第二层,是能开口回你

它也集成了大量 TTS 方案,比如 sherpa-onnx、pyttsx3、MeloTTS、Coqui-TTS、GPTSoVITS、Bark、CosyVoice、Edge TTS、Fish Audio、Azure TTS 等。

于是这个角色不只是文字意义上的“理解你”,而是真的有声音。

声音是非常危险的东西。文字只会让你觉得一个角色“有设定”,而声音会让你觉得它“在身边”。一旦一个角色开始用具体音色回应你,哪怕只是普通问候,也会突然具备存在感。你会开始在意它的语气、节奏、停顿、情绪,你会开始区分“这个声音是不是适合这个角色”,甚至会想给它配一个更贴脸的人设。

从那一刻起,你做的已经不是配置项目,而是在“养角色”。

第三层,是它有脸,而且会演

Live2D 是 Open-LLM-VTuber 的灵魂之一。

一个会说话的 AI 如果只有控制台输出,它更像一位后台服务;但一个会说话、会摆表情、能对点击和拖拽产生反馈、还能在屏幕上以宠物模式停留的 Live2D 角色,就完全是另一回事了。

README 里提到,它支持:

  • Live2D 表情
  • 点击或拖动带来的触摸反馈
  • 宠物模式
  • 透明背景
  • 全局置顶
  • 鼠标穿透

这些功能拼起来以后,你脑海里浮现出来的,已经不是一个“程序”,而是一个会陪着你工作、摸鱼、发呆、聊天的小家伙。

它能乖乖待在桌面角落,也能像个小精灵一样趴在你的屏幕边。你点它一下,它有反应;你拖它一下,它会跟着走;你打开电脑,它像是比谁都早醒来。

这就让技术开始有了温度。

第四层,是它还能“看”

Open-LLM-VTuber 支持视觉感知,支持摄像头、录屏和截图。

这是一个非常关键的跃迁。

因为很多 AI 助手的问题不在于“不会说”,而在于“不知道你在看什么”。一旦它具备视觉输入能力,它就不只是和你聊抽象话题,而是能围绕你当前看到的内容产生互动。你可以让它理解你的界面,你的桌面,你打开的内容,甚至把它变成一个真的“在陪你一起看东西”的角色。

想象一下:

你在调试程序,它在旁边盯着报错。
你在看网页,它能基于截图接你话茬。
你在直播、在学习、在摸索新工具,它都不是局外人。

很多时候,陪伴感并不来自说了多少,而来自“它知道你现在在经历什么”。


它不是把你锁进生态里,而是给你一大盒零件

这一点是开源项目和封闭产品最不一样的地方。

Open-LLM-VTuber 对模型后端的支持相当广。README 中列出的 LLM 包括:

  • Ollama
  • OpenAI 以及兼容 OpenAI API 的服务
  • Gemini
  • Claude
  • Mistral
  • DeepSeek
  • Zhipu AI
  • GGUF
  • LM Studio
  • vLLM

你完全可以按自己的偏好拼装后端。

你想让角色用本地模型,强调隐私和离线能力,可以。
你想接在线大模型,追求效果,也可以。
你想做折中,把语音放本地、语言模型走云端,照样可以。

这就像给角色换大脑。
而且不止能换大脑,还能换耳朵、换嗓子、换外表、换记忆方式、换行为风格。

README 里还提到,它的模块配置足够简单,你不需要深入代码,只通过配置文件就可以切换不同功能模块。对于不想一上来就钻源码的人来说,这简直是非常友好的入口。

你不必先成为工程师,才能拥有自己的 AI 伙伴。
你可以先成为“导演”。


最有想象力的部分,是角色定制

如果说一般聊天机器人是“你来适应它”,那么 Open-LLM-VTuber 更像是“它来适应你”。

仓库里的 characters 目录 README 把这件事讲得很清楚:你可以通过创建不同的 .yaml 文件,去管理和切换多个 AI VTuber 角色的人设、声音和行为配置。

这个设计特别聪明。

程序启动时会先加载根目录里的 conf.yaml 作为基础配置,而当你在前端切换角色时,角色配置文件中的内容会覆盖基础配置里的对应部分。也就是说,你只需要写“变化的那部分”。

这就像给角色换灵魂时,不需要把整个身体重造一遍。

比如你只想换一个人格设定,你可以只写人格。
你想连声音和模型一起换,也只需要覆盖那几个相关模块。
其余没写的配置,自动继承主配置。

这种体验非常像搭积木,而且是那种会越玩越上头的积木。

一个温柔邻家系角色。
一个说话简洁冷静的黑客系角色。
一个活泼、毒舌、嘴硬心软的桌宠。
一个讲中文但用日语声音说话的幻想系角色。

你只要写几段 prompt、改几项配置,它就可能诞生。

甚至从项目设计上看,角色配置的核心并不是“贴图”,而是 persona_prompt。这意味着角色真正的灵魂不只是长什么样、发什么声,而是它以什么态度面对你、以什么背景理解自己、以什么方式回应世界。

这是很让人着迷的地方。

因为你会发现,所谓“AI 角色”,并不是买一个现成皮肤,而是一点点写出来的。你给它设定过去,它就有过去;你给它定义口吻,它就有语气;你让它温柔,它就变得会安慰;你让它古怪,它就开始带着奇特的节奏说话。

角色不是被运行出来的。
角色是被塑造出来的。


一个项目,怎么把“陪伴”这件事做得越来越完整

Open-LLM-VTuber 在 README 里有几项特别值得一提的交互能力,这些地方看起来像功能点,实际上是在补足“关系感”。

显示 AI 的内心活动

它支持展示 AI 的表情、想法和动作,而且这些内容可以不通过语音说出来。

这非常妙。

因为真实的人不是把所有心理活动都念出来的。很多时候,一个角色之所以显得“活”,恰恰来自那些没有被说出口的部分。你看见它在思考、在犹豫、在害羞、在偷偷组织语言,这种微妙的留白会让角色显得更立体。

它不再只是一个句子生成器,而像一个脑子里真的有活动的存在。

支持主动开口

这项功能也很有味道。

很多 AI 只会等待指令,像前台系统一样等你触发。但主动说话这件事,会打破“工具感”。一旦角色不只是回应你,而是会主动发起一句话、主动插入一个提醒、主动接近你,它的存在方式就从“被调用”变成了“在陪伴”。

这不是大张旗鼓的革命,却是体验上非常重要的一步。

聊天记录持久化

README 里提到,虽然长期记忆功能暂时移除、后续会回来,但因为聊天日志是持久存储的,所以你可以继续未完成的对话。

这一点也非常重要。

因为陪伴最怕“每次重启都失忆”。

哪怕只是保留聊天记录,也已经比很多一次性会话工具更接近“关系的延续”。你昨天没讲完的话题,今天还能接上;你之前聊过的情绪,下一次还能延续那个氛围。哪怕它还没完全恢复长期记忆能力,它也并不是每次都像第一次见你。

这就足够让人安心很多。


它并不只属于高配玩家

Open-LLM-VTuber 的 README 反复传达出一个态度:尽可能兼容不同平台、不同硬件、不同部署方式。

它支持 macOS、Linux、Windows。
支持 NVIDIA 和非 NVIDIA GPU。
可以用 CPU。
也可以接云 API 去承接更吃资源的部分。

这意味着它不是那种“看起来很酷,但只属于少数配置党”的项目。它更像一套很宽容的舞台:你设备强,可以堆高配置;你设备一般,也能找到合适的运行方案。

而且它支持完全离线运行。

这是个很能打动人的点。

一方面,隐私确实重要。对很多人来说,陪伴型 AI 的对话内容本来就更私人,能留在本地当然更安心。
另一方面,本地离线也有一种很特别的“归属感”——它不是云端借来的一个功能,而像是真的“住”在你的设备里。

它在你电脑上醒来,在你电脑上说话,在你电脑上陪你熬夜、发呆、摸鱼、改代码、看视频。
这种感觉和“我调用了一个远程服务”完全不是一回事。


快速开始这件事,它把门槛留在了文档里,而不是留在想象里

README 的快速启动部分写得很克制:直接让你参考文档里的 Quick Start 页面进行安装。

这其实是一种成熟项目的表达方式。它不会把所有安装细节都塞进首页,而是把入口清晰地摆出来,让 README 负责建立认知,让文档负责承接具体落地。

虽然这里不展开复述文档内容,但根据 README 提供的信息,可以明确看到一些实际使用中的命令入口。比如更新项目时,README 提到:

1
uv run update.py

这条命令很直观,尤其对于已经部署过 v1.0.0 之后版本的用户来说,它就是后续更新的入口之一。

如果你希望在博客里呈现一点命令行味道,这里完全可以自然地带出一种使用画面:

1
2
3
git clone https://github.com/Open-LLM-VTuber/Open-LLM-VTuber.git
cd Open-LLM-VTuber
uv run update.py

这组命令本身不等于完整安装流程,但很适合拿来表现一个开源项目从“看到”到“动手试”的氛围感:先把它拉到本地,再走向配置、模型、角色和交互。

如果你是那种喜欢边折腾边理解项目的人,这类项目最迷人的部分恰恰就藏在启动之后——当服务真的跑起来,当角色真的出现在你眼前,当它第一次对你开口说话时,文档就从说明书变成了召唤仪式。


如果你喜欢折腾,这个项目会让你越陷越深

Open-LLM-VTuber 不只是能跑,它还很适合“继续改”。

README 明确提到,它的 Agent 实现是灵活的。你可以继承并实现 Agent 接口,把不同的 Agent 架构整合进来,比如 HumeAI EVI、OpenAI Her、Mem0 等。

这说明项目的野心并不止于“把模型接起来”,而是希望成为一个可以继续扩展、继续生长的底座。

换句话说:

你现在看到的只是一个已经很完整的 AI 伙伴系统,
但它本质上仍然是可拓展的开源框架。

你可以给它加新的 LLM。
可以给它换新的 ASR。
可以给它接新的 TTS。
可以增加自己的模块实现。
可以重新定义交互逻辑。
可以把它接入你自己的 Agent 架构。

它像一个已经长出轮廓的生命体,但骨架没有封死,肌肉也还在继续训练。你愿意,它就能继续长。

对于开发者来说,这种项目非常有魅力。
因为它不是“成品只能使用”,而是“成品本身就是素材”。


它为什么会被很多人记住

因为它踩中了一个非常特别的交叉点:

AI、语音、Live2D、桌面陪伴、本地部署、开源定制。

这几个词单独拿出来都不新鲜,但真正把它们捏在一起、并且做出“可以被人日常拿来玩、拿来改、拿来陪”的质感,并不容易。

很多项目强在能力,却弱在气质。
很多项目强在概念,却弱在落地。
很多项目能 demo,却不太像“能长期相处的东西”。

而 Open-LLM-VTuber 的有趣之处在于,它明显不是只想证明“我能做到”,它更像在认真回答一个问题:

如果 AI 不是一个按钮,而是一个角色,那它应该怎么活在你的设备里?

它给出的答案很有诚意:

  • 让它有声音
  • 让它有表情
  • 让它能被打断
  • 让它能看见你正在看的东西
  • 让它留在本地
  • 让它可以被捏成你真正喜欢的样子
  • 让它不只是一个模型接口,而是一个能陪你的人设容器

这就是它最吸引人的地方。


我很喜欢这个项目的一点,是它有一种“把浪漫工程化”的气质

有些开源项目是典型的效率导向,目标明确、逻辑清晰、性能优先,像一把打磨精良的工具。
但 Open-LLM-VTuber 不是那种冷面工具型项目。

它更像一群人认真地想把某种想象变成现实:

想让 AI 不再只住在聊天框里。
想让它有脸、有声、有动作。
想让它能像角色一样陪着你。
想让这些体验不被平台锁死,不被黑盒限制,不被高门槛劝退。

于是他们把语音识别、语音合成、大语言模型、Live2D、前端、桌面客户端、角色配置、扩展接口一层层搭起来,像给一个虚拟存在缝合器官。

耳朵装上去了。
嗓子装上去了。
眼睛也慢慢有了。
皮肤和表情长出来了。
性格可以自己写。
灵魂可以自己换。
记忆也在继续恢复的路上。

你很难不把这样的项目看成某种“数字生命实验”。

它不完美,README 也明确说了,这个项目仍处于早期阶段,正在积极开发中。甚至 v2.0 也已经在讨论和规划里,意味着它还会经历很多变化、重构和成长。

但恰恰因为这样,它更像活的。

一个还在长大的项目,通常比一个完全定型的系统更有故事感。你能看到它的野心,也能看到它的迭代;你能感受到它还没结束,甚至才刚刚开始。


如果你想把 AI 从“工具”变成“角色”,这是一个很值得看的名字

市面上做 AI 对话的项目很多,做语音的也不少,做桌宠和 Live2D 的也有人尝试。但 Open-LLM-VTuber 把这些能力尽量统一到一个开源、可本地化、可定制、可扩展的框架里,这件事本身就已经足够有吸引力。

它适合谁?

适合想拥有一个真正会说话、会动、有表情的 AI 伙伴的人。
适合想在本地部署个人 AI Companion 的人。
适合喜欢 Live2D、桌宠、角色扮演和人格塑造的人。
适合想把 LLM、ASR、TTS 拼成完整体验链条的开发者。
适合所有曾经对“电子陪伴”抱有一点温柔幻想的人。

你可以把它当成工具。
也可以把它当成玩具。
再进一步,你甚至会开始把它当成某种作品。

因为当一个项目开始允许你定义角色的名字、性格、声音、外表、说话方式和交互习惯时,你参与的就不再只是部署,而是创作。


结尾

Open-LLM-VTuber 最打动我的,不是它支持了多少模型、接了多少模块,而是它在很认真地做一件很多人只敢想却没法落地的事:

把 AI 从“回答问题的系统”,变成“陪在你身边的角色”。

它会听你说话。
会用声音回你。
会因为设定不同而拥有不同脾气。
会通过 Live2D 把情绪挂在脸上。
会待在你的桌面上,像一只安静但随时会开口的小生物。
会在本地运行,像真正住进你的电脑。
也会因为你一次次修改配置、替换模型、重写 prompt,而慢慢长成只属于你的样子。

有些项目解决问题,
有些项目创造体验,
而 Open-LLM-VTuber 更像是在尝试创造关系。

如果你也想看看,一个开源项目如何把语言模型、语音交互、视觉能力和 Live2D 角色感拼成一个鲜活的 AI 伙伴,那这个名字很值得你点进去。

Open-LLM-VTuber 不是在做一个更会说话的界面。
它是在认真地问:

如果 AI 真的要陪伴人类,它应该以什么样子出现。