
小爱音箱接入ChatGPT用MiGPT 3步完成大模型改造【免费下载链接】mi-gpt 将小爱音箱接入 ChatGPT 和豆包改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt晚上十点孩子窝在被子里问小爱同学月亮为什么晚上会跟着我走音箱停了两秒回一句这个我还不会呢。想让音箱接住这类问题给它接上真正的大模型就够了。MiGPT 是一个开源项目把小爱音箱接入 ChatGPT、豆包等大语言模型唤醒后能问答、能角色扮演、能连续对话全程不用刷机。 小爱音箱接入大模型后能做什么MiGPT 是一个把小爱音箱接入大语言模型的开源项目目标人群很明确手里有小爱音箱、又不满足于简单问答式回答的用户。它以一个常驻进程跑在服务器、NAS 或 Docker 容器里只依赖小米开放的 MIoT 云端接口不刷机、不破解。它只支持小米生态的小爱音箱小度、天猫精灵等其他品牌不在适配范围内。能力维度AI 问答天文地理、知识解释都能接住回答质量由接入的大模型决定角色扮演用 profile 设定人设让 AI 以固定身份陪你聊天流式响应大模型边生成边播放不必等整段回复完成长短期记忆对话存进本地数据库跨会话也能记得之前聊过什么连续对话说唤醒词进入 AI 模式后续提问不用每句都喊小爱同学自定义 TTS接入第三方语音合成服务用语音指令随时切换音色⚙️ 工作原理中转站式的消息流转MiGPT 的角色像一座中转站你对小爱音箱说话它站在中间把话转给大模型再把结果送回来。整个过程分四步轮询持续从小米云端拉取音箱的对话列表拿到你刚说的话判断检查消息是否以请召唤等触发词开头是才转发给大模型合成大模型的回复经 TTS 转换成一段可播放的音频播放通过 MIoT 开放接口向音箱下发播放指令音箱开始朗读最后一步的关键在指令编号每个功能对应一对 [SIID, AIID] 数字比如 [5, 1] 是文本播放[5, 3] 是唤醒。型号不同编号不同这也是后面配置的重点。 克隆仓库并完成大模型接入配置整条操作线是确认型号兼容 → 克隆仓库 → 复制并填写两个配置文件 → 启动服务。先对照 docs/compatibility.md 查一下自己的型号推荐小爱音箱 Pro环境方面 Docker 或 Node 16 以上即可音箱和服务无需在同一局域网。git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gptcp .migpt.example.js .migpt.js cp .env.example .env两个配置文件只需要改这几处userId小米 ID在账号页个人信息查看不是手机号或邮箱password小米账号密码did米家中设置的音箱名称需与米家逐字一致ttsCommand/wakeUpCommand音箱的 TTS 与唤醒指令编号OPENAI_API_KEY/OPENAI_MODEL模型 API 密钥与模型名OPENAI_BASE_URL可选指向其他模型的 OpenAI 兼容端点不想折腾运行环境用 Docker 启动一行命令即可Windows 终端下把$(pwd)换成绝对路径docker run -d --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latest想看日志、改代码的开发者走源码方式启动pnpm install pnpm db:gen pnpm dev启动成功后有三种召唤方式小爱同学请 xxx直接提问小爱同学你 xxx闲聊小爱同学召唤傻妞进入连续对话模式。 核心配置详解账号、指令编号与模型参数账号与 did。改的是.migpt.js里 speaker 下的三个字段userId 填小米 IDdid 直接复制米家设备主页显示的完整名称。日志里最常见的两个报错——70016 登录验证失败、找不到设备——基本都出在这三个字段上。speaker: { userId: 987654321, // 小米 ID不是手机号 password: 你的密码, did: 小爱音箱Pro, // 与米家中的名称逐字一致 },指令编号。ttsCommand 和 wakeUpCommand 决定音箱会不会出声。到小米 MIoT 规格站 home.miot-spec.com 搜自己的型号找到 play-text 和 wake-up 两个动作对应的 AIID 填进去即可小爱音箱 Pro 的推荐值是 [5, 1] 和 [5, 3]。音箱收到消息却不朗读时九成是这个编号和型号对不上。播放状态指令。如果回答总是说到一半戛然而止再给 speaker 加上 playingCommand 查询播放状态Play 系列一般填 [3, 1, 1]部分老型号查不到播放状态只能关闭 streamResponse用完整回复换稳定性。模型与人设。.env决定用哪个大脑.migpt.js的 systemTemplate 决定它怎么说话。想换国产模型时环境变量名不用动只改 OPENAI_BASE_URL 和 OPENAI_MODEL 的值指向兼容端点即可。OPENAI_API_KEY你的密钥 OPENAI_MODELgpt-4osystemTemplate: 你是一个博学多识的助手回答保持精简不超过 3 句话。, 实战场景睡前故事、人设陪伴与连续对话给孩子讲睡前故事。孩子上床后说小爱同学请讲个关于月亮的故事音箱会边生成边朗读。把 systemTemplate 调成讲故事口吻效果最稳systemTemplate: 你是耐心的故事老师用孩子能听懂的话讲故事每次不超过 200 字。,固定人设陪伴。想让音箱有稳定人格把 bot 的 name 和 profile 写具体之后的对话都会基于这个人设展开也可以直接对它说小爱同学你是 xxx临时换人设bot: { name: 傻妞, profile: 性别女性格乖巧可爱喜欢搞怪爱吃醋。, },连续对话模式。说小爱同学召唤傻妞进入 AI 模式后后续提问不用每句带唤醒词等它说我说完了再继续问长时间没动静会自动退出speaker: { wakeUpKeywords: [召唤傻妞, 打开傻妞], exitKeywords: [退出傻妞], exitKeepAliveAfter: 30, },️ 避坑指南五个高频问题日志报70016 登录验证失败→ userId 多半填成了手机号或邮箱改成账号页个人信息里的小米 ID提示触发异地登录保护→ 在与服务相同的网络里手动登录一次小米账号走完安全验证等约 1 小时再启动仍失败就先在家庭网络跑通把生成的 .mi.json 导出后挂载到服务器容器报找不到设备→ did 必须和米家设备名逐字一致包括大小写和空格名字对不上时开启 debug 与 enableTrace 拿到 miotDID直接填这个数字音箱收到消息却不朗读→ 核对 ttsCommand 是否和型号匹配音箱正在放音乐时要先暂停再提问AI 回复报 Connection error→ 海外模型服务需要代理在 .env 里加 HTTP_PROXY或者直接换成 OpenAI 兼容的国内模型 扩展与进阶自定义音色与二次开发两个值得深入的点。一是自定义音色把 speaker.tts 设为 custom 并配置 TTS_BASE_URL 指向自建 TTS 服务之后说把声音换成 xxx即可现场切换音色docs/tts.md 有完整接口说明。二是二次开发消息判断、角色记忆、对话流程都集中在 src/services/bot/想加联网搜索或米家控制从这个目录的入口文件看起最顺。README 顶部已声明项目停止维护不再提供更新与支持现有功能可以正常使用建议定期备份 .migpt.js 和 .env。MiGPT 做的事说到底就一件让小爱音箱借大模型说话接入 ChatGPT 或豆包之后它从只能答简单问题的音箱变成能陪聊、能讲故事的语音助手。动手前建议先打开 docs/compatibility.md确认自己的型号在支持列表里再按本文顺序配置参数。【免费下载链接】mi-gpt 将小爱音箱接入 ChatGPT 和豆包改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考