MiGPT 改造小爱音箱:三步接入大模型,让它真正听懂人话
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
周五晚上,你只想让客厅音箱放段白噪音,它先给你播报了天气。你问"量子纠缠是啥",它回"我不太明白你的意思"。开源项目 MiGPT 就是来治这个的:把 ChatGPT、豆包这类大模型接进小爱音箱,让它能真正听懂人话,和你连续聊下去。
MiGPT 启动后与豆包对话的运行记录
它到底是怎么做到的
把它理解成在客厅里加了一位翻译官。你喊"小爱同学,请解释量子纠缠",音箱照旧把话上报云端;MiGPT 在后台轮询(就是每隔几秒问一次"有没有新消息")这个对话列表,抓到你的问题就转手交给大模型;模型的回答再经 TTS(文字转语音)变成声音,从音箱里放出来。它还会把最近几轮对话存进记忆,所以你的追问它接得住。整条链路不用动音箱硬件,刷不刷机都行。收发消息、调 AI 的逻辑都在 src/services/bot/ 目录里,想深挖可以自己翻。
环境准备:小爱音箱接入大模型前的三件事
🔧 动手前先过三关:
- 运行环境:Node.js 16 以上,或者直接用 Docker。想 7×24 小时挂着、又不想折腾依赖,选 Docker 最省心。
- 查型号:翻 docs/compatibility.md,确认设备在"完美运行"或"正常运行"区,Pro 系列反馈最完整。小度、天猫精灵不在支持列表里,别试。
- 找小米 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.userId和password:小米账号,userId 就是上面那串 IDspeaker.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),仅供参考