FEATURED · 精选文章

把小爱音箱接入 ChatGPT:MiGPT 语音助手 10 分钟部署教程

发布时间 / 2026/9/14 2:34:40
来源 / 创域科博编辑部
栏目 / 资讯中心
把小爱音箱接入 ChatGPT:MiGPT 语音助手 10 分钟部署教程 把小爱音箱接入 ChatGPTMiGPT 语音助手 10 分钟部署教程【免费下载链接】mi-gpt 将小爱音箱接入 ChatGPT 和豆包改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gptMiGPT 是一个把小米小爱音箱接入 ChatGPT、豆包等大模型的开源项目原来小爱答不上来的问题交给大模型回答还能和你多轮连续对话。本文带你从零完成 MiGPT 部署让家里的音箱说出大模型的回答。 5 分钟跑通 MiGPTDocker 与 Node.js 两种部署路径需要准备三样东西一个米家账号、一台小爱音箱推荐 Pro 版大部分型号都支持完整清单见 docs/compatibility.md、Docker 或 Node.js 16推荐 20。MiGPT 走的是小米云端接口服务和小爱音箱不需要在同一局域网放家里 NAS 或云服务器都行。目的克隆代码、生成两份配置文件用一条 Docker 命令启动服务git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt # 从模板生成配置文件改成你自己的信息 cp .env.example .env cp .migpt.example.js .migpt.js # 启动容器并挂载两份配置文件Windows 下 $(pwd) 需换成绝对路径 docker run -d --name mi-gpt --env-file $(pwd)/.env \ -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latest启动后需要打开刚才生成的两份文件填写信息目的填入大模型密钥与模型名.env 文件OPENAI_API_KEYsk-your_openai_api_key OPENAI_MODELgpt-4o-mini # 国内模型如通义千问只需改接口地址变量名保持不变 # OPENAI_BASE_URLhttps://dashscope.aliyuncs.com/compatible-mode/v1⚠️ 密钥不要提交到任何公开位置示例文件只是模板而非真实可用密钥。目的填入小米账号与音箱设备信息.migpt.js 文件其余字段保持示例原样export default { speaker: { userId: your_xiaomi_id, // 小米 ID在「个人信息」页查看不是手机号或邮箱 password: your_xiaomi_password, did: 小爱音箱Pro, // 必须与米家 App 中的设备名称完全一致 }, };⚠️ 账号密码属于敏感信息部署在公网服务器时建议用专用小米账号。Node.js 开发者可以跳过 Docker目的从源码直接启动逻辑与 Docker 完全一致pnpm install pnpm build # 安装依赖并构建 pnpm dev # 读取 .env 并启动项目会把对话历史存在本地 SQLite 数据库里支撑后面说的长短期记忆。验证很简单走到音箱前说「小爱同学请问 11 等于几」如果它先说「让我先想想」再用大模型的答案回答就说明跑通了。改完配置后注意Docker 模式必须重启容器才生效。 MiGPT 工作原理一条语音指令如何变成 AI 回答整条链路不改动音箱固件全靠小米开放接口完成MiGPT 轮询 MiNA / MIoT 云端接口拿到你刚对小爱说的最新对话检测到消息以「请 / 你」callAIKeywords等触发词开头时把消息连同对话历史一起发给配置的大模型模型回复经 TTS 合成语音指挥音箱播放连续对话期间循环检测播放状态30 秒没声音就自动退出。对话的长短期记忆存在本地数据库里每次提问会由系统模板systemTemplate拼装角色设定和上下文一起喂给模型所以它「越聊越懂你」。也正因为轮询机制原版小爱被静音「抢话」会有 1~2 秒的间隙——这是方案特性不是网络卡。⚙️ MiGPT 配置参数说明最容易被写错的 4 个字段所有参数都在 .env.example 和 .migpt.example.js 两个文件里但 90% 的启动失败来自下面四个参数作用推荐值改错的后果speaker.userId小米账号标识纯数字小米 ID「个人信息」页查看报「70016登录验证失败」填成手机号或邮箱必挂speaker.did定位控制哪台音箱从米家 App 原样复制设备名如「小爱音箱Pro」报「找不到设备」多一个空格、大小写不同、「音响」写成「音箱」都会不匹配OPENAI_MODEL/OPENAI_BASE_URL用哪个模型、走哪个接口国内可用通义千问qwen-turbo 对应 compatible-mode 地址报「404 The model does not exist」接口与模型不匹配speaker.ttsCommand让音箱播放 TTS 语音的 MIoT 指令到 MIoT 规范站按型号查询小爱音箱 Pro 为[5, 1]控制台打印了 AI 回复但音箱一声不吭型号不在示例里时先查它对应的ttsCommand和wakeUpCommand再填 MiGPT 使用场景演练单次问答与连续对话两种玩法场景一日常单次问答你说什么「小爱同学请问地球为什么是圆的」系统做什么轮询到这条消息命中callAIKeywords的「请」→ 调用大模型 → TTS 流式回传预期听到什么「让我先想想」→ 答案正文 →「我说完了」注意必须先喊「小爱同学」唤醒她再说话直接对着音箱讲她接收不到如果音箱正在放音乐先暂停再对话场景二唤醒模式连续对话推荐小爱音箱 Pro先在.migpt.js里把streamResponse: true打开然后你说什么先说「小爱同学召唤傻妞」听到欢迎语后直接提问不用每句都喊「小爱同学」系统做什么进入 AI 唤醒状态每句提问都携带上下文按checkInterval默认 1 秒检测播放状态30 秒无应答exitKeepAliveAfter自动退出预期听到什么多轮连续问答「我说完了」之后等 1~2 秒再问下一句长时间不说话会自动退出唤醒状态答案说得太长时喊一句「小爱同学请你闭嘴」就能打断她。目的实时观察消息是否送达 AI、回复是否下发成功docker logs -f --tail 50 mi-gpt MiGPT 踩坑急救站70016 与 LLM 响应异常速查报错原文一句话原因修复方式70016登录验证失败userId填成了手机号或邮箱或密码错误改成纯数字小米 ID保存后重启容器找不到设备xxxdid与米家中的设备名称不一致从米家原样复制设备名名称不一致时在.migpt.js打开debug: true和enableTrace: true从日志里找到设备的miotDID填入LLM 响应异常 Connection error国内网络无法直连 OpenAI 官方接口在.env里加HTTP_PROXY代理或把OPENAI_BASE_URL换成国内模型接口另一类常见现象AI 的回答「说一半戛然而止」通常是你的型号无法正确查询播放状态到 MIoT 规范站查询playingCommand并填入配置改了还不行就是型号硬限制可以改设streamResponse: false保证每句完整播完代价是失去连续对话。以上都对不上时先打开debug: true拿到详细日志再排查。 MiGPT 进阶方向第三方 TTS 音色与官方文档入口docs/settings.md 有全量参数说明docs/tts.md 讲如何接入第三方 TTS 解锁更像真人的音色docs/changelog.md 记录了功能更新项目已进入停止维护状态现有功能完整可用。打开 docs/faq.md 搜索你遇到的报错关键词搜不到就把报错原文贴进 Issue 区提交你的第一条反馈。【免费下载链接】mi-gpt 将小爱音箱接入 ChatGPT 和豆包改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻