☰
小爱音箱接入大模型:如何用 MiGPT 接入 ChatGPT 与豆包
2026/10/7 1:50:44 网站建设 项目流程

小爱音箱接入大模型:如何用 MiGPT 接入 ChatGPT 与豆包

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

深夜问客厅里的音箱"帮我写一首关于月亮的诗",几秒后它回了一句"这个我还不会呢"。传统的小爱音箱能报天气、定闹钟,却答不了复杂问题。MiGPT 是一个把小爱音箱接入 ChatGPT、豆包等大语言模型的开源项目,让音箱获得复杂问答、连续对话和自定义人设能力。本文讲清从克隆仓库到完成第一次 AI 对话的完整过程。

先别动手:开始前的三项确认

动手部署前,请逐项核对以下清单:

  • 音箱型号:MiGPT 支持大部分小爱音箱型号,其中小爱音箱 Pro 体验最完整。各型号是否兼容、指令参数是多少,先看兼容型号列表。
  • 运行环境:一台能长期开机的机器(电脑、NAS 或服务器均可),装好 Docker 或 Node.js 20 以上版本。它调用的是小米云端接口,不需要和音箱处于同一局域网。
  • 账号与密钥:一个小米账号及密码(注意是小米 ID,不是手机号),以及一个 OpenAI 密钥,或任何兼容 OpenAI 格式的大模型密钥(豆包、通义千问、DeepSeek 等)。

一分钟看懂原理

可以把 MiGPT 理解成坐在小爱音箱和大模型之间的"翻译官":它通过轮询音箱的对话列表拿到你的问题,转发给大模型,再把大模型的回答用 TTS 合成为音频,最后下发到音箱播放。整条链路一句话就是:接收语音 → 调用大模型 → 语音合成 → 音箱播放。更多细节可以看工作原理。

服务启动成功后,就可以直接对音箱说话召唤 AI,下图是一次真实的服务启动与对话记录。

上手:从克隆到第一次 AI 对话

拿代码、配文件:MiGPT 仓库克隆与示例文件复制

克隆仓库,并把根目录下两个示例文件复制为自己的配置文件:

git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt cp .migpt.example.js .migpt.js cp .env.example .env

两个文件里每个字段的含义,参数设置 有逐项说明。

选部署方式:MiGPT Docker 一行部署

新手推荐 Docker。在仓库根目录执行一条命令:

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

注意 Windows 终端下$(pwd)不可用,要改写配置文件的绝对路径。如果你熟悉 Node.js 开发,也可以克隆后执行pnpm install直接从源码运行,细节见本地开发。

看到"服务已启动"日志后,对音箱说"小爱同学,召唤傻妞"(名称以你的配置为准),得到回应即接入成功。

填账号与模型参数:小爱音箱接入豆包的关键配置

必须手填的字段集中在两个文件里,且各有各的坑。

.env决定用哪个大模型:

OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx OPENAI_MODEL=gpt-4o # 接入兼容 OpenAI 格式的其他模型(如豆包、通义千问)时,追加: # OPENAI_BASE_URL=https://模型服务商地址/v1

豆包这类不直接兼容 OpenAI 格式的模型,可以先用 One API 之类的 API 聚合服务转成 OpenAI 格式,再把转换后的地址填进OPENAI_BASE_URL。

.migpt.js决定怎么连音箱:

export default { bot: { name: "傻妞", profile: "性别女,性格乖巧可爱,喜欢搞怪。", }, speaker: { userId: "你的小米ID", password: "账号密码", did: "小爱音箱Pro", ttsCommand: [5, 1], wakeUpCommand: [5, 3], }, };

两个最易错的点:userId填小米 ID(在小米账号个人信息页查看),不是手机号或邮箱;did必须与米家 App 里的设备名称一字不差,多一个空格、大小写不同都会报"找不到设备"。ttsCommand与wakeUpCommand是各型号"播放文本""唤醒"对应的指令编号,不同型号取值不同,需按 MIoT 规格页查询,兼容列表里也整理了各型号的现成值。

调教:让它更像专属助手

人格设定:用 systemTemplate 塑造 AI 性格

systemTemplate决定 AI 的说话方式,bot与master决定对话双方的人设:

systemTemplate: "你是一个博学多识的助手,友好且简洁地回答,不超过三句话。",

把这句话换成"你是一位耐心的家庭教师,用小学生能听懂的语言讲解",它就变成了孩子的学习搭子。更多写法见Prompt 编写指南。

自定义唤醒词与退出词

默认只有以"请"开头的消息才会触发 AI,可按需扩展,并定义进出 AI 模式的口令:

speaker: { callAIKeywords: ["请", "傻妞"], wakeUpKeywords: ["召唤傻妞", "打开傻妞"], exitKeywords: ["退出傻妞", "关闭傻妞"], },

说"小爱同学,召唤傻妞"进入 AI 模式后,可以连续提问,无需每句都重复唤醒词;静默 30 秒自动退出,时长可用exitKeepAliveAfter调整。

换音色:接入第三方 TTS

不想听小爱自带音色的话,需要部署一个提供标准接口的 TTS 服务(官方配套的 MiGPT-TTS 项目接入了火山引擎音色,实名认证后即可使用)。然后在.migpt.js中设tts: "custom",在.env中填TTS_BASE_URL指向你的 TTS 服务。配置后说"小爱同学,把声音换成 xxx"即可实时切换音色,流程与接口约定见第三方 TTS。

遇到问题看这里:三个高频问题

服务起不来

现象:启动日志报 70016 登录验证失败、"找不到设备"、ERR_MODULE_NOT_FOUND 等错误。

排查顺序:

  1. 确认userId是小米 ID 而非手机号,密码正确。
  2. 确认did与米家中设备名称完全一致,重点检查空格和大小写。
  3. 若提示触发异地登录保护,先在与服务相同的网络下登录小米官网账号完成安全验证,再重试。
  4. 检查容器内是否存在/app/.migpt.js且内容无误;Windows 下 docker 命令须用绝对路径。

音箱对 AI 指令无响应

现象:对音箱说话不调用 AI,或控制台有回复但音箱不发声。

排查顺序:

  1. 必须先说"小爱同学"唤醒,再说"请 xxx"。未唤醒时直接说"请 xxx",它听不到。
  2. 控制台有回复但不出声,基本是ttsCommand与型号不符,按 MIoT 规格页的值修正。
  3. 回复说到一半戛然而止,为该型号补上playingCommand;若型号不支持查询播放状态,可关闭streamResponse换取完整句子。
  4. 共享设备无法通过外部接口获取,此场景暂不支持。

AI 回答太慢

现象:提问后等待时间长,连续对话时停顿感明显。

排查顺序:

  1. 换延迟更低的模型,如gpt-3.5-turbo或响应迅速的国产大模型。
  2. 把onAIAsking、onAIReplied设为空数组,去掉"让我先想想""我说完了"等提示语。
  3. 微调checkInterval(播放状态检测间隔)与checkTTSStatusAfter(下发 TTS 指令后开始检测的延迟)。
  4. 在国内访问 OpenAI 受阻时,配置代理或改用国内大模型。

更多报错对照,见常见问题。

改造完成后,一台普通小爱音箱就变成了随时在线的大模型语音入口,问答、聊天、写诗都可以通过语音完成。最后提醒:MiGPT 已停止维护,建议部署在稳定的家庭内网环境,并定期备份.migpt.js、.env及数据库文件,配置出错时可快速恢复。参数的逐项说明在参数设置,遇到新报错先查常见问题。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询