不到1.5秒出声的ChatGPT小爱音箱:MIGPT 新手完整上手指南
【免费下载链接】MIGPT基于API流式对话的低延迟版MIGPT项目地址: https://gitcode.com/gh_mirrors/mi/MIGPT
MIGPT 是小米小爱音箱接入 ChatGPT 的低延迟方案,它用 OpenAI 官方 API 的流式传输,回答边生成边播放,实测提问到出声不到 1.5 秒。
它解决什么问题
MIGPT 是个"接线员":一头连着你的小爱音箱,一头连着 ChatGPT,负责把两边对话无缝对接。
普通 GPT 接入方案要等完整回答生成完才播报,音箱干等十几秒,体验像打电话转接。MIGPT 用流式传输,GPT 每吐出一句话就立刻播,等待时间最多只剩一两秒。
适合手里有小爱音箱、有小米账号和 OpenAI API Key、想让客厅音箱"开口聊 GPT"的用户。
环境与快速上手:5 分钟跑通
先把环境要求过一遍:
- Python 3.8 及以上
- 4 个依赖:aiohttp、requests、urllib3、tiktoken(见 requirements.txt)
- 一个小米账号 + 一台已联网的小爱音箱
- 一个 OpenAI API Key
按顺序做四步就行:
git clone https://gitcode.com/gh_mirrors/mi/MIGPTpip install -r requirements.txt- 打开 MIGPT.py,文件开头填 4 个配置:小米账号、密码、API Key、音箱型号
python MIGPT.py,看到"正在运行 MiGPT"就成功了
下面这段演示要改哪 4 行,它们都在 MIGPT.py 顶部:
MI_USER = "你的小米账号" # 手机号 MI_PASS = "你的小米账号密码" OPENAI_API_KEY = "你的API KEY" SOUND_TYPE = "LX06" # 音箱型号,须匹配填错任一项,启动时会直接抛ValueError拦住你,不会偷偷跑错。
核心功能拆解
小米账号登录与音箱定位
一句话定义:用小米账号登录,找到你名下对应型号的音箱设备。
操作方式:启动时自动执行,登录成功的 token 会缓存到用户主目录的.你的账号.mi.token文件,下次启动免登录。
关键模块:miaccount.py 负责登录和 token 存取;minaservice.py 的device_list按型号找到设备 ID。
这块是整条链路的"门禁",登录不通,后面全白搭。
流式对话:低延迟的真正来源
一句话定义:请求 GPT 时开启stream,响应流被切成短句,逐句推给音箱。
操作方式:无需额外操作。MIGPT.py 里的循环会把攒好的句子按",。?!"断句,每断出一句就发一次 TTS,所以前四句甚至在逗号处就能出声。
关键模块:V3.py 的Chatbot.ask_stream负责收流,主循环负责断句分发。
这就是"边说边播",是延迟从十几秒压到 1.5 秒的核心。
语音指令与打断控制
一句话定义:用普通话控制 GPT 开关,还能随时打断。
操作方式:说"打开/关闭高级对话"切 GPT 开关(默认开),说"闭嘴"或"停止"暂停当前回答,直接问新问题也会强制打断旧回答。
关键模块:MIGPT.py 的run_forever轮询新指令并分发。
相当于给音箱装了一个"对讲机模式",不用碰任何按钮。
关键配置速查:最省事的改法
| 配置项 | 默认值 | 作用 |
|---|---|---|
| MI_USER / MI_PASS / OPENAI_API_KEY | 占位符,必填 | 小米账号密码、API Key,缺一个都跑不了 |
| SOUND_TYPE | 占位符,必填 | 音箱型号,不在 MIGPT.py 的型号字典里会直接报错 |
| PROMPT | "请用100字以内回答…" | 追加到每次提问后的提示词,控制回答长度和语速 |
| SWITCH | True | GPT 回答总开关 |
| HARDWARE_COMMAND_DICT | LX06 等 12 款型号 | 型号到 TTS 音色命令的映射,改它影响发音音色 |
| engine | gpt-3.5-turbo | 用的 GPT 模型,见 V3.py |
| temperature | 0.5 | 回答随机性,调高更发散 |
| max_tokens | 3000 | 上下文 token 上限,不能超 4000 |
日常最值得动的是 PROMPT:想让它答得短一点,直接改那句提示词。
新手常见坑 + 下一步
三个高频坑,都给你方向:
- 型号不支持:LX04、L05B、L05C 因流式机制暂不支持,启动会提示型号不在列表,只能换支持的音箱。
- Windows 装依赖报错:没有 C++ 编译环境时
pip install tiktoken会失败,去 PyPI 下载对应平台的 whl 文件,再本地安装。 - 运行中频繁掉线:多半是 token 过期,删掉主目录下的
.账号.mi.token文件让它重新登录。
下一步建议:把 MIGPT.py 完整读一遍,重点看run_forever怎么把"收问题、断句、播报、打断"串成一条流水线,再对着 README 的"使用技巧"实测一遍打断效果。
【免费下载链接】MIGPT基于API流式对话的低延迟版MIGPT项目地址: https://gitcode.com/gh_mirrors/mi/MIGPT
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考