Open-LLM-VTuber
勤劳一日,可得一夜安眠;勤劳一生,可得幸福长眠。——达芬奇
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 | git clone https://github.com/Open-LLM-VTuber/Open-LLM-VTuber.git |
这组命令本身不等于完整安装流程,但很适合拿来表现一个开源项目从“看到”到“动手试”的氛围感:先把它拉到本地,再走向配置、模型、角色和交互。
如果你是那种喜欢边折腾边理解项目的人,这类项目最迷人的部分恰恰就藏在启动之后——当服务真的跑起来,当角色真的出现在你眼前,当它第一次对你开口说话时,文档就从说明书变成了召唤仪式。
如果你喜欢折腾,这个项目会让你越陷越深
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 真的要陪伴人类,它应该以什么样子出现。
