小爱音箱接大模型:MiGPT 四步部署实录
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
你喊"小爱同学,今天天气怎么样",它要么把问题复读一遍,要么甩出一句 canned 套话,喊三遍才应一次。MiGPT 干的就是小爱音箱接大模型这件事:把 ChatGPT、豆包这类大模型接到音箱上,回答改从模型嘴里出来。
改造后能得到什么
跑通 MiGPT 部署之后,同一台音箱的差别大致是这样:
| 改造前 | 改造后 |
|---|---|
| 答非所问,套话循环 | 能连续追问,记得上下文 |
| 只会点播、定闹钟 | 角色扮演,随时改人设 |
| 只有小爱原声 | 可换第三方 TTS 音色 |
它支持的角色扮演、长短期记忆都是顺带的:改一句systemTemplate人设就换一套,对话历史存在本地数据库里,越聊越熟。
动手前花30秒对一下
- 小爱音箱型号在 兼容列表 里(小爱音箱Pro 最稳)
- 米家 APP 里能看到音箱设备
- 小米账号的纯数字 ID 和密码
- 一个大模型 API Key(OpenAI 或任意兼容 OpenAI 接口的服务)
- 服务器内存 4GB 以上
- 国内网络的话,提前备好代理
上面都打勾就可以往下走了。
最短路径:四步跑通
先装 Docker,Ubuntu 系直接一条命令:
sudo apt-get update && sudo apt-get install -y docker-ce装完用docker --version确认版本号打出来就 OK。
接着把代码拉到本地,仓库地址就一个:
git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt cp .migpt.example.js .migpt.js && cp .env.example .env这两份示例文件是官方预填好的模板,后面只改里面的字段。
改配置是重点。.migpt.js里speaker下的userId填小米 ID——注意是纯数字 ID,不是手机号或邮箱;password填账号密码;did填音箱在米家里的名字,直接从米家复制过来,空格和大小写都不能差。.env里填OPENAI_MODEL和OPENAI_API_KEY两项,其余保持默认。
// .migpt.js 只需要动这三个字段 export default { speaker: { userId: "你的小米ID", // 纯数字,不是手机号 password: "账号密码", did: "小爱音箱Pro", // 米家里设备名,直接复制 }, };# .env 只动这两行 OPENAI_MODEL=gpt-4o-mini OPENAI_API_KEY=sk-xxxxxxxxxxxx改完保存,进项目目录执行启动命令:
docker run -d --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latestWindows 终端里$(pwd)不生效,换成文件绝对路径即可。
日志里出现设备列表且能看到你的音箱名字,就算接上了。这时候对音箱说"小爱同学,请问地球为什么是圆的",它应该用大模型的话术作答;没出声就翻日志,八成是配置字段有出入。
想换模型的话,只动.env里OPENAI_BASE_URL、OPENAI_MODEL、OPENAI_API_KEY三个值,比如换成通义千问就把 BASE_URL 指到它的兼容接口,重启容器即生效。改完不重启,新值不会生效,这点最容易被忽略。
最容易填错的指令编号
ttsCommand和wakeUpCommand看着像乱码,其实是米家开放平台里设备的指令编号:前一位是指令集,后一位是具体指令 ID,不同型号各不一样。
| 设备 | TTS 指令 | 唤醒指令 |
|---|---|---|
| 小爱音箱Pro(LX06) | [5, 1] | [5, 3] |
| Xiaomi智能音箱Pro(OH2P) | [7, 3] | [7, 1] |
| 小爱音箱mini(LX01) | [5, 1] | [5, 2] |
填错的典型症状是日志里明明打印了 AI 回复,音箱却一声不吭。完整兼容表和查询方法里有每个型号对应的值,照着抄就行。
踩坑实录
- 现象:日志报"找不到设备:xxx" /原因:
did写成了设备 ID,或"音响"打成错别字、多了空格 /修复:米家里复制设备名原样填入,重启容器 - 现象:启动报"70016:登录验证失败" /原因:
userId填了手机号或邮箱 /修复:改填小米 ID(account.xiaomi.com 个人信息页可查),重启容器 - 现象:日志出现"LLM 响应异常 Connection error" /原因:国内直连 OpenAI 超时 /修复:
.env里加HTTP_PROXY=http://127.0.0.1:7890,或干脆换国内服务商改 BASE_URL
最后一步
先按默认配置把链路跑通,再碰模型、人设和音色。跑通之前,别动别的。
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考