MiGPT 改造小爱音箱:三步接入大模型,让它真正听懂人话
2026/9/14 5:23:07 网站建设 项目流程

MiGPT 改造小爱音箱:三步接入大模型,让它真正听懂人话

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

周五晚上,你只想让客厅音箱放段白噪音,它先给你播报了天气。你问"量子纠缠是啥",它回"我不太明白你的意思"。开源项目 MiGPT 就是来治这个的:把 ChatGPT、豆包这类大模型接进小爱音箱,让它能真正听懂人话,和你连续聊下去。

MiGPT 启动后与豆包对话的运行记录

它到底是怎么做到的

把它理解成在客厅里加了一位翻译官。你喊"小爱同学,请解释量子纠缠",音箱照旧把话上报云端;MiGPT 在后台轮询(就是每隔几秒问一次"有没有新消息")这个对话列表,抓到你的问题就转手交给大模型;模型的回答再经 TTS(文字转语音)变成声音,从音箱里放出来。它还会把最近几轮对话存进记忆,所以你的追问它接得住。整条链路不用动音箱硬件,刷不刷机都行。收发消息、调 AI 的逻辑都在 src/services/bot/ 目录里,想深挖可以自己翻。


环境准备:小爱音箱接入大模型前的三件事

🔧 动手前先过三关:

  1. 运行环境:Node.js 16 以上,或者直接用 Docker。想 7×24 小时挂着、又不想折腾依赖,选 Docker 最省心。
  2. 查型号:翻 docs/compatibility.md,确认设备在"完美运行"或"正常运行"区,Pro 系列反馈最完整。小度、天猫精灵不在支持列表里,别试。
  3. 找小米 ID:注意不是手机号也不是邮箱。登录小米账号,在「个人信息」页找那串数字,才是这里要填的 ID。

首次配置:改两个文件,填六个关键参数

先把代码拿下来,复制两份配置模板:

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

.env管大模型这一侧。用国内模型不用换框架,把接口地址指过去就行:

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

.migpt.js管音箱这一侧,重点看这几项(完整清单在 docs/settings.md):

  • speaker.userIdpassword:小米账号,userId 就是上面那串 ID
  • speaker.did:米家里音箱的名称,一字不差,空格和大小写都要对上
  • speaker.ttsCommand:让音箱出声的指令,各型号不同,查兼容表
  • speaker.wakeUpCommand:唤醒指令,同样查表
  • callAIKeywords:以哪些词开头才叫 AI 回答,默认是"请"和"你"

在设备规格库搜索型号,翻出指令参数

如果兼容表里没有你的型号,去小米的设备规格库搜一下型号(比如 lx06),指令参数能自己翻出来。两个文件都改完,小爱音箱接入 ChatGPT 这件事就算配齐了。

验证跑通:说一句话,听它答不答

pnpm start把服务跑起来,日志里出现"服务已启动"就算活着。对着音箱说:"小爱同学,请解释一下量子纠缠。"它先回"让我先想想",然后开口讲,讲完补一句"我说完了"——链路全通。

没反应的时候,九成是did没对上,或者你那句话没以callAIKeywords里的词开头;再就是音箱正在放歌,先让它暂停。想要常驻运行,把 README 里docker run -d --env-file $(pwd)/.env那条完整命令抄过来即可,Windows 终端下记得把$(pwd)换成绝对路径。

进阶玩法:小米音箱自定义提示词

⚡ 跑通之后,最值得动手的是两处。

如果你想给音箱立个人设,比如让孩子问数学题时,它当个有耐心的小学老师。在.migpt.js里改角色简介和系统提示词:

botProfile: "性格严谨,讲题先引导、不直接给答案,每步不超过 20 个字"

systemTemplate控制说话风格和要不要带聊天历史,模板变量说明写在 docs 目录的 prompt 文档里,照抄改词即可。

如果你的型号不在兼容表里,或者觉得连续对话时停顿感太强,去规格库把 SIID/AIID 翻出来,手填指令参数:

speaker: { ttsCommand: [5, 1], wakeUpCommand: [5, 3], playingCommand: [3, 1, 1] }

playingCommand管的是"音箱还在不在播"的判定,连续对话就靠它判断能不能接下一句。

查 SIID 编号与指令参数的对应

避坑速查:四个高频问题

🐛 按出现频率排,先对号入座,大概率不止中一条:

现象原因解法
启动报 70016 登录失败密码错,或把手机号当小米 ID 填了去「个人信息」核对 ID,重启再试
提示"找不到设备"did和米家名称对不上,多一个空格都算直接复制米家里的设备名
控制台有回复,音箱不出声ttsCommand和型号不匹配按兼容表或规格库查对应指令
说了半天没反应小爱没在听:正在放歌,或还没唤醒先说"小爱同学"唤醒,或让它暂停

其他报错基本都能在 docs/faq.md 里搜到原文,先搜再问。

项目还在迭代,新支持的型号和特性都记在 docs/changelog.md 里。跑通了去仓库提个 issue 晒一下,卡住了也提——你踩的坑,可能就是别人的第一道坎。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询