如何把小爱音箱接入 ChatGPT 改造成 AI 语音助手:MiGPT 5 步跑通全流程
2026/9/14 18:39:48 网站建设 项目流程

如何把小爱音箱接入 ChatGPT 改造成 AI 语音助手:MiGPT 5 步跑通全流程

【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt

晚上对音箱说一句"小爱同学,召唤傻妞",它用接近真人的声音回答你,还能接着聊、记得刚才说过什么——这就是 MiGPT 做的事:把小爱音箱接入 ChatGPT、豆包等大模型,不用刷机,把手上的音箱变成你的 AI 语音助手。

项目定位

MiGPT 是一个跑在电脑或服务器上的开源服务,它通过小米开放接口轮询小爱音箱的对话,把消息转发给大模型,再把 AI 的回复用音箱读出来。它适合手里有小爱音箱、想体验大模型语音交互但又不想动硬件的人。

能做什么替你省掉什么适合谁
AI 问答、角色扮演、流式回答买新硬件和刷固件的折腾,音箱原样使用想给现有音箱加 AI 对话能力的用户
连续对话与长短期记忆每句话重复唤醒词、重复交代背景需要多轮交互的家庭用户
自定义提示语、第三方 TTS 音色默认的机械音色和固定话术在意声音体验、想调人设的用户

注意:项目目前已停止维护,功能以仓库当前版本为准。

动手前准备

按下面 5 项自查,缺一项先补齐再动手:

准备项说明检查方式
小爱音箱型号需在支持列表内,小度、天猫精灵等不支持米家 App 设备详情页查看型号,对照 docs/compatibility.md
小米账号需要小米 ID 和账号密码,用于连接设备账号「个人信息-小米 ID」页能看到一串数字 ID
大模型 API Key任意 OpenAI 兼容服务:OpenAI、通义千问、DeepSeek 等用密钥调一次接口,能正常返回回答
运行环境Docker,或 Node 20 跑源码docker -v能输出版本号
网络用海外模型时需要代理在运行 MiGPT 的机器上能访问模型 API

主流程:5 步部署 MiGPT

第 1 步:克隆代码并准备两个配置文件

目标:拿到项目代码,并生成待填写的 .env(模型配置)和 .migpt.js(音箱配置)。

git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt cp .env.example .env cp .migpt.example.js .migpt.js

验证点:✅ 执行ls后能看到 .env 和 .migpt.js,这两个文件就是你唯一要改的地方。

第 2 步:填写大模型与小米账号信息

目标:让 MiGPT 知道调用哪个模型、如何连上你的音箱。

.env 里填模型密钥(用通义千问等国内模型时,只改下面三项的值即可):

OPENAI_API_KEY=sk-你的密钥 OPENAI_MODEL=gpt-4o-mini

.migpt.js 的 speaker 部分填账号和设备:

speaker: { userId: "你的小米ID", password: "账号密码", did: "小爱音箱Pro", }

验证点:✅ did 与米家中显示的设备名逐字一致,没有多余空格、大小写相同。

⚠️ 注意:小米 ID 不是手机号或邮箱,请到小米账号「个人信息-小米 ID」页查看那串数字。

第 3 步:启动服务

目标:跑起 MiGPT 并让它连上音箱。新手推荐 Docker 方式:

docker run -d --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latest

💡 提示:Windows 终端不支持 $(pwd),请在命令里直接写 .env 和 .migpt.js 的绝对路径。想跑源码的话,在代码目录依次执行pnpm installpnpm buildpnpm dev

验证点:✅ 控制台打印 MiGPT 横幅和「服务已启动」,没有报错日志。

第 4 步:验证 AI 问答

目标:问出第一个问题,确认"唤醒-转发模型-读回回复"整条链路打通。

对着音箱说:"小爱同学,请问地球为什么是圆的?"

验证点:✅ 音箱先播提示语"让我先想想",然后朗读大模型的回答,控制台同步打印 AI 的回复文本。

第 5 步:体验连续对话

目标:进入 AI 模式,追问时不用再喊"小爱同学"。

说"小爱同学,召唤傻妞",等欢迎语播完后再直接提问。

验证点:✅ 音箱播"你好,我是傻妞,很高兴认识你",回答完会说"我说完了",30 秒内不提问会自动退出 AI 模式。

关键配置:3 个新手最容易踩的参数

完整参数见 docs/settings.md,新手只需要先弄懂这 3 个:

参数作用新手建议值
callAIKeywords消息以哪些词开头时才转发给 AI 回复保持默认["请", "你", "傻妞"]
ttsCommand / wakeUpCommand音箱朗读文字和唤醒的 MIoT 指令,不同型号不同默认[5, 1]/[5, 3]适配多数型号,不通再按型号查
streamResponse连续对话开关,依赖机型能查询播放状态先填false,确认型号支持后再开

不同型号的指令值不一样,可以在 home.miot-spec.com 站点搜索音箱型号(如 LX06),点「规格」进入规格文档,把 play-text、wake-up 的 AIID 组合填进配置:

跑通验证:由简到难的 5 组测试指令

  1. 基础指令"小爱同学,请介绍一下你自己":预期先播提示语"让我先想想",再朗读 AI 自我介绍。
  2. 基础指令"小爱同学,请问地球为什么是圆的?":预期得到大模型的完整回答,而不是原小爱的固定回复。
  3. 组合指令"小爱同学,你是xxx,你xxx"更换人设后再提问:预期 AI 按新人设口吻回答。
  4. 组合指令"小爱同学,召唤傻妞"进入连续对话,回答结束后直接追问:预期无需再说"小爱同学",等"我说完了"出现即可提问。
  5. 异常指令:音箱正在放音乐时提问。预期 AI 不响应,需要先暂停音乐;AI 读个没完时,说"小爱同学,请你闭嘴"可以打断。

常见问题:MiGPT 启动报错与无反应排查

Q:MiGPT 提示"70016:登录验证失败"怎么解决?小米 ID 填成了手机号或邮箱。userId 要求数字小米 ID,到账号「个人信息-小米 ID」页复制后重新填写,再重启服务。

Q:MiGPT 提示"找不到设备:xxx"怎么办?did 与米家中的设备名不一致。打开米家 App 的小爱音箱主页核对设备名称,注意空格和大小写(例如"小爱音箱Pro"而非"小爱音箱 Pro");仍不一致时,在 speaker 里打开debugenableTrace,从控制台输出的设备列表里取 miotDID 填入。

Q:音箱没出声,但控制台能看到 AI 的回复?ttsCommand 与你的型号不匹配。去 home.miot-spec.com 搜索音箱型号,点「规格」找到 play-text 指令及参数,修改 .migpt.js 里的 ttsCommand 后重启容器。

Q:提示"LLM 响应异常 Connection error"是什么原因?网络访问不了模型服务。用 OpenAI 时在 .env 里加HTTP_PROXY;或换成通义千问等国内模型,变量名不变,只改 OPENAI_BASE_URL 和 OPENAI_MODEL 的值。

Q:连续对话时小爱总是把句子读一半就停?你的型号查不到播放状态,需要关闭连续对话。对照 docs/compatibility.md 确认型号是否在支持列表,不在就把 streamResponse 设为false,AI 会整句读完后再等你提问。

延伸阅读:兼容型号与指令对照表、第三方 TTS 接入教程。

【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询