ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

MiGPT 小爱音箱大模型改造:两种部署方式,20 分钟让音箱接上 ChatGPT

MiGPT 小爱音箱大模型改造:两种部署方式,20 分钟让音箱接上 ChatGPT MiGPT 小爱音箱大模型改造两种部署方式20 分钟让音箱接上 ChatGPT【免费下载链接】mi-gpt 将小爱音箱接入 ChatGPT 和豆包改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gptMiGPT 把小爱音箱接入 ChatGPT、豆包等大模型让只会播语音的音箱变成能真聊天的 AI 语音助手。这篇文章按改造顺序记录动手前准备、部署、人设调教、踩坑处理只要能跑通几行命令就能跟着做。小爱音箱改造前后差在哪改造前你问天空为什么是蓝色的它回一段百科式标准答案接着问那海水呢它像没听过上一句。你说今天心情不好它答一句抱歉没有听懂基本是在跟客服机器人说话。接上 MiGPT 后同样的问题它会回一段说得通的解释你还能追问几句。你也可以说小爱同学召唤傻妞进入连续对话不用每次都喊唤醒词它能接着聊还会引用你前面提过的细节——因为每次提问对话历史和长短期记忆都会打包发给大模型。改造前改造后知识问答百科式标准答案无法追问有上下文可以追问解释聊天抱歉没有听懂有人设按性格回复唤醒每次都要喊唤醒词一句召唤进入连续对话差距就在谁在回答。怎么改先备齐三样东西。动手前三样东西缺一不可第一是小米账号准确说是小米 ID。登录小米账号的个人信息页找小米 ID一栏是一串数字不是你的手机号或邮箱。把手机号当 ID 填是新手最常见的第一个错。第二是设备名称就是米家 APP 设备列表里那个音箱的名字。MiGPT 靠这个名字找到音箱大小写、空格、错别字都要对音响和音箱这种坑真实存在。第三是大模型 API Key。MiGPT 默认走 OpenAI 接口但豆包、通义千问、DeepSeek 等兼容接口也能用把接口地址和模型名指向对应服务即可。三样都齐后填进两个配置文件账号、设备、人设写在.migpt.js大模型和 TTS 服务写在.env。仓库里都有模板复制重命名即可。选一条路部署Docker 一键部署还是源码部署不想装环境Docker 一条命令机器上有 docker 的话一行就够了docker run -d --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latest--env-file负责把.env里的模型配置读进容器-v把你的.migpt.js挂载进去。Windows 终端里$(pwd)不生效换成绝对路径。怎么判断跑起来了docker logs -f 容器ID看到服务已启动...这一行就行然后对着音箱说小爱同学请讲个笑话有回复就对了。想改代码Node pnpm 源码部署项目要求 Node 16 以上官方在 Node 20 下运行git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt pnpm install pnpm devpnpm dev会读取.env启动服务。终端打印 MiGPT 标识和Speaker 服务已启动...就是成功了首次运行要初始化本地数据库多等几秒。让音箱真正活过来动手前先搞清楚默认触发规则消息以请你傻妞开头会调 AI以打开进入召唤开头进入连续对话以关闭退出再见开头退出。三组关键词都能在.migpt.js的callAIKeywords、wakeUpKeywords、exitKeywords里改。让它记住你说过什么记忆是内置的不用额外配置MiGPT 把每次对话存在本地回复前自动把短期、长期记忆注入系统 Prompt。.migpt.js的systemTemplate里能看到这两个占位符{{shortTermMemory}} {{longTermMemory}}想让它失忆把模板里这两段删掉即可。换一张嘴说话默认tts: xiaoai用音箱自带的小爱音色。想用豆包同款音色或其他音色需要跑一个第三方 TTS 服务在.env里指向它TTS_BASE_URLhttp://你的TTS服务地址/api// .migpt.js tts: xiaoai, switchSpeakerKeywords: [把声音换成], // 配置了第三方 TTS 后才有效第三方 TTS 的接入细节在 docs/tts.md。如果你的型号声音不对或没声音还要核对ttsCommand、wakeUpCommand这两个指令编号不同型号编号不同按音箱型号去 MIoT 规格站查。给它立个人设人设在.migpt.js的bot和master里一个是音箱扮演的角色一个是你的简介直接决定它每一句回复的语气。// .migpt.js bot: { name: 傻妞, profile: 性别女性格乖巧可爱喜欢搞怪爱吃醋。, }, // … 省略其他字段master 是你的简介写法相同Docker 用户注意改完配置要重启容器才生效重启后仍不生效改名字、人设时常见把旧容器删掉重建——旧人设写进了本地数据库。小爱音箱接上大模型后这些玩法值得试试孩子写作业卡在阅读理解上把题干念给它小爱同学这道题在问什么思路是什么回你能听懂的解释还能追问能再说简单点吗。睡前不想刷手机小爱同学给我讲个睡前故事它讲一段你听着听着就睡了还能加要求讲个带点悬念的。开会前五分钟小爱同学帮我拟一份周会议程重点是预算回你能直接贴进备忘录的条目。通勤路上练口语小爱同学这句话用英语怎么说更地道。深夜想找人说话又怕被评判小爱同学召唤傻妞进入连续对话聊一阵子不用反复唤醒。踩坑记录这四个问题占了 90%登录失败症状终端提示初始化 Mi Service 失败。原因小米 ID 或密码不对或者把手机号当成 ID 填了。处理检查.migpt.js里speaker.userId小米 ID和password如果账号触发小米风控验证先在常用网络环境登录一次小米官网通过验证再重试。找不到设备症状启动后提示找不到设备唤醒也没有反应。原因did与米家里的名称不完全一致大小写、空格、错别字。处理把.migpt.js的speaker.did改成与米家 APP 完全一致还不行就把enableTrace设为true从日志里找到真实设备 ID 填回去。响应慢、停顿明显症状回复一段一段之间停得久。原因连续对话模式下默认每秒轮询一次播放状态。处理把.migpt.js的checkInterval调小最低 500 毫秒模型本身换响应更快的。长回复被中断症状音箱说半句就停回答不完整。原因播放状态被误判成已经播完。处理把checkTTSStatusAfter默认 3 秒调大仍不行就按型号规格启用playingCommand例如[3, 1, 1]校正播放状态查询最后才考虑关闭streamResponse。MiGPT 背后在做什么60 秒速览整条链路三步先从音箱那里拿到你的语音内容.migpt.js里的ttsCommand、wakeUpCommand就是这一层跟设备说话的指令编号然后把你的问题、人设、对话历史和记忆拼成 Prompt发给.env里配置的大模型流式收回答最后把回答转成语音从音箱放出来同时把这轮对话存进本地数据库。所以你改配置改的就是设备指令、模型服务、人设记忆这三层里的一层。写在最后MiGPT 适合手里有闲置小爱音箱、想低成本体验大模型的人两小时以内能全部跑完跑完音箱就是一个能对话的 AI 语音助手。不太适合的是指望它做全屋语音中枢、或依赖持续更新的人——README 已注明项目停止维护功能稳定但不会有新修复.migpt.js和.env建议留好备份。下一步值得细读的是 docs/settings.md 的完整参数说明、docs/faq.md 的常见问题以及 docs/how-it-works.md 的工作原理。【免费下载链接】mi-gpt 将小爱音箱接入 ChatGPT 和豆包改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进