小爱音箱接入 MiGPT:从部署到自定义角色的完整实战
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
向小爱提问"讲个笑话",回答往往来自预设话术。用 MiGPT 把它接上大模型后,回答改由大语言模型生成。本文以 MiGPT 部署为主线,覆盖型号兼容、账号与模型配置、语音验证,以及记忆和音色定制,按步骤操作即可跑通。
小爱音箱 AI 改造后能做什么
变化在于回答的来源:
- 闲聊:从固定话术变成能接住话题、随时展开,接近和朋友聊天的状态
- 角色扮演:在配置文件里写好人物设定,小爱按对应身份说话
- 知识问答:"地球为什么是圆的"这类问题交给大模型作答,不再套模板
- 连续对话:进入唤醒模式后连续提问,不用每句都说"小爱同学"
确认小爱音箱型号兼容并获取 MiGPT 代码
先对照兼容型号清单核对你的设备。小爱音箱 Pro、小米 AI 音箱(第二代)等主流型号都在支持范围内,清单同时给出各型号的命令参数;小度、天猫精灵等其他品牌不在支持之列。
需要注意:项目 README 标注已停止维护、不再更新,使用前请留意版本与参数是否匹配你的环境。
获取代码:
git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt进入mi-gpt目录后开始配置。如果型号不在清单里,可先到 MIoT 规格网站按型号搜索,确认是否具备改造所需指令:
小爱音箱接入大模型:两个配置文件
在仓库根目录重命名两个模板文件:
cp .migpt.example.js .migpt.js cp .env.example .env.migpt.js管账号和设备,.env管模型。关键字段含义:
.migpt.js
| 字段 | 含义 |
|---|---|
userId | 小米 ID,在"个人信息-小米 ID"处查询,不是手机号或邮箱 |
password | 小米账号密码 |
did | 米家中显示的设备名或设备 did,注意错别字、空格与大小写 |
ttsCommand | "朗读文本"对应的 MIoT 指令编号,随型号不同 |
wakeUpCommand | "唤醒"对应的 MIoT 指令编号,随型号不同 |
callAIKeywords | 消息以这些词开头时,才由大模型回复 |
streamResponse | 连续对话开关,无法正确查询播放状态的型号需关闭 |
.env
OPENAI_API_KEY:大模型服务的密钥OPENAI_MODEL:使用的模型名OPENAI_BASE_URL:服务地址。通义千问、DeepSeek、Moonshot 等一切兼容 OpenAI API 格式的服务,只改地址和模型名即可接入,字段名保持不变
完整参数说明见 docs/settings.md。
MiGPT 部署教程:一条 Docker 命令启动
Docker 是打包好的运行环境,无需自行安装 Node.js。确认两个配置文件无误后,在仓库根目录执行:
docker run -d --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latestWindows 终端下$(pwd)不可用,请改为配置文件的绝对路径。
启动后用三句口令验证:
- "小爱同学,请告诉我地球为什么是圆的"——能正常作答说明模型已接通
- "小爱同学,你是谁"——回答应与配置的人物设定一致
- "小爱同学,召唤傻妞"——进入连续对话模式,等它说"我说完了"后继续提问
语音收不到或流程中断时,先到常见问题里检索。
进阶玩法:长短期记忆与小爱音箱语音定制
- 长短期记忆:默认开启,每次回复时系统 Prompt 会带入最近 10 条消息和长短期记忆,跨次对话也能接得上。想省 token 可在模板中删掉记忆部分,模板写法见 docs/prompt.md。
- 音色定制:默认由小爱内置 TTS 朗读;想要豆包同款音色,需配置
TTS_BASE_URL环境变量并把speaker.tts改为custom,之后说"小爱同学,把声音换成 xxx"即可切换,详见 docs/tts.md。 - 连续对话:
streamResponse对能正确查询播放状态的型号才有效,开启后会话 30 秒内免唤醒词连续提问。
小爱音箱语音断续等常见问题排查
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
| 启动报"70016 登录验证失败" | userId误填手机号或邮箱 | 到个人信息处查询小米 ID 后更正 |
| 提示"找不到设备" | did与米家不一致 | 直接复制米家中的设备名;仍失败则填设备 did |
| AI 有回复但不出声 | ttsCommand与该型号不匹配 | 按型号查指令编号后更新配置 |
| 语音说到一半中断 | 播放状态查询不到,流被打断 | 配置playingCommand,或关闭streamResponse |
| 回复时 Connection error、401 | 模型服务不通或密钥无效 | 检查网络代理与 API 密钥,或改用国内模型 |
指令编号的查法:在 MIoT 规格网站搜索你的型号,"朗读文本"方法的 AIID 与 SIID 组合即为ttsCommand:
到这里改造就通了:模型决定回答质量,人设决定说话方式,记忆决定话题能延续多久。后续调整主要修改.migpt.js和.env两个文件,再重启容器即可。
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考