如何快速把小爱音箱改造成大模型语音助手
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
炒菜炒到一半,满手是油,想问下一步该放什么调料,喊客厅的音箱一句就能得到回答——这就是 MiGPT 做的事情。它是一个把小米小爱音箱接入 ChatGPT、豆包等大模型的开源项目,让音箱具备理解上下文、连续对话、语音播报回答的能力。家里有小爱音箱、想试试 AI 改造的朋友,往下看就行。
MiGPT 给音箱加上了什么
说白了,MiGPT 是一座桥:不动硬件、不刷固件,它通过小米 IoT 开放接口"旁听"音箱的对话列表,把文字交给大模型,再把回复合成为语音让音箱播出来。接上之后,音箱多出来的核心能力是上下文多轮对话——你可以追问、可以纠正、可以给它设定人设;它还做了流式回复,不用等一整段话生成完才开口,体验上接近实时对话。注意它只支持小米系音箱,小度、天猫精灵等不在适配范围内。
三步看懂数据流向
整个运行过程其实就三步,数据是这样走的:
- 听:程序持续轮询小米云端里音箱的对话记录,几秒内发现你刚说的那句话
- 想:把这句话连同近期对话上下文一起发给大模型接口,模型生成回复文本
- 说:回复经 TTS(文字转语音)合成音频文件,程序再向音箱下发播放指令
日常使用有两种姿势:普通模式每句都要说"小爱同学,请 xxx"才会触发 AI;说"小爱同学,召唤 xxx"这类唤醒词可以进入连续对话模式,接下来不用重复唤醒词,等它念完"我说完了"再问下一句即可。
5 分钟配好:型号、环境、配置
先确认音箱型号
大部分型号都能跑,官方推荐小爱音箱 Pro(体验最完整)。完整兼容列表和各型号的指令参数在 docs/compatibility.md,你的具体型号可以在米家 App 的设备信息里查到。
拉代码、备环境
用 Node 方式跑需要 Node 16+;用 Docker 方式可以完全跳过环境配置。拿到源码后,把两个示例配置文件复制出来改名:
git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt cp .env.example .env cp .migpt.example.js .migpt.js填两份配置
.env决定用哪个大模型,只关心这三行:
OPENAI_MODEL=gpt-4o-mini OPENAI_API_KEY=sk-xxxxxxxx OPENAI_BASE_URL=https://api.openai.com/v1变量名固定叫 OPENAI,换成通义千问等国内模型时只改值即可。.migpt.js决定连哪台音箱,关键字段是这三项:
speaker: { userId: "987654321", // 小米 ID,不是手机号或邮箱 password: "你的密码", did: "小爱音箱Pro", // 米家中的设备名或 ID }不同型号的 ttsCommand(朗读指令)、wakeUpCommand(唤醒指令)取值不一样,需要到小米官方 MIoT 规格页按型号查。找型号这一步长这样:
启动服务
Docker 方式一条命令启动,配置好.env和.migpt.js后执行:
docker run -d --env-file $(pwd)/.env \ -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latest日志里出现"服务已启动",改造就完成了。所有参数含义在 docs/settings.md 里有逐项说明,卡住时先翻一遍。
三个马上能用的玩法
- 多轮提问:"小爱同学,请讲讲天空为什么是蓝的",它用大白话分点讲完,你接着追问"为什么会散射",它记得上一句在聊什么。
- 一句话立人设:"小爱同学,你是一名耐心的一年级数学老师",之后的回答都会带这个人设口吻,不用改任何代码。
- 换音色:接上第三方 TTS 服务后,说"小爱同学,把声音换成 xxx",同一句话换个声音再读一遍,配置方法见 docs/tts.md。
按现象查问题
- 回复明显慢:默认配置偏保守,还有开始、结束提示语垫在前面。换成响应快的模型、把提示语数组置空,并适当调小播放状态检查间隔,体感能快不少。
- 回答说到一半戛然而止:部分型号查不到真实播放状态,程序误以为播完了就掐断。到规格页查该型号的播放状态属性,把
playingCommand填上;确实查不了的设备可关闭连续对话(streamResponse)来保证句子完整。
- 日志里有回复,音箱却不开口:ttsCommand 和型号对不上。到规格页找 play-text 对应的服务号加动作号,改成你型号的值。
- 启动报 70016 登录验证失败:多半是 userId 填了手机号或邮箱,换成数字版小米 ID("个人信息-小米 ID"里查);若是异地登录保护,先在跑服务的同一网络下手动登录小米网页账号通过安全验证,等约一小时再试。
- 连续对话时说话没反应:它正在回答或根本没在听的时候,你说的话收不到。等"我说完了"之后 1~2 秒再问;实在没反应,就用"小爱同学"重新唤醒一次。
文档与社区入口
常见报错和用法疑问,先查 docs/faq.md,覆盖面相当全;版本更新记录在 docs/changelog.md。遇到新机型、新 bug 或者有改进想法,直接去仓库提交 issue 或 PR,贡献型号参数也是很有价值的参与方式。需要说明的是,仓库 README 里已注明项目暂停了维护更新,但核心功能稳定、文档完整,自用和在此基础上二次开发都没有问题。
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考