news 2026/9/13 4:38:54

小爱音箱接入大模型:MiGPT 智能音箱改造完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小爱音箱接入大模型:MiGPT 智能音箱改造完整指南

小爱音箱接入大模型:MiGPT 智能音箱改造完整指南

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

周六早上你迷迷糊糊喊了句"小爱同学,今天适合跑步吗?",音箱回的不是"为您查询到……"的机械腔,而是"外面 22 度有小雨,建议改去健身房"——它真的听懂了。这就是 MiGPT 干的事:把家里那台只会答关键词的智能音箱,接上 ChatGPT、豆包这类大语言模型,变成一个能聊天、有人设、有记忆的专属语音助手。

🚀 先把服务跑起来:两个配置文件加一条命令

先别急着调人设,这一步没跑通,后面都是白搭。MiGPT 是个 Node.js 程序(Node.js 可以理解成运行 JavaScript 程序的运行环境),你只需要准备两个文件:

  • .env:大模型的"连接信息"——API 密钥、模型名、服务地址;
  • .migpt.js:音箱的"身份信息"——你的小米账号、音箱名字、人设和唤醒词。

仓库里有两个带.example后缀的同名模板,复制一份改个名,把自己的值填进去就行。注意did参数(音箱名)要直接复制米家 App 里显示的名字,多一个空格、大小写写错都算不存在。另外设备必须是小米的小爱音箱,小度、天猫精灵、HomePod 不支持。

配置文件里还有ttsCommand(让音箱读文字)和wakeUpCommand(唤醒音箱)两个指令编号,示例值[5, 1][5, 3]对多数型号有效,个别型号查一下规格表再改:

智能音箱指令编号与配置参数的对应关系

启动有两条路。不想碰代码环境的,用 Docker 最省事(Docker 把程序和依赖打包成镜像,哪都能跑):

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

开发者也可以直接拉源码跑,要求 Node.js 16 以上:

git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt && pnpm install && pnpm start

看到"服务已启动"就成功了:

MiGPT 启动后的控制台界面,唤醒即有大模型响应

⚠️ 常见坑:启动报"70016 登录验证失败",九成是userId填错了——要填"小米 ID"(小米账号"个人信息"里查得到),不是手机号;报"找不到设备"则是did和米家里的名字对不上。Windows 终端里$(pwd)不生效,要把配置文件写成绝对路径。

💬 三种喊法召唤 AI,配好唤醒词和退出词

跑起来之后,喊它的方式一共就三种:

  • "小爱同学,xxx",比如"小爱同学,请介绍一下你自己";
  • "小爱同学,xxx",比如"小爱同学,你喜欢吃什么?";
  • "小爱同学,召唤xxx",这个会进入"唤醒模式",支持连续对话。

进入唤醒模式后,你不用每句话都带"小爱同学",直接接着聊;说退出词它就恢复正常。词都在.migpt.js里配,改完重启容器生效:

speaker: { wakeUpKeywords: ["召唤傻妞", "打开傻妞"], exitKeywords: ["退出傻妞"], onEnterAI: ["我在呢,有什么可以帮你?"] }

进入提示、结束语、出错提示这一整套话术,都可以在 完整配置说明 里找到对应参数。日常玩法很多:早晨播报天气和新闻、睡前给孩子讲个故事、孩子写作业时临时问两道数学题。

⚠️ 常见坑:它正在说话的时候你跟它说话,它是收不到的——等它说完结束语(比如"我说完了")过一两秒再问;音箱正在放歌时也得先让它暂停,再和 AI 对话,否则状态会乱。

🧠 改一行 .env 切换大模型

音箱接入大模型之后,大脑换成谁,基本就是在.env里改三行的事:

OPENAI_API_KEY=sk-你的密钥 OPENAI_MODEL=gpt-4o OPENAI_BASE_URL=https://api.openai.com/v1

MiGPT 走的是 OpenAI SDK 协议,所以凡是提供兼容接口的模型都能直接用:通义千问、DeepSeek、Moonshot 这类,把OPENAI_BASE_URL指到服务商地址、OPENAI_MODEL换成对应模型名就行。豆包这类不直接提供兼容接口的,可以用第三方 API 聚合工具转一道再接;本地部署的话,Ollama、LM Studio 都自带同样的接口,填本机地址即可。

⚠️ 常见坑:日志里出现 "Connection error" 一般是网络问题——国内直连不了 OpenAI,在.env里配HTTP_PROXY,或者干脆换国产模型;401 是密钥无效,404 "model does not exist" 通常是当前账号没这个模型的权限,换个档位试试。

🎭 5 分钟配好人设 Prompt,它还带记忆

智能音箱改造最有意思的一步,是给它立个性格。.migpt.js里有三处可改:bot.name(它的名字)、bot.profile(人设,性别、性格、爱好)、systemTemplate(系统 Prompt,决定它怎么说话、带不带上下文)。模板里{{botName}}这类变量运行时会自动替换,写法细节看 系统 Prompt 教程。

把人设写成"性格活泼、爱讲笑话",天气问题的答法和"严肃管家"完全是两个物种。懒得改文件也行,直接说"小爱同学,你是 xxx,你 xxx",它当场换人格。

性格之外它还有脑子:短期记忆装当前这轮对话,让话题能接得上;长期记忆存你的偏好,越聊越懂你,数据落在本地数据库里,不出你家。

🔊 换个声音:第三方 TTS 与播放问题排查

小爱同学自带的声音听腻了?可以换。在.env里填上TTS_BASE_URL(你自己的 TTS 服务地址),再把.migpt.js里改成:

speaker: { tts: "custom", switchSpeakerKeywords: ["把声音换成"] }

之后一句"小爱同学,把声音换成 xxx"就能换音色,本地搭的 ChatTTS 之类的服务也能接,详见 TTS 定制文档。

播放相关的故障基本都出在指令编号上,两种典型症状:

  • 有回答但没声音:通常是ttsCommand不匹配;
  • 句子说一半戛然而止:多半要补playingCommand(查询播放状态的指令)。

两个编号都要对着你的音箱型号查:在小米设备规格站搜型号,进"规格"页找对应指令:

搜索音箱型号后进入规格页,即可查到指令编号

播放状态指令在playing-state那一行,填[3, 1, 1]这类数组即可:

Play Control 属性表中的 playing-state 对应 playingCommand 配置

⚠️ 常见坑:如果改完编号还是没声音,说明你的型号不支持通过开放接口查询播放状态,这种情况无解,作者推荐的小爱音箱 Pro 是完美运行型号,型号列表见 兼容文档。

🛠️ 给想动手改源码的人

代码不长,结构也清楚,想改点什么的可以往下看:

  • 整体是纯 Node.js 服务,核心在 核心服务目录,按 bot(对话与记忆)、speaker(音箱控制)、db(数据)、openai(模型调用)分块;
  • 它"听懂你说话"的原理是轮询小米 MIoT/MiNA 开放接口拉对话列表,拿到 AI 回答后把语音链接发回音箱播放,细节见 工作原理;
  • 记忆和人设数据存在本地 Prisma 数据库(prisma 目录),不依赖外部服务;
  • 提醒一句:作者已宣布停止维护,但代码完整,适合当底子自己魔改;用语音控制米家灯光、音乐的智能家居联动还在 Roadmap 上,尚未开发。

🎯 下一步你可以试试

  • OPENAI_MODEL换成一个国产模型,对比一下回答风格
  • 重写bot.profile,立一个符合你口味的性格,比如"毒舌但靠谱的家庭闹钟"
  • 配好唤醒词和退出词,试一轮十分钟的连续对话
  • 在配置里打开debug: true,看日志熟悉"没反应"类问题的排查方法
  • 通读一遍 常见问题 和 参数设置,遇到问题先搜再问
📌 启动命令与关键文件速查
事项命令 / 路径
Docker 启动docker run -d --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latest
Node.js 启动pnpm install && pnpm start
大模型配置.env
音箱与人设配置.migpt.js
完整参数说明docs/settings.md
常见问题docs/faq.md

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

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

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

电容工作原理与应用选型全解析

1. 电容的本质与工作原理电容(Capacitor)是电子电路中最为基础的被动元件之一,它的核心功能是储存电能。想象一下,电容就像一个微型的水库——当有电流流入时,它能够快速"蓄水"(充电)…

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

STM32 DAC正弦波与AD同步采集,Matlab实时绘图完整实现

简介:面向STM32与MATLAB联合开发的嵌入式实战资料包,围绕数模转换模块连续输出正弦波、模数转换同步采集以及上位机实时绘图展开,适合需要学习ARM单片机模拟外设、直接存储器访问与串口通信的开发者与硬件工程师。资源共261个文件&#xff0c…

作者头像 李华
网站建设 2026/9/13 4:22:32

提示词工程实战:10个高效技巧与可复用模板库

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

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

10 分钟跑通你的第一条量化回测:gs-quant 快速上手指南

10 分钟跑通你的第一条量化回测:gs-quant 快速上手指南 【免费下载链接】gs-quant Python toolkit for quantitative finance 项目地址: https://gitcode.com/GitHub_Trending/gs/gs-quant gs-quant 是一个 Python 量化金融工具包:行情数据、金融…

作者头像 李华
网站建设 2026/9/13 4:21:00

AI Coding Agent工作流程与工具调用机制详解

1. AI Coding Agent的核心工作流程解析AI Coding Agent的核心在于其"思考-行动-观察"的循环机制。这个循环由三个关键阶段组成:意图理解、工具调用和结果整合。让我们用一个实际场景来说明:当你要求Agent"修复auth.ts中的测试失败"时…

作者头像 李华