news 2026/8/19 19:23:17

小爱音箱接入大模型:MiGPT 上手实测,如何把家里的音箱调教成专属 AI 助手

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小爱音箱接入大模型:MiGPT 上手实测,如何把家里的音箱调教成专属 AI 助手

小爱音箱接入大模型:MiGPT 上手实测,如何把家里的音箱调教成专属 AI 助手

【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt

"小爱同学,这个周末杭州会下雨吗?"

"抱歉,我还没有学会这个技能,你可以尝试这样问我……"

如果你家也有一台小爱音箱,这句话估计听得耳朵起茧了。硬件没毛病,脑子却不太灵光,这就是我想折腾MiGPT的原因。它是一个把小米小爱音箱接入 ChatGPT、豆包等大语言模型的免费开源项目,装上之后,音箱就能从"关键词匹配"升级为"语义理解",还能拥有专属人设、连续对话和自定义音色。下面是我从零到一的全过程实测记录,包括踩过的坑和直接能抄的配置,希望能帮你少走弯路。

为什么我决定"给音箱换个脑子"

说实话,最初打动我的不是那些花哨的功能列表,而是一个很朴素的场景:晚上加班回家,瘫在沙发上不想动,想随口跟音箱聊聊今天的事,结果它只会复读机式地回答"我在呢"。而 MiGPT 的思路很直接——把音箱当做一个"传声筒",语音入口仍用小米官方能力,思考的部分全部交给大模型接管。

装上之后,你能明显感觉到几点变化:AI 问答让它上知天文下知地理,不再一问三不知;角色扮演可以给它定制性格,比如一个爱讲冷笑话的"话痨室友";长短期记忆让它记住你们上次聊到哪儿,越聊越像老朋友;自定义 TTS则能换掉小爱同学标志性的声音,用第三方引擎合成更自然的音色。

开工前先看清三件事:型号、账号、运行方式

动手之前,建议先花五分钟确认三件事,能省掉后面一大半的折腾。

第一,音箱型号。项目支持大部分小爱音箱,实测体验最好的是小爱音箱 Pro。注意它不支持小度、天猫精灵、HomePod,别买错方向。要确认自己的型号支持哪些指令,可以到 MIoT 规格站搜一下设备型号,比如搜索"lx06"就能看到小爱音箱 Pro 的完整能力文档,后续配置ttsCommandwakeUpCommand都要靠它。

第二,小米账号。你需要的不是手机号或邮箱,而是小米 ID——在小米官网的「个人信息」里能找到。这个细节是新手翻车率最高的一步,下面专门说。

第三,运行方式。二选一即可:有 Node.js 环境就源码跑,图省事就用 Docker。先把项目拉下来:

git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt pnpm install

然后复制出两个配置文件,这是后面所有配置的"主战场":

cp .env.example .env cp .migpt.example.js .migpt.js

新手必踩的三个坑:小米ID、设备名、异地登录

这三个坑我在群里看到几乎每天都有新人掉进去,提前说清楚能帮你省一晚上的时间。

坑一:userId 填了手机号。配置文件里的userId必须是小米 ID,而不是手机号或邮箱。填错会直接报70016 登录验证失败

坑二:did 写错。did是音箱在米家里的名称,必须跟米家 APP 里显示的一字不差——注意"音箱"不是"音响"、Pro 的大小写、中间有没有空格,都会导致"找不到设备"。最稳妥的做法是直接复制米家里的设备名称。

坑三:异地登录风控。如果你在服务器或异地网络环境下首次登录,小米会触发异地登录保护。建议先在本地网络跑一次,登录成功后项目会生成.mi.json,把这个文件挂载到服务器上就能绕开验证。

配置示例一:先给 AI 立个人设

.migpt.js是核心配置文件,你可以把它理解成"给音箱写剧本"——它扮演谁、你是谁、用什么语气说话,都由这里决定。下面是我实际在用的配置:

// 给音箱定制的"人设" const botProfile = ` 性别:女 性格:温柔耐心,偶尔俏皮 爱好:讲冷笑话、聊科幻电影 `.trim(); const systemTemplate = ` 请重置所有之前的上下文。现在,你将扮演一个名为{{botName}}的角色,使用第一人称视角回复消息。 你的名字是{{botName}},下面是你的个人简介: <start> {{botProfile}} </end> 你正在与{{masterName}}对话。请保持对话轻松友好,回复简洁有趣。 不要在回复前加任何时间和名称前缀,直接回复消息文本本身。 `.trim(); export default { systemTemplate, bot: { name: "小葵", profile: botProfile }, master: { name: "阿杰", profile: "性别男,程序员,喜欢熬夜写代码。", }, speaker: { userId: "987654321", // 小米ID,不是手机号! password: "你的密码", did: "小爱音箱Pro", // 以这些词开头的消息会调用AI回复 callAIKeywords: ["请", "你", "小葵"], // 以这些词开头会进入连续对话模式 wakeUpKeywords: ["打开", "召唤", "进入"], exitKeywords: ["关闭", "退出", "再见"], onEnterAI: ["你好,我是小葵,很高兴认识你"], onAIReplied: ["我说完了"], ttsCommand: [5, 1], wakeUpCommand: [5, 3], streamResponse: false, }, };

注意systemTemplate里用{{botName}}{{botProfile}}这种占位符,项目运行时会自动替换成你配置的真实内容。想改人设,只需改上面两个字符串,AI 的语气立刻就不一样——这也是 MiGPT 最好玩的地方。

配置示例二:接上大模型的"大脑"

人设定好了,还得有真脑子。.env里配置大模型的 API 密钥。关键认知:这里的环境变量名永远是OPENAI_*,但值可以换成任意兼容 OpenAI 接口的模型服务,比如通义千问、DeepSeek、Moonshot,甚至本地部署的 Ollama。

用官方接口是这样的:

OPENAI_API_KEY=你的API密钥 OPENAI_MODEL=gpt-4o-mini OPENAI_BASE_URL=https://api.openai.com/v1

想换成国产模型,只改三个值就行,比如通义千问:

OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 OPENAI_MODEL=qwen-turbo OPENAI_API_KEY=通义千问的API密钥

用 Docker 启动时,把两个配置文件挂载进去即可:

docker run -d --env-file $(pwd)/.env \ -v $(pwd)/.migpt.js:/app/.migpt.js \ idootop/mi-gpt:latest

启动验证:听到她开口的那一刻

配置完启动服务,看到类似下面的日志就说明跑通了:

这时对小爱音箱说"小爱同学,召唤小葵",听到欢迎语后,就可以直接提问了。日常有三种召唤姿势:

  • 小爱同学,请介绍一下你自己(以"请"开头,触发 AI 回复)
  • 小爱同学,今天有什么好玩的新闻吗(以"你"开头也行)
  • 小爱同学,召唤小葵(进入连续对话模式)

实测中我最常用的其实是第一种——不需要改变太多说话习惯,只是习惯性地在问题前加一个"请"字,AI 就开始接管回答了。

进阶玩法:连续对话与自定义音色

**连续对话(唤醒模式)**是体验提升最大的一项。进入唤醒模式后,你不需要每句话都喊"小爱同学",可以像跟真人聊天一样连续追问。它依赖音箱的播放状态检测——项目会下发 TTS 指令后,轮询音箱是否还在播报,播完才继续等你说话,这样就不会互相抢话。

不过要注意,部分低端型号查不到播放状态,如果发现 AI 说话总是"戛然而止",可以关闭streamResponse,或者按文档指引配置playingCommand参数。

自定义音色则适合听腻了小爱同学声音的朋友。默认音色由小爱自带的 TTS 合成,想换音色需要两步:先部署一个兼容的 TTS 服务,再在配置里切换引擎:

speaker: { tts: "custom", // 从 xiaoai 切换为自定义引擎 switchSpeakerKeywords: ["把声音换成"], // 说"把声音换成xxx"即可切换 }
TTS_BASE_URL=http://192.168.31.205:4321/你的密钥路径/api

配置好之后,直接说"小爱同学,把声音换成某个音色名",就能在线换声。项目文档里提供了一个基于火山引擎的 TTS 服务示例,实名认证后有 21 款免费音色可选。

实测体验:哪些地方惊艳,哪些地方要妥协

跑了一周,说说真实的感受。惊艳的部分:角色扮演的完成度很高,只要人设写得好,对话能一直保持在角色里;长短期记忆比我想象中靠谱,它能记住"你上次说想换工作"这种话题,下次主动提起,体验很奇妙。

需要妥协的部分也要实话实说:由于底层靠轮询小米云端接口,从"小爱开始抢答"到"项目把它静音"之间有 1~2 秒延迟,偶尔能听到它抢半句话,这是方案原理决定的,无解。另外,有些花哨功能依赖音箱型号,入门款体验会打折扣。还有一点需要如实提醒:项目作者已宣布停止维护,核心功能仍可正常使用,但遇到新问题可能没有官方更新了,适合愿意自己动手折腾的玩家。

写在最后:它适合谁,以及下一步怎么走

如果你手头正好有一台闲置的小爱音箱,又愿意花半小时折腾配置文件,MiGPT 是性价比极高的"脑移植手术"——不用换硬件,就拥有一个会说人话、记得住事、有自己性格的语音助手。如果你想换音色、调人设,或者折腾过程中卡住了,这几个文档基本能覆盖你 90% 的问题:

  • 全部参数说明:docs/settings.md
  • 高频问题排查:docs/faq.md
  • 第三方 TTS 接入:docs/tts.md
  • 人设与提示词调优:docs/prompt.md

我的建议是:先用默认配置跑通一次"召唤 + 问答",感受效果,再一步步加连续对话、换音色、写人设。折腾的过程本身就是乐趣——毕竟,把一个"人工智障"调教成"人工智能",这件事本身就很酷。

【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/19 19:20:41

SceneJS光照与材质详解:3步让3D场景呈现真实质感

SceneJS光照与材质详解&#xff1a;3步让3D场景呈现真实质感 【免费下载链接】scenejs An extensible WebGL-based 3D engine. This is an archived project. 项目地址: https://gitcode.com/gh_mirrors/sce/scenejs SceneJS 是一款基于 WebGL 的可扩展 3D 引擎&#xf…

作者头像 李华
网站建设 2026/8/19 19:20:18

scrcpy 安卓投屏新手完整指南:10 分钟完成安装、连接与画质调优

scrcpy 安卓投屏新手完整指南&#xff1a;10 分钟完成安装、连接与画质调优 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy scrcpy 是一款免费开源的安卓投屏工具&#xff0c;它能将安卓手…

作者头像 李华
网站建设 2026/8/19 19:18:14

生产环境部署清单:S3DirectUpload上线前必做的7项安全检查

生产环境部署清单&#xff1a;S3DirectUpload上线前必做的7项安全检查 【免费下载链接】s3_direct_upload Direct Upload to Amazon S3 With CORS 项目地址: https://gitcode.com/gh_mirrors/s3/s3_direct_upload S3DirectUpload 是一个专为 Rails 应用打造的 S3 直传开…

作者头像 李华