所以我派了一个语音AI助手 完全运行在我的机器上。
没有云,没有API,没有潜伏的噩梦。
最初的想法出自"剑术在线"(Sword Art Online)中的爱丽丝(Alice)——一种感觉像真实人物而不是聊天员的AI.
与JARVIS的期待和神经女神怪异的个性相混合.
从“会不会很酷”到“24/7全天候无问题”。
语音AI的问题大多是云先:你说话 —— 送到服务器 —— 处理 —— 回复 —— 回到你身边。
每跳会增加耐性。
在你听到任何消息之前你还有3 -6秒 对于语音互动,这是死的。
它杀死了说话的感觉 与智能的东西。
我想要更快的东西。
有反应的东西 限制:在当地进行。
使用8GB VRAM GPU,运行所有设备在-device上,除了活化2d的活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活 我有一个GPU和8GB VRAM。
没有预算来试验更好的卡片或更多的模型。
所以每个建筑决定都是由 真正适合的东西所强制的。
天真方法:链式多专业模型.
数学:1s + 2s + 3s + 1.5s = 7.5s 在用户听到任何声音之前,延迟.
不,问题不只在于每个模型都慢 这是模型加载在上。
每次你从一个模型换到另一个模型时,你:将模型A从VRAM加载模型B卸入到VRAM拖放站,而GPU只用8GB重排内存,这得到gnarly快.
决定:一个统一的模型 制约是硬件。 8GB VRAM.
没有了,没有了。
那个强迫的清晰度:选择一个能做一切事情的模型,或者选择什么都不做.
所以我用一个单一的模型(默认为4B,可用7B/8B质量模式),在一次通过中进行推理+代码生成+解释.
延迟:~2-3秒总和.
实际对话。
这是聊天员和同伴的区别 JARVIS在回应前不会暂停6秒.
玛娜也一样。结果,当你被迫优化等待(因为你只有8GB工作)时,你意外地制造出一种感觉人类的东西。
取舍:一个4B模型比更大的模型更弱,但符合8GB VRAM,并保持了潜伏.
对于语音查询,准确性损失可忽略不计。
当耐久性不严重时,我就能达到7B或8B的质量模式。
为什么这在上下文保存中起作用——LLM内部的原因("用户想让我在他们的数据中找到X"),然后代码,然后解释.
模型边界没有丢失信息 。
VRAM效率——一次装入4B型号(~2-3GB in INT8).
留着它。
每次查询都要重用它 。
只有当您想要质量高于速度时,才会升级到 7B/8B 。
简单的输出格式——使用XML标记来分割LLM响应:然后默默执行代码,只说解释.
没有代码描述——这是关键。
不要大声读取 SQL 查询 。
只要说"我找到数据并按日期排序。" TTS是用来解释的,而不是叙述的.
从"Hey Mana"到听到响应的架构在实际操作中完全空闲:~2-3秒.
感觉好像在跟聪明人说话 VRAM预算(8GB GPU)带有8GB GPU,预算紧凑: Quen 4B (INT8):~2-3GB Whisper (基站):~1.5GB TTS服务 (Kokoro/Chatterbox):~2-3GB OS + 系统间接费用:~1-2GB Live2D avatar 渲染:~0.5-1GB 总计:实际相配(balee).
我将粗略的量化, 扔出更小的模型, 冲出未使用的模型。
权衡是值得的——每一毫秒的起动或反应时空,都要花在与活物交谈的感觉上.
运出什么桌面发射器(电子)——麦克风,屏幕抓取,可视化覆盖节点后端——抄录,LLM推论,TTS,编辑集成(Zed支持) 本地模型——Quen 4B(聊天),Whisper(拼写),Kokoro/Chatterbox/Fish Speech(TTS选项) 屏幕意识——OCR - 正在运行的窗口本地活2d avatar的作品"摘要"——对响应发音,唇音 TTS音频 obsidian v