10分钟把小爱音箱接入ChatGPT:MiGPT免费AI语音助手部署指南
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
MiGPT 是一个把小爱音箱接入 ChatGPT、豆包等大模型的开源项目。这篇指南带你走通 Docker 三步部署、关键配置参数和常见报错速查,零基础也能在 10 分钟内让音箱变成会连续对话的 AI 语音助手。
🎙️ 小爱音箱接上 MiGPT 后能干什么
有没有遇到过音箱回答简单问题像"装聋作哑"?接上 MiGPT 后,小爱同学不再受限于内置知识库。
- AI 问答:"小爱同学,请问地球为什么是圆的",大模型直接回答,不再"我不太清楚"
- 角色扮演:几行配置调教出专属人设,音箱变成有记忆、能听你倾诉的搭子
- 长短期记忆:记住你们的每一次对话,越聊越默契
- 流式响应:边生成边播放,不用等整段答完
- 换音色:接入第三方 TTS,用上豆包同款音色
🐳 MiGPT Docker三步部署步骤
不想装 Node 环境?Docker 是最省事的路径,全程 10 分钟内。
第一步:获取代码
git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt项目支持大部分小爱音箱型号,推荐小爱音箱 Pro(运行最稳),不支持小度、天猫精灵。MiGPT 走的是云端接口,不需要和音箱在同一局域网。
先在米家中搜一下你的音箱型号,确认兼容:
第二步:准备两个配置文件
把.env.example重命名为.env,填入大模型密钥:
OPENAI_MODEL=gpt-4o-mini OPENAI_API_KEY=你的密钥想接通义千问、DeepSeek 等模型,只需改OPENAI_BASE_URL和模型名,不用改代码。
再把.migpt.example.js重命名为.migpt.js,填入小米账号和音箱信息:
❌ 错误:用手机号或邮箱当小米 ID ✅ 正确:在小米账号「个人信息」页查看纯数字的小米 ID
音箱名did要和米家中的名称一字不差,错别字、多余空格、大小写不一致,是"找不到设备"的三大元凶。
第三步:一条命令启动
docker run -d --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latestWindows 终端里请把$(pwd)换成文件绝对路径。控制台看到"服务已启动"即成功:
之后有三种召唤方式:
- "小爱同学,请 xxx"、"小爱同学,你 xxx":单次问答
- "小爱同学,召唤 xxx":进入唤醒模式,可以连续对话,不用每句都唤醒
- 唤醒模式 30 秒没说话会自动退出;想让小爱闭嘴,直接说"小爱同学,请你闭嘴"
⚡ 让它更好用:3个提速与个性化优化
第一次跑通后觉得小爱反应慢?默认参数偏保守,先试这 3 项优化。
1. 去掉提示语的等待
AI 回答前默认会说"让我先想想",结束后说"我说完了",每次多出 1-2 秒。设成空数组即可关闭:
speaker: { onAIAsking: [], onAIReplied: [], }2. 用小爱自带 TTS
把tts设为"xiaoai",由音箱直接播报,少一次网络合成,首响应明显变快。
3. 缩短连续对话的停顿
speaker: { checkInterval: 500, // 播放状态检测间隔,最低 500ms }| 优化项 | 改前 | 改后 |
|---|---|---|
| 提示语 | 回答前后多等 1-2 秒 | 直接开始回答 |
| TTS 引擎 | 第三方联网合成 | 小爱自带,少一次请求 |
| 检测间隔 | 默认 1 秒 | 0.5 秒,停顿感更弱 |
如果还是慢,把.env里的OPENAI_MODEL换成gpt-3.5-turbo、gpt-4o这类响应更快的模型。改完.migpt.js记得重启 docker 容器才生效。
个性化方面,改.migpt.js里的bot.name、bot.profile就能换人设,callAIKeywords、wakeUpKeywords可换触发词。注意"小爱同学"这个唤醒词是音箱固件写死的,改不了。
🛠️ MiGPT 常见报错速查表
启动失败或 AI 不响应,先对表自查,多数问题都在这里:
| 报错/现象 | 原因 | 处理 |
|---|---|---|
| 70016 登录验证失败 | 账号密码错,或拿手机号当小米 ID | 换成纯数字小米 ID |
| 触发异地登录保护 | 在不同网络环境登录 | 同网络下登录小米官网验证,等约 1 小时 |
| 找不到设备:xxx | did 与米家名称不一致 | 核对错别字、空格、大小写 |
| ERR_MODULE_NOT_FOUND | .migpt.js缺失或有错 | 检查挂载路径,Windows 用绝对路径 |
| LLM 异常 401 | API 密钥无效 | 验证OPENAI_API_KEY是否可用 |
| LLM 连接异常 | 模型服务访问不通 | 设置HTTP_PROXY或换国内模型 |
| 回复不播放 | 该型号 TTS 指令不匹配 | 查设备指令,改ttsCommand |
| 话说一半就停 | 查不到播放状态 | 配playingCommand或关闭streamResponse |
"不播放""戛然而止"基本都是设备指令配置问题,可以按型号查指令规格:
还找不到原因,按这个流程走:
启动失败 → 看控制台报错 ├─ 账号类(70016/异地登录)→ 查小米 ID、登录网络 ├─ 设备类(找不到设备)→ 查 did,或开调试模式定位 └─ 配置类(MODULE_NOT_FOUND)→ 查文件挂载 AI 异常(4xx)→ 按 key、模型名、网络顺序排查在.migpt.js里设debug: true可以输出详细日志,帮助定位。
另外"小爱会在 AI 回答前抢话"是轮询机制的已知限制,存在约 1-2 秒延迟,可以缓解但无法彻底消除。
🧩 还能玩出什么花样
基础对话跑通了,想更进一步?
- 豆包同款音色:接入第三方 TTS,在
.env里填TTS_BASE_URL,教程见 docs/tts.md - 本地模型:用 Ollama 等部署,自带 OpenAI 兼容接口,改环境变量即可接入
- 多音箱:每个账号/设备建一个 docker 容器
- 深挖实现:核心服务代码在 src/services/,从音箱控制到大模型调用都能看懂
进阶人设改配置里的系统提示词模板systemTemplate,想让它怎么说话都由你定。
写在最后
剩下的就是慢慢调教:换人设、换音色、接国内模型。现在就去拉下项目,填好两个配置文件,10 分钟后让小爱答上第一个大模型问题。
参数细节看 docs/settings.md,遇到问题先翻 docs/faq.md,答案大概率在那里。
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考