news 2026/9/13 9:18:53

MiGPT部署指南:2个配置文件让小爱音箱变成懂你的语音助手

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MiGPT部署指南:2个配置文件让小爱音箱变成懂你的语音助手

MiGPT部署指南:2个配置文件让小爱音箱变成懂你的语音助手

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

对小爱说"小爱同学,让 ChatGPT 讲讲天空为什么是蓝的",音箱真的会开始给你讲物理课——这就是 MiGPT 把小爱音箱接入大模型后的效果。本文带你用 Docker 和两个配置文件把它跑起来,再把音箱调教成能连续对话、有自己人设和声音的助手。

接入大模型后,你的小爱音箱能做什么

先看改造前后的差别,心里有个底:

场景原生小爱接入 MiGPT 后
知识问答只能回答内置知识库里有的开放式问题也能聊,从菜谱到编程
多轮交流每句话都是独立指令记得上下文,可以来回追问
说话方式固定音色、固定腔调可自定义人设、换第三方音色
回答风格同一问题永远一个答案语义理解,每次回答都不同

MiGPT 的工作原理可以一句话概括:它通过小米 IoT 开放接口轮询小爱的对话记录,把带关键词的消息转给大模型,再把回答合成为语音让小爱念出来。你不需要刷任何东西,音箱本身保持原样。

5 分钟跑通首启:准备 MiGPT 的两个配置文件

准备工作只有一台常开的电脑或 NAS(装好 Docker 即可)+ 一台米家在线的小爱音箱。型号支持范围可以先对照兼容列表,小爱音箱 Pro 体验最完整;小度、天猫精灵等其他品牌不在支持范围内。

新建 .migpt.js 和 .env 两个文件

在电脑任意目录新建两个文件,内容照抄下面两段、替换成你自己的值即可。这是整个部署里唯一需要认真填的地方:

// .migpt.js —— 音箱连接信息 export default { speaker: { userId: "987654321", // 小米ID(个人信息-小米ID里查,不是手机号) password: "123456", // 小米账号密码 did: "小爱音箱Pro", // 米家里设置的设备名,空格和大小写都要一致 }, };
# .env —— 大模型接入信息 OPENAI_API_KEY=你的API密钥 OPENAI_MODEL=gpt-4o OPENAI_BASE_URL=https://api.openai.com/v1 # 接国产模型就换成对应的兼容地址

.env里三个变量名不用改,接通义千问、DeepSeek 这类兼容 OpenAI 格式的模型时,只需替换地址、模型名和密钥的值。全部参数的含义都在配置文档里有表可查。

一条 Docker 命令启动

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

Windows 终端下把$(pwd)换成两个配置文件的绝对路径。执行docker logs -f <容器名>跟踪日志,看到"服务已启动"后对着音箱说一句"小爱同学,请介绍一下自己",音箱开口回答就成功了 ✅

三种召唤方式:从单句问答到连续对话模式

跑通之后,有三种方式让音箱调用大模型:

  • 直接提问:"小爱同学,请解释一下量子纠缠"。消息以callAIKeywords(默认"请"、"你")开头就会走 AI,问完即回,不用唤醒。
  • 进入 AI 模式:"小爱同学,召唤傻妞"(关键词在wakeUpKeywords里自定义)。进入后说欢迎语onEnterAI,之后每句话都直接说、不用再加"小爱同学"前缀,这就是连续对话模式。
  • 退出:"小爱同学,退出傻妞"(exitKeywords),或者静默超过exitKeepAliveAfter秒自动退出。

连续对话模式有个使用要点:要等小爱念完结束语(默认"我说完了")再开口,它没在听的时候说的话收不到。

驯服连续对话:查型号指令参数与流式回复设置

你的音箱型号不同,指令参数也不同,这一步决定了 AI 模式能不能稳定工作。

查你型号对应的两条指令编号

到 MIoT 规格库(home.miot-spec.com)搜你的型号,例如小爱音箱 Pro 是 LX06:

在规格页的"方法 Actions"里找两个编号:play-text的 AIID 拼上 SIID 就是ttsCommand(用来让小爱念 AI 的回答),wake-up的 AIID 拼上 SIID 就是wakeUpCommand(用来把小爱拉回倾听状态)。以 LX06 为例:

把这两组数字填进.migpt.jsspeaker里。上表是默认值,其他型号务必按自己查到的填。

开启 streamResponse 与 playingCommand 连续对话

想启用连续对话,音箱得能被查询"是否在播放中":

  • 能查到播放状态的型号:填上playingCommand(如 LX06 不需要,部分型号填[3, 1, 1]),保持streamResponse: true(默认)。
  • 查不到或状态异常的型号:把streamResponse设为false,只用第一种"直接提问"方式。具体哪些型号属于哪类,兼容列表里按反馈整理好了。

调教专属人设:改 bot 档案与换音色

默认的小爱听起来还是"客服腔",这一步给它换个灵魂。

用 bot.profile 和 systemTemplate 重写人设

// .migpt.js 追加 export default { bot: { name: "傻妞", profile: "性别女,性格活泼爱开玩笑,称呼我为'主人'", }, speaker: { onEnterAI: ["我在这儿,说吧!"] }, };

profile一句话就能定性格;想更精细地控制回答规则(比如何时引用记忆、要不要带上下文),改systemTemplate,模板变量和写法见配置文档的 systemTemplate 一节。改完重启容器生效。

换掉默认声音:接入第三方 TTS

小爱自带的 TTS 音色固定,还偶尔提示文字含敏感信息。把speaker.tts设为"custom"并填好TTS_BASE_URL指向自建的 TTS 服务后,说一句"小爱同学,把声音换成 xxx"就能随时切换音色。完整搭建步骤在第三方 TTS 教程里。

踩坑速查:启动失败或不回话的高频问题

⚠️ 以下按出现频率排序,多数情况的常见问题文档里也有对应解答:

Q:启动报"70016:登录验证失败"?A:userId填错。它要的是"个人信息-小米ID"页里那串数字,不是手机号也不是邮箱。

Q:提示"找不到设备"?A:did必须和米家设备名逐字一致,常见翻车:多了一个空格、"Pro"写成"pro"、把"音箱"打成"音响"。米家里复制一下最稳妥;对不上时可以填设备 did 代替名称。

Q:连续对话模式下说话没反应?A:等提示语念完、音箱真的在听的时候再开口(Pro 型号看顶部指示灯常亮即在听)。没反应就用"小爱同学,xxx"重新唤醒;正在放音乐时也要先暂停。

Q:触发小米异地登录保护?A:在运行 MiGPT 的同一网络下用浏览器登录一次小米账号、手动通过安全验证,约 1 小时后再启动即可。

Q:回答太慢?A:把onAIAsking/onAIReplied提示语清空、checkInterval调小到 500,再考虑换响应更快的模型。

跑通之后,还可以接着做这几件事:

  1. 对照兼容列表确认自己型号的playingCommand,把连续对话开到最稳
  2. 换一组国产模型的 API,对比同一问题的回答速度和风格
  3. 按 TTS 教程自建音色服务,用语音指令随时换声音
  4. 精读systemTemplate,给 AI 定下"只说人话、不编造"的回答规则

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

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

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

SpringBoot+Vue垃圾分类回收系统开发实践

/* 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 9:14:51

双重低碳需求响应下的电力系统优化调度与Matlab实现

1. 项目概述&#xff1a;双重低碳需求响应下的电力系统优化调度电力系统优化调度一直是能源领域的核心课题。随着"双碳"目标的推进&#xff0c;传统仅考虑供给侧低碳化的调度模式已无法满足新型电力系统需求。这个项目创新性地引入了双重低碳需求响应机制——同时考虑…

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

8×8×8光立方制作指南:单片机动态扫描驱动原理与PCB设计实践

简介&#xff1a;888光立方制作资料面向电子爱好者、创客及单片机初学者&#xff0c;提供从硬件原理到程序控制的完整入门方案&#xff0c;既适合教学演示&#xff0c;也适合个人DIY作品复现。包内共28个文件&#xff0c;以原理图PDF、PCB图JPG、C语言源程序、HEX烧录文件及元器…

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

三菱R系列PLC工业自动化案例解析与ST编程实践

1. 项目背景与核心价值这个三菱R系列PLC案例堪称工业自动化领域的"瑞士军刀"&#xff0c;完整呈现了高端设备控制系统的典型架构。作为在汽车焊装线调试过数十台发那科机器人的老工程师&#xff0c;我第一眼就看出这个案例的含金量——它把ST结构化文本编程、RD77MS定…

作者头像 李华
网站建设 2026/9/13 9:10:53

Prototype Report: [Concept Name]

Prototype Report: [Concept Name] 【免费下载链接】Claude-Code-Game-Studios Turn Claude Code into a full game dev studio — 49 AI agents, 72 workflow skills, and a complete coordination system mirroring real studio hierarchy. 项目地址: https://gitcode.com/…

作者头像 李华
网站建设 2026/9/13 9:10:23

Go Channel死锁问题解析与调试实战

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

作者头像 李华