ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

小爱音箱接入大语言模型:从Docker部署到自定义语音助手的完整教程

小爱音箱接入大语言模型:从Docker部署到自定义语音助手的完整教程 小爱音箱接入大语言模型从Docker部署到自定义语音助手的完整教程【免费下载链接】mi-gpt 将小爱音箱接入 ChatGPT 和豆包改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt周五晚上你对客厅的小爱音箱说小爱同学给我讲个睡前故事等回来一句抱歉我没听懂。设备本身没有坏音乐能放、灯光能控问题出在对话能力上内置语音助手按固定场景应答缺少上下文理解和自然对话能力。开源项目 MiGPT 做的事情正是不用换硬件把小爱音箱接入 ChatGPT、豆包等大语言模型改造成一个有记忆、能自定义人设的家庭语音助手。项目概览MiGPT 以独立服务运行Docker 容器或 Node.js 进程通过小米 IoT 开放接口轮询小爱音箱的云端对话记录把命中关键词的提问转发给大语言模型再把回答经 TTS 合成后从音箱播放出来。服务运行在小爱音箱同一局域网之外的服务器上也完全可以不依赖本地组网。核心能力包括多模型接入兼容一切 OpenAI API 格式的服务OpenAI、通义千问、DeepSeek、Moonshot 均可通过修改三个环境变量切换长短期记忆内置记忆管理器默认携带最近 10 条对话和两阶段记忆进入上下文无需额外配置角色扮演助手名字、性格、你自己的简介都可自定义默认模板即傻妞人设连续对话与第三方 TTS支持召唤进入连续对话状态可接入火山引擎豆包同款音色或本地 ChatTTS 等语音引擎动手前的准备四项前置条件小爱音箱大部分型号可用小爱音箱 ProLX06运行最稳定具体以 兼容型号列表 为准小度、天猫精灵、HomePod 不在支持范围小米账号需要数字形式的小米 ID不是手机号、不是邮箱在小米账号资料页的小米 ID处查看和账号密码大语言模型 API Key国内网络环境建议直接使用通义千问、DeepSeek 等国产服务的密钥免去配置代理一台能跑 Docker 或 Node.js 的设备家用电脑、NAS 或云服务器均可约 1G 内存即可无需与音箱同网部署实操两条路径任选其一选择建议不想装 Node.js 环境的选 Docker全程 3 步约 5 分钟完成计划改源码做二次开发、或想提交反馈的选源码方式。两条路径共用同一套配置文件。路径一Docker 启动第 1 步克隆项目并准备两个配置文件均从模板重命名而来git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt cp .env.example .env cp .migpt.example.js .migpt.js克隆约 30 秒完成.env存放 API 密钥等环境变量.migpt.js存放角色、设备、唤醒词配置后续所有参数修改都在这两个文件里。第 2 步按下一节配置详解填写参数。第 3 步启动容器docker run -d --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latest这条命令把.env作为环境变量注入、把.migpt.js挂载进容器。Windows 终端PowerShell、cmd下$(pwd)不生效需要改成两个文件的绝对路径例如D:/mi-gpt/.env。路径二源码启动第 1 步同上克隆项目并创建两个配置文件。第 2 步安装依赖并启动需要 Node.js 20 及以上版本首次运行会自动初始化本地数据库pnpm install pnpm devpnpm install视网络约需 1-2 分钟pnpm dev会自动读取同目录的.env服务行为与 Docker 方式一致。两条路径都启动成功后控制台会打印 MiGPT 横幅和Speaker 服务已启动日志配置详解.migpt.js 与 .env 的五个功能域身份与设备识别参数文件说明常见坑userId.migpt.js小米 ID数字填了手机号启动即报70016登录验证失败password.migpt.js小米账号密码触发异地登录保护时需先在相同网络下用该账号登录小米官网通过安全验证did.migpt.js米家中的设备名称或设备 DID名称须逐字一致注意大小写、空格、错别字响与箱确认名称无误仍提示找不到设备时多半是 Mina 与 MIoT 两侧设备名不一致在配置里打开debug: true和enableTrace: true并重启从控制台MiNA 设备列表中找到miotDID填入did完成后记得把两个开关改回false。大语言模型接入模型相关配置全部集中在.env变量名固定为OPENAI_*前缀只改值不改名。以接入通义千问为例OPENAI_BASE_URLhttps://dashscope.aliyuncs.com/compatible-mode/v1 OPENAI_MODELqwen-turbo OPENAI_API_KEY你的API_KEYDeepSeek、Moonshot 等国内模型同理把兼容端点地址和模型名填入OPENAI_BASE_URL、OPENAI_MODEL即可。国内网络直连 OpenAI 官方接口时在.env中追加HTTP_PROXYhttp://127.0.0.1:7890按实际代理端口填写。角色设定与对话体验bot角色名与人设、master你的名字与简介、systemTemplate系统提示词模板三个字段共同决定对话风格默认人设是《魔幻手机》里的傻妞。系统提示词模板支持{{botName}}、{{messages}}等变量详细用法见 docs/prompt.md。以下参数决定什么时候才调用 AI参数作用callAIKeywords消息以这些词开头时调用 AI默认[请, 你, 傻妞]wakeUpKeywords消息以这些词开头时进入连续对话状态默认[打开, 进入, 召唤]exitKeywords以这些词开头时退出连续对话默认[关闭, 退出, 再见]onAIAsking/onAIRepliedAI 开始/结束回答的提示语设为空数组[]即可静音一段最小可用的账号与唤醒词配置.migpt.js片段speaker: { userId: 你的小米ID, password: 你的密码, did: 小爱音箱Pro, callAIKeywords: [请, 你], wakeUpKeywords: [召唤], },记忆系统记忆功能随默认配置开启不需要单独写参数默认systemTemplate会自动把最近 10 条消息、短期记忆、长期记忆一起注入上下文每新增 10 条消息系统异步汇总一条新的短期记忆长期记忆在短期记忆基础上逐层沉淀。想省 token 的话从systemTemplate中删掉短期记忆和长期记忆两个段落即可关闭。设备指令、TTS 与连续对话ttsCommand、wakeUpCommand、playingCommand三个 MIoT 指令的值因型号而异小爱音箱 ProLX06对应[5, 1]和[5, 3]。具体值在 MIoT 规格站点 home.miot-spec.com 上按型号查询参数说明ttsCommand播放 TTS 指令填错会导致 AI 有回答但音箱不发声wakeUpCommand唤醒指令影响连续对话状态下的唤醒行为playingCommand播放状态查询指令默认无需配置回答被中途截断时再开启tts语音引擎默认xiaoai音箱自带接入第三方 TTS 后生效switchSpeakerKeywords对话中切换 TTS 音色的关键词如[把声音换成]streamResponse连续对话开关实验性功能默认false部分型号必须保持关闭checkInterval连续对话时播放状态检测间隔默认 1000ms最低 500mscheckTTSStatusAfter下发 TTS 后多少秒开始检测播放状态默认 3 秒exitKeepAliveAfter连续对话无响应多久自动退出默认 30 秒第三方 TTS火山引擎、本地 ChatTTS 等的接入步骤在 docs/tts.md 中有完整说明核心动作是.env里配置TTS_BASE_URL并修改tts引擎取值。高频问题的调试与排错问题一控制台提示70016登录验证失败现象服务启动即失败。原因userId/password有误或触发小米异地登录保护。解决核对小米 ID 为数字若为异地保护在与 MiGPT 相同的网络环境下用该账号登录小米官网通过验证约 1 小时后重试。问题二提示找不到设备xxx现象初始化 Mi Services 失败。原因did与米家中名称不一致大小写、空格、错别字或设备是共享设备共享设备暂不支持。解决从米家设备主页直接复制名称仍失败时按上文方法获取miotDID填入。问题三对小爱说话AI 没有应答现象控制台能收到消息但未调用模型。原因MiGPT 只处理以callAIKeywords开头的消息且必须先用小爱同学唤醒音箱。解决把请问地球为什么是圆的改为小爱同学请问地球为什么是圆的连续对话中没反应时重新唤醒一次即可。问题四回答说到一半戛然而止现象长回复被提前截断。原因该型号无法通过 Mina 正确查询播放状态。解决按 MIoT 规格配置playingCommand无效时关闭streamResponse连续对话功能随之失效。问题五LLM 响应异常401 Invalid Authentication现象AI 回复失败。原因OPENAI_API_KEY无效或未生效。解决单独验证密钥可用性Docker 环境下修改配置后需要删除旧容器重新执行docker run才会生效仅改提示语等参数有时也需重建。404 模型不存在、Connection error 需要代理等其余情况可在项目 FAQ 文档中按错误码检索。部署完成后的玩法拓展连续对话说小爱同学召唤傻妞进入 AI 模式此后追问无需重复小爱同学等提示语我说完了之后接着提问30 秒内不说话会自动退出。小爱音箱 Pro 顶部指示灯常亮表示正在聆听运行时换角色不改任何配置直接说小爱同学你是xxx你xxx即可临时更换人设我是xxx我xxx可更新你的简介换音色接入火山引擎 TTS 后对话中说把声音换成xxx可实时切换发音人音色与豆包一致本地模型用 Ollama 在带显卡的机器上跑本地模型它自带 OpenAI 兼容 API把OPENAI_BASE_URL指向本地地址即可回答全程不出内网架构速览它是怎么工作的MiGPT 本质上是运行在小爱音箱之外的一枚外挂大脑分三层理解即可设备接入层调用小米 MIoT 与 MiNA 开放接口完成播放、暂停、唤醒并轮询云端对话列表获取你的最新提问AI 服务层检测到关键词消息后拼装系统提示词角色、上下文、记忆调用大语言模型流式接收回答语音输出层文本先经 TTS 引擎自带 xiaoai 或第三方服务合成为音频再通过 TTS 指令从音箱播出这套方案有一个已知边界从小爱开始作答到 MiGPT 轮询检测到状态变化有 1-2 秒延迟期间原生小爱可能先抢话项目通过播放静音音频的方式抑制属于方案性限制。小结整个流程概括为四步克隆 → 配置 → 启动 → 调参。建议先跑通简单问答再依次加入人设定制、记忆与连续对话。需要注意的是项目已公告停止维护存量部署可以继续使用但新功能不会再增加遇到机型适配问题建议在 issue 区检索已有讨论。常用资源完整配置参数兼容型号与指令参数常见问题第三方 TTS 接入系统 Prompt 教程配置改完仍不满意声音表现时第一处该检查的通常是systemTemplate它是所有对话行为的源头。【免费下载链接】mi-gpt 将小爱音箱接入 ChatGPT 和豆包改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表