资讯动态

30分钟把小爱音箱接入 ChatGPT:MiGPT 完整配置教程,改造成真正听得懂人话的 AI 语音助手

发布时间:2026/8/23 17:32:34 来源:尧图企业网站定制
30分钟把小爱音箱接入 ChatGPTMiGPT 完整配置教程改造成真正听得懂人话的 AI 语音助手【免费下载链接】mi-gpt 将小爱音箱接入 ChatGPT 和豆包改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gptMiGPT项目名mi-gpt是一个 Node.js 开源项目把小爱音箱接入 ChatGPT、豆包等大语言模型启动后你对着音箱说小爱同学请 xxx回答你的不再是小爱自带的模板话术而是大模型的真实回复。本文按你真实的决策顺序展开值不值得折腾、能不能跑、怎么最省事地跑起来、怎么调得顺手最后附一份可对照的排障清单。值得折腾吗接入大模型后能做什么又改不了什么先说接入后真实的变化方便你判断这笔折腾值不值。会变的部分自然语言问答。小爱同学请解释一下黑洞是怎么形成的回答来自大模型而不是搜索摘要追问那它和虫洞有什么区别能接住上下文。连续对话。支持连续对话的机型进入唤醒模式后可以连问三句不用每句都喊小爱同学它记得你第一句问的是什么。角色扮演。配置里把小爱的人设改成性别女性格乖巧可爱这类简介或者直接说小爱同学你是我的英语老师它就会按这个角色回你。长短期记忆。对话记录存在本地数据库里由大模型异步提炼成短期记忆和长期记忆聊得越久它越知道你的习惯不需要额外开启任何开关。改不了的部分项目原理决定刷机才行小爱内置回复会抢话。从你说完到 MiGPT 通过小米云端接口轮询到小爱正在回复的状态有大约 1~2 秒延迟这期间小爱自己那句话的开头可能已经响了无解。小爱同学唤醒词写在固件里不能改成豆包之类的。共享设备不支持。小爱音箱如果是别人账号共享给你的MiGPT 拿不到设备无法启动。项目已声明停止维护README 顶部有公告但核心的大模型对话功能完整可用现有版本能装能用。如果你家里现成有小爱音箱、不想再买新硬件折腾成本大约就是一条 Docker 命令加一个模型 API 密钥值得一试。动手前先查音箱型号兼容性速查MiGPT 走的是小米 MIoT 云端接口不同机型的播放文本和唤醒指令编码不同而且部分机型查不到播放状态直接影响能不能用连续对话。先看你的型号在不在支持列表里完整清单见 docs/compatibility.md。完美支持可开连续对话名称型号ttsCommandwakeUpCommandplayingCommandstreamResponse小爱音箱 ProLX06[5, 1][5, 3]不配置true小米 AI 音箱第二代L15A[7, 3][7, 1][3, 1, 1]true小爱智能家庭屏 10X10A[7, 3][7, 1]不配置trueXiaomi Sound ProL17A[7, 3][7, 1]不配置true基本支持不支持连续对话小爱音箱 Play 增强版L05C、小爱触屏音箱LX04、小爱音箱 miniLX01、小米智能家庭屏 6X6A等。这类机型 MIoT 接口查不到播放状态streamResponse必须设为false。不支持小米小爱音箱 HDSM4、小爱蓝牙音箱随身版小度、天猫精灵、HomePod 等非小米设备也不在适配范围内。型号在米家 App 的设备详情页可以查到。查到型号后去小米 MIoT 设备规格库搜型号比如lx06点规格找到设备文档ttsCommand、wakeUpCommand就是文档里play-text、wake-up两个动作对应的 SIID 和 AIID复制两份配置文件加一条命令Docker 跑起来准备工作一共三样一台装了 Docker 的机器家用主机、群晖、云服务器都行不需要和小爱音箱在同一局域网全程走云端接口、你的小米账号、一个模型 API 密钥。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_MODELgpt-4o-mini # 使用的模型 OPENAI_API_KEYsk-proj-xxxx # 你的 API 密钥 # OPENAI_BASE_URLhttps://api.openai.com/v1 # 默认地址国内模型时替换接入非 OpenAI 的模型通义千问、DeepSeek、MoonshotKimi等本身就是 OpenAI 兼容接口直接改OPENAI_BASE_URL和OPENAI_MODEL即可例如通义千问填https://dashscope.aliyuncs.com/compatible-mode/v1qwen-turbo。豆包、文心一言这类不兼容 OpenAI 协议的需要先通过 One API 或 simple-one-api 这类聚合工具转成 OpenAI 格式再把地址填进OPENAI_BASE_URL。.migpt.js只需要动speaker下的五个参数其余保持默认export default { speaker: { userId: 987654321, // 小米 ID不是手机号或邮箱在「个人信息 - 小米 ID」查看 password: 123456, // 小米账号密码 did: 小爱音箱Pro, // 米家中的设备名称注意错别字音响≠音箱、空格、大小写 ttsCommand: [5, 1], // 播放文本指令SIIDAIID wakeUpCommand: [5, 3], // 唤醒指令SIIDAIID }, };ttsCommand和wakeUpCommand怎么查在 MIoT 规格库打开你机型的设备文档找到 SIID 为 5 的intelligent-speaker服务play-text的 AIID 对应ttsCommandwake-up的 AIID 对应wakeUpCommand小爱音箱 Pro 查出来就是[5, 1]和[5, 3]配置文件放好后一条命令启动docker run -d --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latestWindows 终端PowerShell、cmd不识别$(pwd)换成配置文件绝对路径例如-v D:/hello/mi-gpt/.migpt.js:/app/.migpt.js。启动后对着音箱说小爱同学请问地球为什么是圆的能听到完整回答就算成功了。想改代码或调试源码方式直接跑如果你要改角色设定逻辑、看日志细节或者环境里本来就有 Node.js要求16可以不走 Dockergit clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt pnpm install # 安装依赖npm install 也可以 pnpm db:gen # 初始化本地 SQLite 数据库Prisma 迁移 cp .env.example .env cp .migpt.example.js .migpt.js pnpm dev # 开发模式启动自动读取 .envpnpm dev等价于node --env-file.env ./app.js正式跑用pnpm start。登录成功后会在根目录生成.mi.json登录态缓存文件这个文件对排障很有用后面会用到源码方式和 Docker 方式共用同一套.env与.migpt.js改完重启即生效Docker 方式下改了配置文件记得重启容器个别参数如名称、简介改完可能要删掉旧容器重建。让对话变顺手连续对话、人设、记忆与声音默认配置跑通后按需调下面几组参数都在.migpt.js里。完整参数表见 docs/settings.md。连续对话唤醒模式。streamResponse为true的机型通过wakeUpKeywords进入唤醒状态后就能免唤醒连问speaker: { streamResponse: true, // 开启连续对话仅完全支持机型 callAIKeywords: [请, 你, 傻妞], // 以这些词开头会调用 AI 回复 wakeUpKeywords: [打开, 进入, 召唤], // 以这些词开头进入唤醒模式如小爱同学召唤傻妞 exitKeywords: [关闭, 退出, 再见], // 以这些词开头退出唤醒模式 exitKeepAliveAfter: 30, // 唤醒模式下多少秒无响应自动退出建议不超过 60 }进唤醒模式后不用每句喊小爱同学等它说我说完了再问下一句超过 30 秒不说话它会自己退出届时再重新召唤。提示语。每次进入、开始回答、答完都有默认提示语让我先想想、我说完了还有其他问题吗嫌啰嗦就把对应项设成空数组关掉注意全关后可能感觉小爱没反应speaker: { onAIAsking: [], // 关闭 AI 开始回答时的提示语 onAIReplied: [], // 关闭 AI 结束回答时的提示语 }人设。bot.name、bot.profile小爱是谁和master.name、master.profile你是谁会拼进系统 Prompt模板是文件顶部的systemTemplate。不想改文件也可以运行时直接说小爱同学你是一名歌手喜欢唱跳 rap。记忆。默认就开着每条消息入库存档每积累约 10 条由大模型异步提炼成短期记忆短期记忆再滚动汇总成长期记忆对话越长越贴合你的语境无需配置。换音色第三方 TTS。默认tts: xiaoai用小米自带合成。想换成豆包同款火山引擎音色或本地 ChatTTS需要自部署一个 TTS 服务作者提供了 MiGPT-TTS 参考实现然后// .env TTS_BASE_URLhttp://192.168.31.205:4321/xxxx/api // 你的 TTS 服务地址勿用 localhost // .migpt.js speaker: { tts: custom, // 切换到第三方 TTS 引擎 switchSpeakerKeywords: [把声音换成], // 说小爱同学把声音换成 xx即可切音色 }第三方 TTS 的接口要求和音色列表见 docs/tts.md。回复太快/太慢。嫌等得久换响应更快的模型如gpt-3.5-turbo或把连续对话的播放状态检测间隔调小checkInterval: 500单位毫秒最低 500默认 1000能减轻回复之间的停顿感。对照排障清单从现象到解法按报错信息对号入座更完整的问答在 docs/faq.md现象原因解法启动报70016登录验证失败userId填了手机号或邮箱去小米官网「个人信息 - 小米 ID」查真正的数字 ID提示触发异地登录保护小米账号在新网络环境登录在与 MiGPT 相同的网络下手动登录小米官网通过安全验证约 1 小时后重试仍不行则在本地网络跑通后导出.mi.json挂载到容器/app/.mi.json再启动报找不到设备xxxdid与米家中名称不一致直接复制米家里的名称警惕小爱音响错别字、多余空格、pro/Pro大小写还不行就开debug: trueenableTrace: true重启从日志MiNA 设备列表里抄miotDID填进did查完记得关报ERR_MODULE_NOT_FOUND.migpt.js不存在或挂载路径错检查容器内/app/.migpt.js是否存在Windows 下必须用绝对路径控制台打印了 AI 回复但音箱不念该机型的ttsCommand填错回 MIoT 规格库重查play-text的 SIID/AIID 并修改回答总是说到一半戛然而止部分机型查不到播放状态按规格库补上playingCommand: [3, 1, 1]见下图仍无效说明该机型接口不支持查询只能关掉streamResponse换完整句朗读代价是失去连续对话LLM 响应异常 Connection error国内网络访问不了 OpenAI.env加HTTP_PROXYhttp://127.0.0.1:7890或把OPENAI_BASE_URL换成国内模型401 Invalid AuthenticationAPI 密钥无效或未生效验证 key 本身可用并确认环境变量已传入容器/进程404 The model gpt-4o does not exist账号没有 gpt-4 权限新账号未绑卡常见换成gpt-3.5-turbo这类模型Docker 镜像拉取失败网络问题给 Docker 配置镜像加速源后重试进唤醒模式时小爱突然放歌唤醒词被当成歌名换wakeUpKeywords比如用打开唤醒模式下说话没反应音箱当时不在收听状态等它说我说完了或指示灯常亮后再问正在放音乐先暂停真没听就用小爱同学xxx重新唤醒回答太长想打断—说小爱同学请你闭嘴或重新提问另外两个设计层面的坑提前知道小爱内置回复抢话的 1~2 秒延迟无解一个容器只支持单实例单账号多台音箱或多账号要建多个容器各自挂不同的.migpt.js。建议的下一步从三件事里挑一件做配置跑通后按这个顺序往下走最省力把OPENAI_BASE_URL换成豆包或通义千问的接入地址同一问题问两个模型体会一下回答风格差异选一个你更顺耳的固定下来。自部署 MiGPT-TTS用小爱同学把声音换成 xxx试一次非小米自带音色——这是默认配置之外体感变化最大的一步。把bot.profile和systemTemplate改成符合你家场景的人设比如给孩子的小学老师让它长期记住你家的作息和偏好观察几天记忆系统的效果。配置文件只有两个、参数也就十几项跑通之后每天改一处参数、重启一次容器一周之内你就能把这台音箱调成自己最习惯的样子。【免费下载链接】mi-gpt 将小爱音箱接入 ChatGPT 和豆包改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价