MiGPT 从 0 到 1 部署教程:小爱音箱接入大模型,打造你的智能音箱 AI 助手
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
家里的小爱音箱只会放歌、问点别的就答非所问?MiGPT 能把它接入大语言模型,让普通小爱音箱也能自然对话。这篇 MiGPT 部署教程带你从 0 到 1:装环境、配.env、选模型、调参数、排故障,一步步把它调成你的智能音箱 AI 助手。
先看它能干啥
说白了,MiGPT 就是给小爱音箱装了个"AI 大脑"。你喊"小爱同学,请 xxx",它不再只会答预设指令,而是调用大模型理解你的话,再用 TTS 念回来。装上之后,变化主要有这么几个:
- 💬自然对话:能上知天文下知地理,问啥都能聊,不再是"人工智障"。
- 🔁连续对话:进入唤醒模式后,不用每句都喊"小爱同学",可以连着问。
- 🎭角色设定:一句话给它立人设("你是傻妞"),语气、性格随你定。
- 🧠长短期记忆:它能记住你们聊过的细节,越用越懂你。
- 🔊换音色:接第三方 TTS 后,音色不再只有小爱那一种。
你的设备在名单里吗?
先别急着装,MiGPT 只支持小米生态的小爱音箱,小度、天猫精灵、HomePod 都不在名单里,也没适配计划。不同型号支持程度差很多,核心差别在于:能不能查到设备的播放状态——能,就能开连续对话;不能,就只能整句播报。
| 设备 | 支持度 | 注意点 | 推荐度 |
|---|---|---|---|
| 小爱音箱 Pro(LX06) | ✅ 完美运行 | 官方首选,连续对话最稳 | ⭐⭐⭐⭐⭐ |
| Xiaomi 智能音箱 Pro(OH2P)、小米 AI 音箱(S12)等 | ✅ 完美运行 | 要配对应ttsCommand/wakeUpCommand | ⭐⭐⭐⭐⭐ |
| 小爱音箱 Play(L05B)、mini(LX01)等 | 🚗 正常运行 | 查不到播放状态,关掉streamResponse | ⭐⭐⭐ |
| 小米小爱音箱 HD(SM4)、蓝牙随身版 | ❌ 不支持 | 无适配计划 | ⭐ |
| 小度 / 天猫精灵 / HomePod | ❌ 不支持 | 仅支持小米生态 | — |
购买前怎么查规格:打开米家看设备的名称和型号(比如LX06),对照 兼容型号列表;具体的指令参数(play-text、playing-state对应的 siid/piid)要到小米 MIoT 规格站按型号查。型号对得上,基本就稳了。
从 0 到 1:把 MiGPT 装起来
一条线走下来就行,不折腾。
1. 环境准备
- 跑源码:装 Node 20 + pnpm。跑 Docker:装好 Docker 即可。
- 一个小米账号(记住:登录用的是小米 ID,不是手机号/邮箱)+ 一台上面的小爱音箱。
2. 拉代码装依赖(源码方式;Docker 可直接拉镜像)
git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt && pnpm install && pnpm build3. 配账号与.env
.env.example复制成.env,填模型信息(国内服务示例,详见 参数设置):
OPENAI_API_KEY=你的密钥 OPENAI_MODEL=qwen-turbo OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1.migpt.example.js复制成.migpt.js,配设备:
speaker: { userId: "小米ID", // 不是手机号/邮箱 password: "账号密码", did: "小爱音箱Pro", // 和米家中设备名一字不差 ttsCommand: [5, 1], wakeUpCommand: [5, 3], }4. 启动验证
# 源码方式 pnpm dev # 或 Docker 方式 docker run -d --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latest对着音箱说"小爱同学,请 介绍一下你自己",听到它用大模型的味道回答你,就成了。
把体验调到位:模型和参数怎么选
模型怎么选,看你的网络和环境:
- 🇨🇳国内服务(通义千问 / DeepSeek / Moonshot / 零一万物):延迟低、稳定,国内首选。本质就是把
OPENAI_BASE_URL+OPENAI_MODEL换成服务商的兼容地址,OPENAI_API_KEY换成对应密钥即可。 - 🌍OpenAI(gpt-3.5 / gpt-4o):效果好,但国内要配代理,新账号未绑卡可能用不了 4o 系列。
- 🏠本地 Ollama / LM Studio:隐私拉满、不花钱,起一个 OpenAI 兼容服务,把
OPENAI_BASE_URL指向localhost就行;但机器要给力,响应比线上慢。
关键参数怎么调(都在.migpt.js里,完整说明见 参数设置):
| 参数 | 建议值 | 作用 | 适用场景 |
|---|---|---|---|
streamResponse | true / false | 连续对话(流式响应)开关 | 能查播放状态的机型开;查不到的关,保证整句 |
checkInterval | 500(默认 1000) | 连续对话的播放状态检测间隔,越低停顿越小 | 想更跟手、网络稳 |
checkTTSStatusAfter | 3(别低于 1) | 下发 TTS 后多久开始检测播放状态 | 衔接卡顿可微调 |
exitKeepAliveAfter | 30 | 连续对话无响应多久自动退出 | 防止一直占用 |
callAIKeywords/wakeUpKeywords | ["请","傻妞"]/["召唤"] | 触发 AI、进入唤醒模式的词 | 想要更自然的召唤方式 |
ttsCommand/playingCommand | 按型号查(如[5,1]) | TTS 播报、查询播放状态的指令 | 没声音 / 读一半停 |
systemTemplate | 默认带上下文+记忆 | 系统 Prompt,控制人设与上下文 | 想改人设、省 token 可精简 |
出问题了怎么修
这里有个坑:十有八九的故障,都卡在账号、没声音、慢这三类。按"现象 → 原因 → 动作"来查(更多见 常见问题):
| 现象 | 可能原因 | 解决动作 |
|---|---|---|
70016 登录验证失败 | 账号密码错,或误用了手机号/邮箱 | 用小米 ID重新填 |
| 提示"异地登录保护" | 触发了小米安全验证 | 同网络环境下官网登录过验证,等约 1 小时;终极方案本地登录成功后导出.mi.json挂载到容器 |
| 提示"找不到设备" | did和米家不一致(错别字/空格/大小写) | 直接复制米家中设备名;不行就开debug+enableTrace填设备did |
| 有回复但音箱没声音 | ttsCommand配错 | 按型号到 MIoT 规格查正确指令 |
| 回答戛然而止、读一半停 | 机型查不到播放状态 | 配playingCommand;查不到就关掉streamResponse |
响应慢 /LLM Connection error | 网络或代理问题 | 调小checkInterval、换快模型;配HTTP_PROXY或换国内服务 |
小技巧:它回答太啰嗦?直接喊"小爱同学,请你闭嘴"就能打断。
再往前走一步
装好能跑之后,这些进阶玩法可以按需上:
- 🏠本地模型:用 Ollama 或 LM Studio 起 OpenAI 兼容服务,把
OPENAI_BASE_URL指到localhost,数据完全不出门。 - 🧠记忆机制:长短期记忆逻辑在 记忆模块,默认把最近约 10 条对话+记忆带进 Prompt。想省 token,可在
systemTemplate里精简或关掉上下文。 - 🗄️自定义存储:默认用 Prisma + SQLite(
prisma/app.db),要换库改 数据层 即可。 - 🔒安全:别把它暴露到公网,限本地访问;
.env含密钥,别外传(建议 600 权限);定期清理对话历史。另外,调用小米接口存在账号封禁等风险,用前心里有数。
注意:项目目前已停止维护,升级依赖前先看 更新日志,用固定版本更稳。
🚀 下一步做什么
- 新手:先把
streamResponse和checkInterval调顺,能连续对话就算成。 - 进阶:换国内模型 + 精简
systemTemplate,把响应速度和 token 都压下来。 - 开发者:改 记忆模块 和 数据层,做出自己的玩法。
后续更新和路线图,盯 更新日志 和 Roadmap 就行。
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考