老款小爱音箱直连 DeepSeek:一个跑在音箱上的 BusyBox 客户端,如何做到“小爱优先、大模型兜底”

TL;DR:在老款小米 AI 音箱(MDZ-25-DA / S12A)上跑一个 shell 客户端。开灯、天气这类请求仍由小爱原生处理;小爱答不上来、或者你点名"问问 DeepSeek"时,音箱直接调大模型 API,用 EdgeTTS 逐句播报,播完绿灯亮起,可以免唤醒继续追问。不需要中转服务器,也不用电脑常驻。MIT 开源:github.com/open-speake...

一、背景与痛点

我家有一台 2019 年买的小米 AI 音箱。控制家电它很好用:开灯、定闹钟、问天气,反应快,也很稳定。但只要问点开放性问题,比如"介绍一下西湖""最近三天有什么 AI 新闻",它多半回一句"这个我还不会"。

想给它接大模型,需求其实很明确:

  1. 原有能力一个都不能丢:家电控制是刚需,不能因为接了大模型就变慢、变不稳定。
  2. 不要再养一台常驻设备:不想为了一个音箱让 NAS 或电脑 7×24 小时开着。
  3. 对话要自然:答完能接着问,不用每句都喊"小爱同学"。

二、方案对比

社区里已经有两个先行项目,本项目也参考了它们,在这里致谢。两者的仓库目前都已归档。

路线 代表项目 做法 代价
账号轮询 mi-gpt(仍在维护的同类:xiaogpt) 电脑或 NAS 上的程序通过小米账号接口轮询对话记录,再让音箱播报 要有常驻主机;不用拆机,支持型号多
整栈接管 open-xiaoai 刷机后接管音频链路(支持 LX06 / OH2P) 改动大,原生体验要自己补回来
原生优先(本项目) xiaomi_ai_llm 唤醒、识别、家电控制都沿用小爱;音箱上的客户端只把"小爱处理不了的"转给大模型 要拆机接串口;目前只实测 MDZ-25-DA

一句话概括:本项目不替换小爱,只补它答不上来的那部分 。本项目 /data/init.sh 的自启动思路就来自 open-xiaoai。

三、架构

小爱同学,...... → 音箱客户端判断 ├─ 开灯/天气/音量 → 小爱原生执行 └─ 答不上来/点名 DeepSeek → 直连大模型(可联网搜索) → EdgeTTS 逐句播报 → 绿灯免唤醒追问

各环节分别在哪里运行:

环节 运行位置
唤醒、收音、路由客户端、音频播放 音箱本机
语音识别、家电控制、小爱原生回答 小米云(和原来一样)
大模型(DeepSeek / GLM / Kimi / MiniMax / 任意 OpenAI 兼容接口) 你自己配置的云 API,由音箱直接调用
语音合成 EdgeTTS 微软在线 TTS,由音箱直接调用;失败时退回小爱原生 TTS

四、关键实现点

1. BusyBox shell 客户端,走 SSE 流式请求

音箱系统资源有限,只有 BusyBox 那一套工具。主客户端 device/native_first_client.sh 就是一个 shell 脚本,用流式(SSE)方式请求 OpenAI 兼容接口,一边接收 token 一边处理,不用等整段回答生成完。这样就不需要中转服务器,音箱自己就能请求 API。切换模型只要改 /data/native_first.env 里的配置,原来用 mi-gpt 时的 API Key 也能直接填进去。

2. 路由:native-first

客户端先让小爱处理。原生能搞定的(开灯、天气、音量)就不碰;小爱答不上来,或者用户明确说"问问 DeepSeek",才转给大模型。家电控制的体验和原来完全一样,大模型只是兜底。

3. 按句 EdgeTTS 播报

流式回答按句子切分,每凑满一句就送去 EdgeTTS 合成并播放,不用等全文生成完再开口。EdgeTTS 免费;它调用失败时,会退回小爱原生 TTS。

4. 绿灯免唤醒追问

回答播完后,音箱进入一个续听窗口,用绿灯提示。这时直接说"那什么时候去呢?",会沿用同一个上下文继续聊;喊"小爱同学"就回到原生路由;说"保持安静"或者不说话,就结束这轮对话。新版客户端还有一个可选的结束语,默认关闭,开启后说"结束对话"就能退出。

5. DeepSeek 联网搜索

直连 DeepSeek(LLM_PIPELINE=native、BACKEND=deepseek)时,LLM_WEB_SEARCH 默认是 auto:先判断问题是否需要实时信息(新闻、价格、营业状态、指定网页等),需要的话调用 DeepSeek 官方 Search/Fetch 接口,回答时说明来源。每轮会多一次判断请求,所以第一句话可能稍慢;设成 off 可以关掉。

实测效果:让它"搜一下最近三天的 AI 新闻,说明日期和来源",新闻播到一半再喊"小爱同学,开灯",灯亮了,新闻还在继续播。B 站有完整录像。

五、边界与风险(请先读)

  • 不是离线方案:小米识别、大模型、EdgeTTS 都是云服务,模型不在音箱上跑。断网后只剩小爱的原生能力。
  • 需要拆机接串口:主板上有现成的 JST 串口插座,不用焊接。工具是十字螺丝刀、USB-TTL 模块(比如 CH340)和 SH1.0 转 2.54mm 杜邦 3P 线。过程中可能要改写系统分区,操作失误可能导致变砖。README 标的难度是 ★★★★☆。
  • 只实测过 MDZ-25-DA(S12A,Amlogic A113X):其他型号外观相似,不代表固件和接口相同,目前也不支持 LX06 / OH2P。
  • 当前限制:大模型播报时还不能用语音打断;全天稳定性仍在验证中。
  • MIT 开源,非小米官方项目:只能用在自己拥有的设备上,拆机可能影响保修。

六、怎么上手

  1. 阅读 设备与准备,确认型号,并确认能备份和恢复。
  2. 按 从零接入 拆机、接串口,建立 SSH。
  3. 按 跑通第一轮对话 部署客户端,在 /data/native_first.env 里填好 API Key。
  4. 想加连续追问,再看 逐步完善对话。

费用方面,大模型 API 按各平台计费,EdgeTTS 免费。如果要从源码构建端侧 TTS,还需要 Rust、Zig 和 cargo-zigbuild。

七、链接

八、想听听大家的意见

  1. 哪些问题应该留给小爱,哪些应该交给大模型?路由规则我还在调。
  2. 有没有人在类似的嵌入式设备上接过本地 OpenAI 兼容接口(比如 Ollama)?这条路我还没验证。
  3. 手上有其他型号小爱音箱的朋友,欢迎开 issue 一起看看能不能适配。

觉得有意思的话,欢迎去 GitHub 点个 star。

(本人是项目作者。)

相关推荐
Noir热爱生活4 小时前
deepseek harness,关于桌面版无法打开vscode修复方案
electron·deepseek
ServBay21 小时前
DeepSeek 再次崩了,DeepSeek V5正在路上?
后端·deepseek
大模型真好玩1 天前
DeepSeek Super-Agent核心特性详解与实战指南:把操作系统思想搬进智能体
人工智能·agent·deepseek
ytianxia62 天前
用 OpenClaw 搭建个人金融助手:从联网查询到双模型协同
deepseek
无责任此方_修行中2 天前
模型变强了,架构为什么反而要变?——从"折叠 subagent"到"Super-agent"
人工智能·ai编程·deepseek
AI日报派送佬3 天前
2026年11月01日AI行业日报|可灵AI198亿融资落地、DeepSeek开源超级智能体、Anthropic取消Ultra时长限制
人工智能·开源·openai·deepseek·anthropic·ai日报
张张123y3 天前
后端第十六课:Multi-Agent 多智能体(让多个 Agent 分工协作)
大数据·数据库·人工智能·python·deepseek·dsh·agent 框架
fellow993 天前
DSH Desktop - Android Edition
android·agent·deepseek·harness·dsh
潘锦4 天前
DeepSeek Harness 的 Harness 到底做了什么
deepseek