news 2026/9/14 13:34:22

MiGPT 快速上手指南:小爱音箱接入 ChatGPT 和豆包,完成音箱 AI 升级

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MiGPT 快速上手指南:小爱音箱接入 ChatGPT 和豆包,完成音箱 AI 升级

MiGPT 快速上手指南:小爱音箱接入 ChatGPT 和豆包,完成音箱 AI 升级

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

MiGPT 是一个开源项目,把小米小爱音箱接入 ChatGPT、豆包等大语言模型,让原本只会固定话术的音箱完成 AI 升级。它本身是一个跑在你自己电脑或服务器上的 Node.js 服务,通过小米 IoT 云端接口轮询音箱的对话记录,检测到"提问类"消息后交给大模型处理,再把回答以 TTS 的形式放回音箱播出。下面按实际使用流程讲清楚:先确认设备能不能用,再部署,然后配置,最后聊聊它的边界。

开始前先看两件事

设备兼容性。MiGPT 支持大部分小爱音箱型号,其中小爱音箱 Pro(LX06)体验最完整,推荐优先使用。完整型号列表和每个型号对应的指令参数在 docs/compatibility.md,其中分三档:完美运行、正常运行(不支持连续对话)、不支持。注意它只适配小米系设备,小度、天猫精灵、HomePod 都不在范围内,也没有适配计划。

维护状态。项目已停止维护,不再有新功能和 bug 修复。不过现有代码和 Docker 镜像是完整的,存量功能可以正常使用,遇到新机型或新问题需要自行排查或在社区求助。如果刚入手且设备是小爱音箱 Pro,也可以关注作者的后续同类项目。

MiGPT 部署:Docker 一条命令,Node.js 留给开发者

部署前先克隆项目并准备配置文件(示例文件改名即可,字段说明见下一节):

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

Docker 方式(推荐),填好两个配置文件后:

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

Windows 终端下$(pwd)不可用,改成配置文件的绝对路径即可。服务不要求和小爱音箱在同一局域网,走的是小米云端接口,放在家里的 NAS、树莓派或云上服务器都行。

Node.js 方式,适合想读代码或二次开发的开发者,npm install mi-gpt后调用MiGPT.create()初始化,注意此模式不自动读取.env.migpt.js,参数要手动传入;本地调试开发流程参考 docs/development.md。

MiGPT 配置:.migpt.js 和 .env 两个文件

.env管模型,.migpt.js管音箱和角色。完整的字段说明在 docs/settings.md,这里只挑关键字段:

// .migpt.js 核心字段 export default { bot: { name: "傻妞", profile: "性格乖巧可爱,喜欢搞怪。" }, // AI 的人设 master: { name: "你的名字", profile: "你的简介" }, speaker: { userId: "987654321", // 小米 ID(在账号"个人信息"页查看,不是手机号/邮箱) password: "你的密码", did: "小爱音箱Pro", // 米家中的设备名称,需逐字一致 ttsCommand: [5, 1], // TTS 指令,因型号而异 wakeUpCommand: [5, 3], // 唤醒指令,因型号而异 callAIKeywords: ["请", "傻妞"], // 以这些词开头的消息交给 AI wakeUpKeywords: ["召唤傻妞"], // 进入连续对话模式的关键词 exitKeywords: ["退出傻妞"], }, };

ttsCommandwakeUpCommand是型号强相关的参数,不同型号数值不同。如果音箱收到消息但不发声,大概率是这里填错了,可到 MIoT 规格页面按型号查指令,docs/compatibility.md 里也整理了各型号的现成值:

接入非 OpenAI 的大模型:通义千问、DeepSeek、豆包

MiGPT 底层用的是 OpenAI SDK,所以任何提供 OpenAI 兼容接口的模型都能直接接。只需改.env,环境变量名不变:

OPENAI_API_KEY=你的密钥 OPENAI_MODEL=gpt-4o OPENAI_BASE_URL=https://api.openai.com/v1 # 换成对应服务的地址

以通义千问为例,把OPENAI_BASE_URL指向阿里云的兼容模式地址、OPENAI_MODELqwen-turbo即可;DeepSeek、Moonshot(Kimi)等改法相同。不兼容 OpenAI 接口的模型(豆包、文心一言等)则需要先部署 OneAPI 之类的聚合服务做格式转换,再指向它的地址。本地部署的 Ollama、LM Studio 自带兼容接口,同样直接填地址就能用。更细的申请和配置步骤可查 docs/faq.md 里的模型小节。

交互方式:三种说话模式

服务跑起来后,音箱的交互分三层,行为不同:

你说的话实际行为
小爱同学,请 xxx / 你 xxx仅这一条消息交给大模型回答,答完回到原状,适合单问单答
小爱同学,召唤傻妞(wakeUpKeywords)进入 AI 模式:之后连续提问都不用"小爱同学"开头,静默 30 秒后自动退出(exitKeepAliveAfter可调)
小爱同学,退出傻妞(exitKeywords)主动退出 AI 模式

连续对话属于实验性功能,且依赖音箱能正确上报播放状态。部分型号(如 Play 增强版 L05C)查不到状态,需要把streamResponse设为false,此时 AI 模式不可用,只能单问单答。进入 AI 模式后注意等它说完"我说完了"再提问;如果误触发播放了音乐,先让它暂停再对话。更多交互细节见 docs/faq.md。

人设定制、长短期记忆与换声音

角色感主要来自三处配置。第一是systemTemplate,这是发给大模型的系统提示词,内置模板已经带上了聊天记录、短期记忆和长期记忆变量,想完全自定义行为规则可以改它,变量含义见 docs/prompt.md。第二是bot.profilemaster.profile两个人设简介,AI 会据此调整语气和称呼应法;对话中也能临时改设定,直接说"小爱同学,你是 xxx"。第三是记忆机制,服务会自动从对话中提炼短期记忆、再沉淀为长期记忆(存在本地 SQLite 里),所以聊得越多它越了解你的偏好,代价是每次对话会多消耗一些 token,介意的话可以用精简版 Prompt 关掉记忆变量。

声音方面,默认走小米自带 TTS。想换成豆包同款音色,需要自己搭一个 TTS 服务(官方配套项目接入了火山引擎,实名后有免费音色额度),在.env里填TTS_BASE_URL、把speaker.tts改成custom即可,之后语音说"把声音换成 xxx"就能切换音色,完整步骤在 docs/tts.md。

限制与避坑:已知问题清单

这几个是实际使用中最容易踩的点,先了解可以省不少排查时间:

  • 原小爱会"抢话"。AI 回复前,原版小爱可能先开口,项目通过播静音音频来打断它,但云端轮询有 1~2 秒延迟,做不到完全静默。原理和原因见 docs/how-it-works.md。
  • 小米账号异地登录保护。在非日常网络环境(尤其海外服务器)启动时可能触发安全验证,需要在相同网络下先登录小米官网手动通过验证;海外节点还需同意个人数据跨境传输协议。
  • 共享设备不支持。音箱如果是账号共享设备,MiNA 接口取不到它,服务无法启动。
  • did 要逐字匹配。米家中设备名称的空格、大小写、别字都会导致"找不到设备",建议直接从米家 App 复制;实在对不上就开debug+enableTrace从日志里取miotDID填进去。
  • OpenAI 访问问题。国内网络直连 OpenAI 会报 Connection error,要么配代理(HTTP_PROXY),要么改用国内模型或第三方反向代理服务。

更多帮助在哪找

遇到问题先查 docs/faq.md,覆盖启动失败、播放异常、网络异常三大类;参数含义看 docs/settings.md;设备型号和指令看 docs/compatibility.md;Prompt 变量和现成模板看 docs/prompt.md。仓库里的 assets/pdf 目录还有官方教程和 Unraid 部署的 PDF,适合跟着一步步操作。项目已停止维护,建议配置好自己的参数并留一份.migpt.js.env和数据库文件的备份,方便日后迁移环境时直接用。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 13:33:54

VC++随机密码生成器:从安全随机数到7z打包全解析

简介:这是一份面向C/C初学者与编程爱好者的VC随机密码生成器源码包。该项目演示了如何利用C标准库完整实现一个支持自定义长度、可选数字/大小写字母/特殊字符的随机密码生成程序,适合用Visual Studio直接打开编译运行,帮助读者将随机数生成、…

作者头像 李华
网站建设 2026/9/14 13:31:24

Golang Map底层实现与并发安全详解

1. Golang Map 面试核心要点解析在Golang面试中,Map相关的知识点几乎是必考内容。作为Golang中最重要的数据结构之一,Map的底层实现、并发安全性和扩容机制等都是面试官重点考察的方向。下面我将从实际面试角度出发,深入剖析Golang Map的核心…

作者头像 李华
网站建设 2026/9/14 13:30:46

AI巨头的商业化困境与技术挑战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 13:29:24

JavaWeb车辆管理系统课设源码解析:工程结构、数据库与部署实战

简介:面向JavaWeb课程设计的车辆管理系统完整项目,源码与数据库齐备,适合需要高质量课程设计参考的在校生。系统基于Servlet/JSP实现,涵盖车辆信息管理、车位分配、用户角色与卡片管理等功能模块,代码结构清晰&#xf…

作者头像 李华
网站建设 2026/9/14 13:28:50

安卓图书管理系统开发实战:从SQLite数据设计到APK打包全解析

简介:这是一套安卓图书管理系统完整工程源码,基于安卓Studio开发,面向安卓初中级开发者、计算机专业学生以及需要管理个人藏书或小型图书室的用户。系统实现了图书信息增删改查、用户登记与权限控制、借阅归还、支持按书名、作者、分类进行模…

作者头像 李华
网站建设 2026/9/14 13:27:12

cuML源码快照评估指南:从工程结构判断GPU机器学习库是否值得PoC

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华