10分钟把小爱音箱变成GPT语音助手:MiGPT完全部署指南

发布时间:2026/9/14 1:20:11
10分钟把小爱音箱变成GPT语音助手:MiGPT完全部署指南 10分钟把小爱音箱变成GPT语音助手MiGPT完全部署指南【免费下载链接】mi-gpt 将小爱音箱接入 ChatGPT 和豆包改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gptMiGPT 是一个把小爱音箱接入 ChatGPT、豆包等大模型的开源项目。读完整篇文章你可以在自己的服务器或 NAS 上部署好 MiGPT对着音箱说小爱同学就能让大模型直接回答你支持连续对话和长短期记忆。部署全程只需要改两个配置文件再跑一条 docker 命令。部署前置检查30秒确认你能不能搭 MiGPT对照下面 5 项自查全部 ✅ 就可以动手检查项满足条件自查音箱型号MiGPT 兼容的小爱音箱小度、天猫精灵、HomePod 均不支持✅ / ❌小米账号有小米账号且音箱绑定在该账号下共享设备无法启动✅ / ❌大模型密钥有任意 OpenAI 兼容接口的 keyOpenAI、通义千问、DeepSeek 均可✅ / ❌服务器任意装了 Docker 的设备电脑、NAS、云服务器都行✅ / ❌网络服务器能访问大模型 API国内环境需代理或改用国产模型✅ / ❌ 最常见的前置坑小度、天猫精灵、HomePod 等其他品牌音箱完全不支持也没有适配计划。你的型号是否在 兼容型号清单 里先查这个。另外说明项目已停止维护但现有功能都稳定可用不影响部署使用。路径选型MiGPT 走 Docker 部署还是 Node.js 部署你手上有装好 Docker 的设备吗电脑/NAS/云服务器 ├── 有 → Docker 一键部署本文主线约10分钟跑通 └── 没有 / 想写代码 ├── 只想跑起来 → 先装 Docker再走主线 ├── 熟悉 Node.js → npm install mi-gpt 启动约30分钟 └── 想改源码 → clone 仓库本地 pnpm dev1小时以上路径上手耗时灵活度维护成本最低要求Docker 一键部署约10分钟低改配置文件即可低任意装有 Docker 的设备Node.js 包启动约30分钟中代码里传初始化参数中Node 20 环境源码二次开发1小时以上高直接改源码高Node 20 pnpm会读 TypeScript大多数人走第一条 Docker 路径就够用了后两条路径在动手搭建末尾用三行带过。动手搭建MiGPT Docker 部署步骤获取小米账号信息与设备指令先备齐 4 样东西小米 ID在小米账号官网「个人信息」-「小米 ID」里查不是手机号也不是邮箱账号密码音箱名称打开米家 APP进入音箱主页右上角更多 - 设备名称原样复制本型号的ttsCommand文字转语音播放指令和wakeUpCommand设备唤醒指令常用型号直接查 兼容型号清单其他型号去 home.miot-spec.com 搜型号看规格文档。红框标注了搜索型号如 LX06并展开规格文档的位置指令编号就藏在文档里验证点你手里已经有小米 ID、密码、音箱名称以及形如[5, 1]的两组指令数组。克隆仓库并准备配置文件# 克隆仓库 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管音箱连接和人设.env管大模型密钥两个文件缺一不可。填写两个核心配置.migpt.js音箱连接 人设export default { bot: { name: 傻妞, // 音箱的称呼AI 人设名 profile: 性别女乖巧可爱喜欢搞怪爱吃醋。, // 人设简介 }, speaker: { userId: 987654321, // 小米 ID不是手机号或邮箱 password: 123456, // 账号密码 did: 小爱音箱Pro, // 米家中的设备名称原样复制注意音箱别写成音响、别带空格 ttsCommand: [5, 1], // 本型号的 TTS 指令以 LX06 为例 wakeUpCommand: [5, 3], // 本型号的唤醒指令以 LX06 为例 callAIKeywords: [请, 你, 傻妞], // 以这些词开头的消息才会调用 AI wakeUpKeywords: [打开, 进入, 召唤], // 说小爱同学召唤傻妞进入连续对话 exitKeywords: [关闭, 退出, 再见], // 说这些词退出连续对话 streamResponse: false, // 连续对话开关支持该功能的型号可设为 true }, };.env大模型服务# 你的大模型名称与密钥OpenAI 兼容接口 OPENAI_MODELgpt-4o-mini OPENAI_API_KEYsk-proj-xxxxxxxxxxxxxxx # 不用 OpenAI 官方时取消注释并改成你的接口地址一般以 /v1 结尾 # OPENAI_BASE_URLhttps://api.openai.com/v1 # 服务器需要代理才能上网时填代理地址 # HTTP_PROXYhttp://127.0.0.1:7890图中红框解释了编号含义play-text 的 AIID 1 对应 ttsCommand 的第二个数字wake-up 的 AIID 3 对应 wakeUpCommand第一个数字 5 是 SIID⚠️ 用 Docker 启动时修改配置文件后必须重启容器才生效若重启后仍未生效需删除旧容器重新创建。启动容器并验证 AI 模式docker run -d --env-file $(pwd)/.env \ -v $(pwd)/.migpt.js:/app/.migpt.js \ idootop/mi-gpt:latestWindows 终端PowerShell、cmd下$(pwd)无效把两个路径改成文件的绝对路径例如D:/hello/mi-gpt/.env。验证点docker ps看到idootop/mi-gpt镜像在运行然后对着音箱说这三句测试小爱同学请问地球为什么是圆的小爱同学你喜欢我吗小爱同学召唤傻妞进入连续对话模式启动成功后终端会打出 MiGPT 版本号与服务已启动...日志随后每轮对话都会在这里打印记录Node.js 路径三行带过装好 Node 20 后npm install mi-gpt安装包写脚本调用MiGPT.create({ speaker: {...} })并start()启动此模式不读.env和.migpt.js需自行设置环境变量并手动传入配置。二次开发路径clone 仓库后pnpm install→pnpm build→pnpm dev本地运行VS Code 打开按 F5 即可调试。调优与排错MiGPT 常见问题处理决策树最影响体验的 3 个调优点1. 回复停顿久、提示语多现象连续对话时小爱在每句话之间卡一下还总说让我先想想。原因默认开启回答前后提示语播放状态每秒轮询一次。// .migpt.js speaker: { onAIAsking: [], // 关闭让我先想想提示语 onAIReplied: [], // 关闭我说完了提示语 checkInterval: 500, // 轮询间隔从默认 1s 调到最小值 500ms }预期效果回复间停顿从 1s 降到 500ms整体提速幅度视网络和环境而定。2. 句子说到一半戛然而止现象长回复播不完就被截断。原因部分型号查不到播放状态需要补playingCommand或关闭连续对话。// .migpt.js speaker: { playingCommand: [3, 1, 1], // 查你型号的播放状态指令填入 // 或者 streamResponse: false // 关闭连续对话保证播完整唤醒模式随之失效 }图中红框标注了播放状态查询指令 [3, 1, 1] 的编号来源可直接填入 playingCommand预期效果回复能完整播完 0 截断若型号根本不支持状态查询如小米音箱 Play 增强版只能关连续对话或换型号。3. AI 响应速度慢现象提问后要等很久才开始播。原因模型本身响应速度有差异。# .env换成响应更快的模型 OPENAI_MODELgpt-4o预期效果首响时间变短具体快多少视网络和环境而定。故障排查决策树问题出现 ├── 连接类小米账号/设备 │ ├── 70016 登录验证失败 │ │ └── userId 改成小米 ID非手机号/邮箱核对密码 │ └── 找不到设备xxx │ └── 从米家原样复制名称注意音箱别写成音响、空格、大小写 ├── 配置类参数 │ ├── 没播放但控制台有 AI 回复 │ │ └── 到 home.miot-spec.com 查该型号 ttsCommand 填对 │ └── ERR_MODULE_NOT_FOUND │ └── 检查 .migpt.js 是否存在且语法正确Windows 改用绝对路径 └── 网络类AI 服务 ├── LLM 响应异常 Connection error │ └── .env 加 HTTP_PROXY或改用国产模型 └── 401 / 404 模型报错 └── 验证 OPENAI_API_KEY 有效性和 OPENAI_MODEL 权限以上都没解决 → 在.migpt.js打开debug: true和enableTrace: true重启容器看详细日志或到 常见问题 搜索大多数问题有现成答案。场景与资源MiGPT 语音助手常见玩法场景一连续对话不用反复喊小爱同学在家问答时不想每句都重复唤醒词就进一次 AI 模式// .migpt.js speaker: { wakeUpKeywords: [打开, 进入, 召唤], // 说小爱同学召唤傻妞进入 exitKeywords: [关闭, 退出, 再见], // 说这些词退出 exitKeepAliveAfter: 30, // 无响应 30 秒自动退出 onEnterAI: [你好我是傻妞很高兴认识你], }效果进入后连续提问无需再带小爱同学前缀静默 30 秒自动退出期间每轮对话都走大模型。场景二角色扮演的专属人设想让音箱有固定性格在.migpt.js设置双方人设// .migpt.js bot: { name: 傻妞, // 音箱的名字 profile: 性别女乖巧可爱喜欢搞怪爱吃醋。, }, master: { name: 陆小千, // 你的名字 profile: 性别男善良正直。, }也可以不重启服务、不改配置用 1 句语音随时换人设小爱同学你是蔡徐坤你是一名歌手下一句开始生效。场景三接入国产大模型豆包、通义千问等访问不了 OpenAI 的国内环境用任意 OpenAI 兼容接口替换即可。以通义千问为例# .env OPENAI_BASE_URLhttps://dashscope.aliyuncs.com/compatible-mode/v1 OPENAI_MODELqwen-turbo OPENAI_API_KEY通义千问 API_KEY豆包、文心一言等没有 OpenAI 兼容接口的模型可先用第三方 API 聚合工具转成兼容格式再填OPENAI_BASE_URL。效果全程无需代理响应速度视网络和环境而定。项目关键资源参数配置参考.migpt.js和.env全部字段说明兼容型号清单各型号 ttsCommand、wakeUpCommand 速查常见问题启动失败、播放异常、网络错误等现成答案第三方 TTS 教程换豆包同款音色等玩法本地开发指南源码构建与 Docker 镜像构建数据库模型对话记忆与消息的数据结构部署或调优遇到问题时先翻 常见问题再对照 参数配置参考 逐字段核对90% 的坑都藏在这两份文档里。【免费下载链接】mi-gpt 将小爱音箱接入 ChatGPT 和豆包改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考