小爱音箱接大模型后还能干什么:MiGPT 本地部署与调优实战
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
家里的小爱音箱平时只能查天气、调音量,而 MiGPT 可以把小爱音箱接入 ChatGPT、豆包等大模型,改造成一台支持连续对话、带记忆和角色人设的本地语音助手。服务跑在你自己的电脑或服务器上,部署完成后,你喊一声"小爱同学,召唤傻妞",它就能接住话题一路聊下去。
接入大模型后,体验上有三处实打实的变化
- 应答范围扩大:原来的小爱只会走预设指令,接入后知识问答、闲聊、写作类问题都可以直接语音提问。
- 可以设定人设:在配置里给"小爱"和"你"各写一份简介,对话时它会按角色口吻回应,而不是机械念答案。
- 能连续对话:进入 AI 模式后,后续提问不用每句都喊"小爱同学",直到你说退出词为止。
整个流程是:音箱本地完成语音识别 → MiGPT 收到消息并调大模型生成回答 → 再把文字合成语音送回音箱播放。想聊多久都可以,退出靠一句"退出"即可。
新手上手 MiGPT 本地部署:三步完成第一次对话
第一步:下载项目代码
把仓库克隆到本机,进入目录后能看到.env.example和.migpt.example.js两份示例配置:
git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt克隆成功后,目录下出现src、docs和两份示例配置文件,即完成。
第二步:填写两份配置文件
两份文件分工明确:.env决定"用哪个大脑",.migpt.js决定"接管哪台音箱"。
先把.env.example改名为.env,模型相关只填三行:
OPENAI_MODEL=gpt-4o-mini # 使用的模型 OPENAI_API_KEY=sk-proj-xxxxxxx # 模型服务密钥 # OPENAI_BASE_URL=https://api.openai.com/v1 # 自建或其他服务商时取消注释并填你的地址前两项必填;第三项只有在不直接用 OpenAI(比如用 Ollama 本地模型、通义千问等兼容 OpenAI 格式的服务)时才需要填。密钥属于敏感信息,不要把它提交到任何代码仓库里。
再把.migpt.example.js改名为.migpt.js,音箱侧最关键的三个字段:
speaker: { userId: "你的小米ID", // 账号「个人信息」页里的「小米ID」 password: "你的账号密码", did: "小爱音箱Pro", // 米家中设置的设备名称 }第三步:启动容器并验证
下面这条命令在后台启动 MiGPT,并把刚才填好的两份配置挂进容器:
docker run -d --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latest几秒后日志出现"服务已启动",就对音箱说"小爱同学,召唤傻妞",它用语音应你,部署就算跑通了。
不想用 Docker 的话,也可以npm install mi-gpt后以 Node 方式调用MiGPT.create启动,配置项与上面两个文件一一对应,详见 README.md。
关键配置说明:值得动的只有这几个参数
全部可调参数在 docs/settings.md,但日常使用基本只需要关心下面几组。
控制"哪些话交给 AI 回答":callAIKeywords
默认是["请", "你", "傻妞"],意思是消息以这些词开头才会走大模型。想加"嘿"之类的触发词,往数组里追加即可。
控制"进出 AI 模式":wakeUpKeywords和exitKeywords
默认分别包含"召唤/打开/进入"和"关闭/退出/再见"。进入模式后就是连续对话状态;说退出词即可结束。
控制"连续对话":streamResponse与exitKeepAliveAfter
streamResponse打开后才能连续对话;exitKeepAliveAfter是连续对话中多久没说话就自动退出,默认 30 秒,建议别超过 1 分钟。如果你的机型播放状态检测不稳定(表现为回复被截断、对话接不上),把streamResponse关掉即可,代价是失去连续对话能力。
控制"声音":ttsCommand与wakeUpCommand
不同音箱型号的指令编号不同,最常被用到的是[5, 1]和[5, 3]两组值。具体型号对应的参数,查 docs/compatibility.md 里的型号表最稳妥。
避坑清单:遇到问题先查这六项
提示"70016:登录验证失败"原因:
userId填错了。它必须是小米账号"个人信息"页里的小米 ID,不是手机号,也不是邮箱。提示"找不到设备:xxx"原因:
did与米家中的设备名不一致。空格、大小写、错别字(音响/音箱)都会计入匹配,建议直接从米家界面复制名称;若仍找不到,可开enableTrace: true查日志拿到miotDID填入。提示"ERR_MODULE_NOT_FOUND"原因:容器里没找到
.migpt.js。Windows 终端(PowerShell/cmd)下$(pwd)不生效,要换成D:/xxx/mi-gpt/.env这类绝对路径再启动。控制台有 AI 回复,音箱却不出声原因:
ttsCommand与你的型号不符。到小米 IoT 规格站查自己型号对应的 TTS 指令并更新配置。改完配置没反应原因:Docker 不会热加载配置。先重启容器;重启后仍不生效就删掉旧容器,按第三步的命令重新创建。
提示 LLM 连接错误(Connection error 等)原因:当前网络访问不了模型服务。国内环境可在
.env里加HTTP_PROXY,或换用兼容 OpenAI 格式的国内服务商并更新OPENAI_BASE_URL。
以上大部分场景的官方解答在 docs/faq.md,遇到报错先搜一遍能省不少时间。
从最小可用到进阶玩法
跑通基础问答之后,可以继续往这几个方向走:
- 换音色:接入第三方 TTS 后,说一句"把声音换成 xxx"就能当场切换说话音色,配置方法见 docs/tts.md。
- 换人设:修改
.migpt.js里的bot、master简介和systemTemplate,对话风格会跟着变,模板写法参考 docs/prompt.md。 - 换模型:通义千问、DeepSeek、Moonshot、本地 Ollama 等只要接口兼容 OpenAI 格式,改
.env三行即可切换。 - 多设备/多账号:单实例只支持一台音箱,需要更多就各建一个容器、各自挂不同的配置。
社区里还有不少相关项目和第三方教程(图形化管理、摄像头分支等),列表在 README.md;项目后续计划可以看 docs/roadmap.md。
下一步建议:先按避坑清单确认你的型号参数,把streamResponse打开试一轮连续对话;遇到没见过的报错,去项目 issue 列表搜一下关键字,多数问题都有现成答案。
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考