如何把小爱音箱接入 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 install、pnpm build、pnpm 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 组测试指令
- 基础指令"小爱同学,请介绍一下你自己":预期先播提示语"让我先想想",再朗读 AI 自我介绍。
- 基础指令"小爱同学,请问地球为什么是圆的?":预期得到大模型的完整回答,而不是原小爱的固定回复。
- 组合指令"小爱同学,你是xxx,你xxx"更换人设后再提问:预期 AI 按新人设口吻回答。
- 组合指令"小爱同学,召唤傻妞"进入连续对话,回答结束后直接追问:预期无需再说"小爱同学",等"我说完了"出现即可提问。
- 异常指令:音箱正在放音乐时提问。预期 AI 不响应,需要先暂停音乐;AI 读个没完时,说"小爱同学,请你闭嘴"可以打断。
常见问题:MiGPT 启动报错与无反应排查
Q:MiGPT 提示"70016:登录验证失败"怎么解决?小米 ID 填成了手机号或邮箱。userId 要求数字小米 ID,到账号「个人信息-小米 ID」页复制后重新填写,再重启服务。
Q:MiGPT 提示"找不到设备:xxx"怎么办?did 与米家中的设备名不一致。打开米家 App 的小爱音箱主页核对设备名称,注意空格和大小写(例如"小爱音箱Pro"而非"小爱音箱 Pro");仍不一致时,在 speaker 里打开debug和enableTrace,从控制台输出的设备列表里取 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),仅供参考