
小愛音箱接入大模型:MiGPT 智能音箱改造完整指南【免費下載鏈接】mi-gpt 將小愛音箱接入 ChatGPT 和豆包改造成你的專屬語音助手。項目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt周六早上你迷迷糊糊喊了句小愛同學,今天適合跑步嗎?,音箱回的不是為您查詢到……的機械腔,而是外面 22 度有小雨,建議改去健身房——它真的聽懂了。這就是 MiGPT 干的事:把家里那臺只會答關鍵詞的智能音箱,接上 ChatGPT、豆包這類大語言模型,變成一個能聊天、有人設、有記憶的專屬語音助手。 先把服務跑起來:兩個配置文件加一條命令先別急著調人設,這一步沒跑通,后面都是白搭。MiGPT 是個 Node.js 程序(Node.js 可以理解成運行 JavaScript 程序的運行環境),你只需要準備兩個文件:.env:大模型的連接信息——API 密鑰、模型名、服務地址;.migpt.js:音箱的身份信息——你的小米賬號、音箱名字、人設和喚醒詞。倉庫里有兩個帶.example后綴的同名模板,復制一份改個名,把自己的值填進去就行。注意did參數(音箱名)要直接復制米家 App 里顯示的名字,多一個空格、大小寫寫錯都算不存在。另外設備必須是小米的小愛音箱,小度、天貓精靈、HomePod 不支持。配置文件里還有ttsCommand(讓音箱讀文字)和wakeUpCommand(喚醒音箱)兩個指令編號,示例值[5, 1]和[5, 3]對多數型號有效,個別型號查一下規格表再改:智能音箱指令編號與配置參數的對應關系啟動有兩條路。不想碰代碼環境的,用 Docker 最省事(Docker 把程序和依賴打包成鏡像,哪都能跑):docker run -d --env-file $(pwd)/.env \ -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latest開發者也可以直接拉源碼跑,要求 Node.js 16 以上:git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt pnpm install pnpm start看到服務已啟動就成功了:MiGPT 啟動后的控制臺界面,喚醒即有大模型響應?? 常見坑:啟動報70016 登錄驗證失敗,九成是userId填錯了——要填小米 ID(小米賬號個人信息里查得到),不是手機號;報找不到設備則是did和米家里的名字對不上。Windows 終端里$(pwd)不生效,要把配置文件寫成絕對路徑。 三種喊法召喚 AI,配好喚醒詞和退出詞跑起來之后,喊它的方式一共就三種:小愛同學,請xxx,比如小愛同學,請介紹一下你自己;小愛同學,你xxx,比如小愛同學,你喜歡吃什么?;小愛同學,召喚xxx,這個會進入喚醒模式,支持連續對話。進入喚醒模式后,你不用每句話都帶小愛同學,直接接著聊;說退出詞它就恢復正常。詞都在.migpt.js里配,改完重啟容器生效:speaker: { wakeUpKeywords: [召喚傻妞, 打開傻妞], exitKeywords: [退出傻妞], onEnterAI: [我在呢,有什么可以幫你?] }進入提示、結束語、出錯提示這一整套話術,都可以在 完整配置說明 里找到對應參數。日常玩法很多:早晨播報天氣和新聞、睡前給孩子講個故事、孩子寫作業時臨時問兩道數學題。?? 常見坑:它正在說話的時候你跟它說話,它是收不到的——等它說完結束語(比如我說完了)過一兩秒再問;音箱正在放歌時也得先讓它暫停,再和 AI 對話,否則狀態會亂。 改一行 .env 切換大模型音箱接入大模型之后,大腦換成誰,基本就是在.env里改三行的事:OPENAI_API_KEYsk-你的密鑰 OPENAI_MODELgpt-4o OPENAI_BASE_URLhttps://api.openai.com/v1MiGPT 走的是 OpenAI SDK 協議,所以凡是提供兼容接口的模型都能直接用:通義千問、DeepSeek、Moonshot 這類,把OPENAI_BASE_URL指到服務商地址、OPENAI_MODEL換成對應模型名就行。豆包這類不直接提供兼容接口的,可以用第三方 API 聚合工具轉一道再接;本地部署的話,Ollama、LM Studio 都自帶同樣的接口,填本機地址即可。?? 常見坑:日志里出現 Connection error 一般是網絡問題——國內直連不了 OpenAI,在.env里配HTTP_PROXY,或者干脆換國產模型;401 是密鑰無效,404 model does not exist 通常是當前賬號沒這個模型的權限,換個檔位試試。 5 分鐘配好人設 Prompt,它還帶記憶智能音箱改造最有意思的一步,是給它立個性格。.migpt.js里有三處可改:bot.name(它的名字)、bot.profile(人設,性別、性格、愛好)、systemTemplate(系統 Prompt,決定它怎么說話、帶不帶上下文)。模板里{{botName}}這類變量運行時會自動替換,寫法細節看 系統 Prompt 教程。把人設寫成性格活潑、愛講笑話,天氣問題的答法和嚴肅管家完全是兩個物種。懶得改文件也行,直接說小愛同學,你是 xxx,你 xxx,它當場換人格。性格之外它還有腦子:短期記憶裝當前這輪對話,讓話題能接得上;長期記憶存你的偏好,越聊越懂你,數據落在本地數據庫里,不出你家。 換個聲音:第三方 TTS 與播放問題排查小愛同學自帶的聲音聽膩了?可以換。在.env里填上TTS_BASE_URL(你自己的 TTS 服務地址),再把.migpt.js里改成:speaker: { tts: custom, switchSpeakerKeywords: [把聲音換成] }之后一句小愛同學,把聲音換成 xxx就能換音色,本地搭的 ChatTTS 之類的服務也能接,詳見 TTS 定制文檔。播放相關的故障基本都出在指令編號上,兩種典型癥狀:有回答但沒聲音:通常是ttsCommand不匹配;句子說一半戛然而止:多半要補playingCommand(查詢播放狀態的指令)。兩個編號都要對著你的音箱型號查:在小米設備規格站搜型號,進規格頁找對應指令:搜索音箱型號后進入規格頁,即可查到指令編號播放狀態指令在playing-state那一行,填[3, 1, 1]這類數組即可:Play Control 屬性表中的 playing-state 對應 playingCommand 配置?? 常見坑:如果改完編號還是沒聲音,說明你的型號不支持通過開放接口查詢播放狀態,這種情況無解,作者推薦的小愛音箱 Pro 是完美運行型號,型號列表見 兼容文檔。? 給想動手改源碼的人代碼不長,結構也清楚,想改點什么的可以往下看:整體是純 Node.js 服務,核心在 核心服務目錄,按 bot(對話與記憶)、speaker(音箱控制)、db(數據)、openai(模型調用)分塊;它聽懂你說話的原理是輪詢小米 MIoT/MiNA 開放接口拉對話列表,拿到 AI 回答后把語音鏈接發回音箱播放,細節見 工作原理;記憶和人設數據存在本地 Prisma 數據庫(prisma 目錄),不依賴外部服務;提醒一句:作者已宣布停止維護,但代碼完整,適合當底子自己魔改;用語音控制米家燈光、音樂的智能家居聯動還在 Roadmap 上,尚未開發。 下一步你可以試試把OPENAI_MODEL換成一個國產模型,對比一下回答風格重寫bot.profile,立一個符合你口味的性格,比如毒舌但靠譜的家庭鬧鐘配好喚醒詞和退出詞,試一輪十分鐘的連續對話在配置里打開debug: true,看日志熟悉沒反應類問題的排查方法通讀一遍 常見問題 和 參數設置,遇到問題先搜再問 啟動命令與關鍵文件速查事項命令 / 路徑Docker 啟動docker run -d --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latestNode.js 啟動pnpm install pnpm start大模型配置.env音箱與人設配置.migpt.js完整參數說明docs/settings.md常見問題docs/faq.md【免費下載鏈接】mi-gpt 將小愛音箱接入 ChatGPT 和豆包改造成你的專屬語音助手。項目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考