小爱音箱如何接入大模型:一篇照着做就能跑通的 MiGPT 部署教程
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
家里的小爱音箱还能干什么,除了听天气、定闹钟?开源项目 MiGPT 把小爱音箱接入 ChatGPT、通义千问、DeepSeek、豆包等大模型,不用换硬件也不用刷机,它就能接住追问、和你连续对话,还记得你以前说过什么。下面是从零到第一次对话的完整路径。
项目速览:小爱音箱 AI 助手能变成什么样
MiGPT 让小爱音箱只管听和说两件事,思考全交给大模型:它轮询音箱云端对话列表拿到新问题,交给模型生成回答,再用 TTS 合成语音播回去。整套流程走小米 IoT 云端接口,不要求局域网,旧电脑、NAS、云服务器都能托管。
接入之后,主要变化有这几处:
- AI 问答:不再受固定词条限制,换着说、追问、天文地理代码都能接
- 角色扮演:人设可定制,温柔还是毒舌随你定
- 连续对话:进入 AI 模式后连续追问,不用每句重新唤醒
- 长短期记忆:短期接上下文,长期存偏好,越聊越懂你
- 音色定制:默认小爱自带音,可接第三方 TTS 现场换声
动手之前:账号、环境和密钥各要准备什么
- 小米账号:填的是小米ID,不是手机号邮箱,在小米官网「个人信息」里能查到
- 运行环境:Node.js 16+ 和 Docker 二选一,后者省掉安装环节
- 模型 API Key:兼容 OpenAI SDK 的密钥都行;不方便直连 OpenAI 就选通义千问、DeepSeek 这类国产模型
设备只需一台小爱音箱,大部分型号可用,Pro 最稳,具体型号与参数对照见兼容列表。
🚀 部署实操:从克隆代码到第一次对话
第一步,选启动方式。克隆代码用 Node 运行:
git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt npm install不想折腾环境,用官方 Docker 镜像:
docker run -d --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latest两种方式都要先备好.env和.migpt.js;Windows 终端里$(pwd)不可用,写成绝对路径。
第二步,配置音箱账号(.migpt.js)。把根目录的.migpt.example.js重命名为.migpt.js,填入:
speaker: { userId: "987654321", // 小米ID password: "小米账号密码", did: "小爱音箱Pro", // 米家 APP 里的设备名,直接复制 ttsCommand: [5, 1], // TTS 播放指令 wakeUpCommand: [5, 3], // 唤醒指令 },did最易填错:直接复制米家里的设备名,留意"音响/音箱"错别字、多余空格和 Pro 的大小写。
指令编号因型号而异。到 miot-spec 站点搜你的音箱型号,在intelligent-speaker(SIID 5)服务页对照play-text和wake-up两个方法的编号,填进ttsCommand与wakeUpCommand:
第三步,配置模型密钥(.env)。把.env.example复制为.env。OpenAI 示例:
OPENAI_API_KEY=sk-你的密钥 OPENAI_MODEL=gpt-4o OPENAI_BASE_URL=https://api.openai.com/v1换国产模型时变量名不变,只改取值:
OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 OPENAI_MODEL=qwen-turbo OPENAI_API_KEY=通义千问密钥兼容 OpenAI SDK 的服务可以直接接;豆包、文心一言这类,先用 One API 等聚合工具转成 OpenAI 格式再接入。
第四步,启动并验证第一次对话。根目录执行npm start,看到 MiGPT 横幅和"服务已启动"就上线了:
用三种句式召唤 AI:"小爱同学,请xxx"、"小爱同学,你xxx"、"小爱同学,召唤xxx"。记住先喊"小爱同学"再提问,音箱被唤醒后才在听,直接说"请问xxx"是收不到的。
🎯 进阶玩法:连续对话、换人设、记忆
先体验再配置。服务跑起来后,先试这三句:
- "小爱同学,召唤傻妞"——进入连续对话(默认唤醒词是 打开/进入/召唤)
- "小爱同学,你是蔡徐坤。你是一名歌手,喜欢唱跳rap"——人设当场切换,不改配置不重启
- "小爱同学,关闭傻妞"——退出连续对话
试出感觉后,去.migpt.js调对应项:
speaker: { wakeUpKeywords: ["打开", "进入", "召唤"], // 进入连续对话 exitKeywords: ["关闭", "退出", "再见"], // 退出 onEnterAI: ["你好,我是傻妞,很高兴认识你"], onExitAI: ["傻妞已退出"] }连续对话有两个细节:提示语"我说完了"过 1-2 秒再开口;30 秒无响应会自动退出(exitKeepAliveAfter可调),重新召唤即可。如果音箱突然放起歌,说明唤醒词被当成了歌名,换组词试试。
记忆系统也是内置的(代码在src/services/bot/memory/):短期记忆接上下文,长期记忆存偏好,今天提到"最近在备考",明天它可能还记得。
⚠️ 排障速查:常见报错与解决办法
| 现象 | 卡点 | 处理 |
|---|---|---|
| "70016:登录验证失败" | 小米ID 写成手机号邮箱,或密码错误 | 官网「个人信息」查小米ID 重填 |
| 触发异地登录安全验证 | 换网络登录踩中风控 | 与 MiGPT 同网络登录小米官网验证,约 1 小时恢复 |
| "找不到设备:xxx" | did 与米家名称对不上 | 复制米家实际名称,核对错别字与 Pro 大小写 |
| "ERR_MODULE_NOT_FOUND" | .migpt.js缺失或路径错 | 检查挂载路径,Windows 用绝对路径 |
| 回答戛然而止 | 型号查不到播放状态 | 查playing-state编号填playingCommand(如[3, 1, 1]) |
| 想改唤醒词为"豆包同学" | "小爱同学"固件写死 | 只能自定义wakeUpKeywords等 AI 关键词 |
playingCommand查法:miot-spec 搜你的型号,在play-control(SIID 3)服务下找playing-state属性,对应三个数字就是配置值:
更多报错码和边角情况,翻常见问题基本都有答案。
🎙️ 音色定制:第三方 TTS 换声
用腻了出厂机械音,改两处就行:.env的TTS_BASE_URL指向你的 TTS 服务,.migpt.js的speaker.tts设为custom。再加switchSpeakerKeywords: ["把声音换成"],一句"小爱同学,把声音换成甜美台妹"就能当场换声。官方 MiGPT-TTS 方案接火山引擎,实名认证后 21 款常用音色免费,完整搭建见第三方 TTS 教程。
MiGPT 目前停止维护,但核心功能完整可用。跑通后别停在第一次问答:进一轮连续对话、换一次人设、换一次声音,看看哪种组合最适合你家。参数全表在配置参考,人设与 Prompt 在Prompt 指南。现在就可以对着音箱说"小爱同学,召唤你的AI",看它怎么回你。
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考