news 2026/9/13 14:27:34

小爱音箱接入大模型完整教程:用 MiGPT 把它调教成专属语音助手

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小爱音箱接入大模型完整教程:用 MiGPT 把它调教成专属语音助手

小爱音箱接入大模型完整教程:用 MiGPT 把它调教成专属语音助手

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

问小爱音箱"明天降温穿什么",它甩来三句天气预报,追问一句就忘了前文。开源项目 MiGPT 把小爱音箱直接接到 ChatGPT、豆包等大模型上,支持连续对话、自定义人设和第三方 TTS 音色。这篇只讲三件事:它的能力边界、部署方法、最常翻车的坑。

🧭 先看边界:哪些能做,哪些别指望

使用场景接入前接入 MiGPT 后
多轮追问每句都要"小爱同学"开头唤醒模式下连续提问,不用重复唤醒
人设出厂固定自己写 profile,还能口头临时改
音色小米 TTS 机械音可换火山引擎 21 款免费音色(豆包同款)
记忆单轮独立短期 + 长期记忆

四条明确的"不能",先说好免得白折腾:

  • 只认小爱音箱,小度、天猫精灵、HomePod 不支持,也没有适配计划
  • "小爱同学"这个唤醒词是固件写死的,外部改不了
  • 控制米家灯、插座这类设备联动还是 todo,没开始开发
  • 项目已停止维护:功能冻结在当前版本,不再有更新

📋 装之前先对号入座:你的型号在不在名单里

docs/compatibility.md 把型号分成三档:

  • 完美运行(支持连续对话):小爱音箱 Pro(LX06)、Xiaomi 智能音箱 Pro(OH2P)、小爱音箱万能遥控版等
  • 正常运行(不支持连续对话):小爱音箱(L06A)、mini、Play、Art、触屏音箱等
  • 完全不支持:小米小爱音箱 HD(SM4)等

档与档的差别集中在两条设备指令上,示例对比:

型号ttsCommandwakeUpCommand连续对话
小爱音箱 Pro(LX06)[5, 1][5, 3]支持
Xiaomi 智能音箱 Pro(OH2P)[7, 3][7, 1]支持
小爱音箱(L06A)[5, 1][5, 2]不支持

型号不在表里也没关系:把配置里的debugenableTrace打开重启,日志里能查到设备列表和指令参数,照抄进配置即可。

🚀 从 clone 到跑起来,一条命令的事

git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt

再把两份示例配置改个名,这才是容器真正挂载的文件(跳过这步容器会直接报找不到配置):

cp .migpt.example.js .migpt.js cp .env.example .env

Docker 启动,推荐给不想折腾 Node 环境的人:

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

Windows 的 PowerShell/cmd 不认$(pwd),两处路径要手写成绝对路径。

启动成功后有三种用法,难度递增:

  • 小爱同学,请 xxx:单次问答,比如"请问地球为什么是圆的"
  • 小爱同学,你 xxx:带人设对话,比如"你喜欢我吗"
  • 小爱同学,召唤傻妞:进入唤醒模式,之后连续提问不用每句带"小爱同学"

⚙️ 两个配置文件:哪一行最容易填错

.env管"接哪个大模型",.migpt.js管"音箱是谁、人设是什么"。

接 OpenAI 只需要两行:

OPENAI_MODEL=gpt-4o OPENAI_API_KEY=sk-xxxxxxxx

想换国产模型(小爱音箱接入豆包、通义千问都是这个路子),变量名不动,只改接口地址:

OPENAI_MODEL=qwen-turbo OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1

豆包这类不兼容 OpenAI API 的模型,用 One API 之类中转服务转成 OpenAI 格式,再填进同样的变量。

.migpt.js里最容易翻车的是这三行:

speaker: { userId: "987654321", // 纯数字小米 ID,登录小米官网个人信息页可查 did: "小爱音箱Pro", // 必须和米家 APP 里一字不差 ttsCommand: [5, 1], // 按型号查,别照抄别人的 }

did的三大死因:多一个空格("小爱音箱 Pro")、大小写("小爱音箱pro")、错别字("小爱音响")。名称核对无误还报"找不到设备",就是 Mina 和 MIoT 两套名称不一致,此时把enableTrace: true打开,日志里的miotDID数字 ID 直接填进did最稳。

🎭 调教空间:人设、关键词和连续对话

默认 AI 叫"傻妞",人设写在.migpt.example.jsbot.profile(性格、爱好),你自己的设定在master.profile,整套对话规则模板是systemTemplate,可参考 docs/prompt.md 里的变量说明。改人设不用改文件重启——直接说"小爱同学,你是xxx,你xxx"就能口头覆盖。

三类关键词决定哪句话会触发大模型:

callAIKeywords: ["请", "你", "傻妞"], // 开头命中就交给 AI 回答 wakeUpKeywords: ["打开", "进入", "召唤"], // 命中进唤醒模式 exitKeywords: ["关闭", "退出", "再见"], // 命中退出唤醒模式

连续对话有三个容易忽略的使用细节:

  • 它说完结尾提示语(默认"我说完了,还有其他问题吗")之后你再开口,它回答中途说的话是听不见的
  • 突然没反应多半是超过exitKeepAliveAfter(默认 30 秒)自动退出了,重新"召唤傻妞"即可
  • 回答太长想打断,说"小爱同学,请你闭嘴"

🔊 换声音:接入第三方 TTS 换豆包同款音色

默认走小米自带 TTS,声音偏机械。项目留了标准接口:填一个 TTS 服务地址,再把引擎切成custom

TTS_BASE_URL=http://192.168.31.205:4321/xxxx/api
speaker: { tts: "custom" }

官方配套的 MiGPT-TTS 服务接了火山引擎,实名认证后有 21 款免费音色,配好后说"小爱同学,把声音换成 xxx"就能语音切音色。TTS_BASE_URL不能写 localhost,要用音箱能访问到的局域网或公网地址。细节见 docs/tts.md。

🩹 翻车速查:现象、原因和解法

启动报"70016:登录验证失败"原因:账号密码不对,或把手机号当成了小米 ID。小米 ID 是纯数字,登录小米官网在个人信息页查看,填进userId

提示触发异地登录保护原因:服务器 IP 和常用登录地不一致。解法:在跑 MiGPT 的同一网络下登录一次小米官网,手动通过安全验证,等约 1 小时再启动。还不行的终极方案:先在本地网络跑通,把生成的.mi.json拷到服务器,挂载到容器/app/.mi.json

"找不到设备:xxx"初始化失败原因:did与米家名称对不上。先逐字核对名称;仍失败就用miotDID数字 ID。注意:共享到别人账号下的音箱,Mina 接口拿不到,必须挂在你自己账号下。

控制台有 AI 回复,音箱却不出声原因:ttsCommand填错。不同型号指令不同,按 docs/compatibility.md 里你型号的 AIID 配置。

回答说到一半戛然而止原因:设备查不到播放状态,MiGPT 误判为播完。先补上playingCommand(如[3, 1, 1]);配了仍不行说明该设备不支持开放接口查状态,只能关掉streamResponse,代价是连续对话失效。

喊了没反应,音箱"装死"原因:没先唤醒就说话。必须"小爱同学"开头进入听写状态,才接得住后面的"请 xxx"。

AI 回答前小爱先抢一句这条无解。原理是轮询云端对话列表发现小爱在回复、再播静音把它盖掉,1~2 秒延迟是物理限制,官方 FAQ 也写明只有刷机才能根治,属于已知缺陷。

✅ 下一步清单

  1. 打开 docs/compatibility.md,确认你的型号落在"完美运行"或"正常运行"档
  2. 复制两份示例配置,填好userId(纯数字小米 ID)和did(与米家逐字一致)
  3. Docker 一条命令启动;Windows 用户记得把$(pwd)换成绝对路径
  4. 先用"小爱同学,请介绍下你自己"验证链路,通了再折腾唤醒模式和 TTS
  5. 出问题先翻 docs/faq.md,本文列的坑基本都有现成答案

卡在第 2 步别慌,"找不到设备"和"70016"占了启动失败的绝大多数——名字逐字对一遍、ID 换成纯数字,九成情况当场就通了。

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

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

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

Cursor Plus 会员深度实测:20 美元月费到底值不值?

/* 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 14:24:03

Go语言实现Raft共识算法:原理与实战优化

/* 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 14:22:17

CCF-CSP第三题通关指南:题型分类、通用框架与考场策略

/* 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 14:21:10

Linux下用Docker容器搭建VSCode MicroPython开发环境

1. 为什么要在 Linux 下用容器跑 MicroPython 开发环境?——不是炫技,是真省事我第一次在树莓派 Pico 上烧写 MicroPython 固件时,手抖把/dev/ttyACM0权限搞崩了,接着又因为系统 Python 版本和mpremote依赖冲突,折腾掉…

作者头像 李华