
小爱音箱接入 ChatGPTMiGPT 部署与使用指南【免费下载链接】mi-gpt 将小爱音箱接入 ChatGPT 和豆包改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gptMiGPT 的作用是把家里的小爱音箱接入 ChatGPT、豆包等大模型让原本只能回答固定套路话的音箱变成可以连续问答、记得住聊天内容的语音助手。项目支持 Docker 和 Node.js 两种启动方式部署在一台能长期联网的机器上即可不需要和音箱在同一局域网。 它能做什么能力启用后的变化默认状态AI 问答说小爱同学请问 xxx由大模型生成回答并由音箱朗读开箱即用只响应以callAIKeywords默认请你等开头的消息角色扮演在配置里设定人设和称呼改变回答语气默认是通用助手人设可在systemTemplate里改长短期记忆音箱基于本地数据库维护的对话记忆回答越聊越连贯开启模块在 src/services/bot/memory/流式响应连续对话进入 AI 模式后无需每句话都说小爱同学开启部分型号需关闭streamResponse自定义 TTS 音色接入第三方 TTS 服务后用语音指令切换不同音色关闭默认使用小米自带 TTS本地化数据对话记录存本地 SQLite语音数据不经额外第三方中转开启 部署前要准备什么动手前把这五样准备好缺一样都会在启动阶段卡住一台 兼容型号的小爱音箱小爱音箱 Pro 的兼容性最好小度、天猫精灵等不在此项目范围内小米账号的userId在个人信息里的小米 ID不是手机号或邮箱和密码一个 OpenAI 兼容接口的大模型密钥ChatGPT、通义千问、DeepSeek 等只要接口兼容 OpenAI SDK 即可一台可长期联网的机器家用主机、NAS、VPS 或 Unraid 都行两个配置文件.env放模型密钥和环境变量.migpt.js放账号与音箱参数均从仓库里的同名 example 文件复制而来参数含义见 docs/settings.md网络条件方面服务本身通过云端接口与音箱通信跨网络没问题但模型接口在国内网络访问 OpenAI 官方地址时通常需要代理或改用国产模型这一点后面常见问题里会再提。 完成首次部署拿到代码把仓库克隆到部署机上Docker 和 Node.js 路线都从这里开始git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt填好配置把.env.example复制为.env填入OPENAI_API_KEY、OPENAI_MODEL、OPENAI_BASE_URL把.migpt.example.js复制为.migpt.js填入小米userId、密码和音箱的did米家中设置的设备名称再按音箱型号填上ttsCommand与wakeUpCommand型号对照表在 docs/compatibility.md。跑起来下面这条命令启动一个后台容器并把本地的两个配置文件挂载进容器docker run -d --env-file .env \ -v $(pwd)/.migpt.js:/app/.migpt.js \ idootop/mi-gpt:latestWindows 终端下$(pwd)不可用请写成配置文件所在的绝对路径。如果走 Node.js 路线则执行npm install后运行node app.js入口脚本 app.js并把.migpt.js中的参数作为MiGPT.create的初始化参数传入。服务跑起来后的原理不复杂它通过 MIoT 和 MiNA 开放接口给音箱下发播放、暂停、唤醒指令同时轮询音箱的对话列表发现以唤醒词开头的新消息就调用大模型生成回复再经 TTS 合成语音让音箱播报详见 docs/how-it-works.md。 部署后如何确认生效与排查高频问题确认是否生效分两步先看容器日志出现登录小米账号成功、拉取到音箱设备列表的日志即可再对音箱说小爱同学请问地球为什么是圆的音箱用 AI 风格的语言念出回答就代表全链路通了。以下是几个高频问题按现象 → 原因 → 处理来说现象日志报70016登录验证失败。原因userId填成了手机号或邮箱。处理到小米账号个人信息页复制小米 ID 重新填入。现象触发小米账号异地登录保护。原因账号在陌生网络首次登录需要安全验证。处理在与部署机相同的网络环境下手动登录小米账号通过验证等待约 1 小时后重启服务仍不行的话先在本地网络登录一次把生成的.mi.json挂载到容器的/app/.mi.json下。现象报找不到设备。原因did与米家中的设备名称不一致常见于错别字、多余空格或大小写如小爱音响、小爱音箱 Pro。处理直接从米家复制设备名若名称对不上就开启debug和enableTrace查看 MiNA 设备列表把日志里的miotDID填入did。现象控制台打印了 AI 回复但音箱不发声。原因不同型号的ttsCommand不同。处理按型号查 MIoT 规格表改对应参数参考 docs/faq.md 的播放异常章节。现象对音箱说话没有任何反应。原因MiGPT 只处理以唤醒关键词开头的消息且必须先唤醒小爱同学。处理把话组织成小爱同学请 xxx的形式需要时再扩展callAIKeywords列表。 按需深入的方向想让回答更跟手提示语与检测参数默认配置偏保守前后都有提示语回复之间会有停顿感。如果嫌慢把onAIAsking和onAIReplied置为空数组去掉提示语调小连续对话时的播放状态检测间隔或者干脆换一个响应更快的模型效果都会立竿见影详见 docs/faq.md 中AI 回答速度一节。想连续聊记忆与流式响应长短期记忆模块默认就在运行对话摘要存在本地数据库里。需要注意的是流式响应/连续对话在不同型号上的支持情况不同设备无法正确查询播放状态时比如小米音箱 Play 增强版就应关闭streamResponse否则会出现播报被截断、戛然而止的现象。想换个开场方式自定义唤醒词音箱固件层的小爱同学改不了但进入 AI 模式的短语可以自定义把wakeUpKeywords改成自己喜欢的说法比如打开傻妞说小爱同学打开傻妞就能进入连续对话状态再用exitKeywords定义的短语退出。进入后会播一句onEnterAI欢迎语这些提示语都可以按场景增删。想换音色接入第三方 TTS默认走小米自带 TTS。部署一个 TTS 服务后把环境变量TTS_BASE_URL指向它再把speaker.tts设为custom就能用小爱同学把声音换成 xxx这类语音指令在线切换音色接入步骤见 docs/tts.md。写在最后MiGPT 本身是单实例服务一个容器对应一台音箱多音箱或多账号就再起一个容器即可。想继续深挖可以从这三个地方入手docs/settings.md 的完整参数表、docs/faq.md 的问题索引以及 src/services/speaker/ 里音箱通信的实现源码。另外项目目前处于停止维护状态使用前建议先阅读 README 顶部的说明。【免费下载链接】mi-gpt 将小爱音箱接入 ChatGPT 和豆包改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考