小爱音箱改造:用大模型打造真智能语音助手

发布时间:2026/7/30 4:01:24

小爱音箱改造:用大模型打造真智能语音助手 1. 项目概述为什么需要改造小爱音箱家里的小爱同学用久了总会发现一些尴尬场景问天气只能报官方数据问菜谱只会念百度百科讲笑话永远是那几个老梗。更糟心的是稍微复杂点的指令就回复这个我还不会——这哪是智能助手分明是人工智障。去年给丈母娘家装的小米Sound Pro老人家想让它读读养生文章结果要么识别不了方言口音要么把黄芪念成黄氏。看着3000多块的音箱沦为蓝牙喇叭我决定动手改造这套伪智能系统。1.1 现有方案的痛点分析官方小爱同学的短板主要体现在三个方面语义理解僵化基于规则匹配的对话系统无法理解上下文关联比如先问周杰伦的专辑再问他老婆是谁就接不上知识库陈旧2021年后的新梗、新事件基本无法识别功能扩展性差不能安装第三方技能官方技能市场两年没更新了市面上的改造方案我也试过几个刷机方案需要拆机短接触点风险高且失去保修外挂树莓派要额外购买硬件成本500云端API方案像天猫精灵那样走厂商服务器响应延迟明显直到发现GitHub上开源的MiGPT项目才找到真正零成本、免拆机的改造方向——通过ADB调试接口劫持语音交互流程。2. 核心改造原理与技术栈2.1 系统架构设计整个改造的核心思路是中间人攻击原始流程 用户语音 - 小爱麦克风 - 小米云端 - 返回应答 改造后流程 用户语音 - 小爱麦克风 - 本地拦截 - 大模型API - 生成应答 - 返回音箱关键技术节点ADB调试通道小米全系音箱都留有的后门开启后可以监听/system/bin/xiaomic进程的语音流HTTP代理拦截用mitmproxy捕获发送到mibrain.mi.com的请求语音转文本继续使用小爱本地的思必驰语音引擎比云端版延迟低AI应答生成接入开源大模型ChatGLM3-6B的API实测比GPT-3.5更适合中文场景2.2 必要工具清单工具类型推荐方案替代方案抓包工具mitmproxy(v9.0)Fiddler Everywhere模型API阿里云通义千问QPS免费版本地部署ChatGLM3-6B开发环境Python3.9虚拟环境Docker容器硬件要求同一局域网的电脑/树莓派闲置安卓手机关键提示小米音箱从2023款开始启用TLS证书绑定旧版mitmproxy需要打补丁才能解密HTTPS流量建议直接使用我打包好的工具包文末获取3. 详细改造步骤实录3.1 开启ADB调试模式不同型号操作略有差异以小米Sound Pro为例长按音箱禁用麦克风键10秒直到黄灯闪烁手机安装小米音箱调试助手APK连接音箱热点后在APP输入调试密码#*#64663#*#进入工程模式后开启USB调试和网络ADB验证是否成功adb connect 192.168.x.x:5555 # 音箱IP adb devices # 应显示device状态3.2 流量劫持配置电脑安装证书关键步骤mitmproxy --set confdir~/.mitmproxy openssl x509 -in ~/.mitmproxy/mitmproxy-ca-cert.pem -outform DER -out mitmproxy-ca-cert.der adb push mitmproxy-ca-cert.der /sdcard/ adb shell am start -n com.android.certinstaller/.CertInstaller -a android.intent.action.VIEW -t application/x-x509-ca-cert -d file:///sdcard/mitmproxy-ca-cert.der设置代理规则保存为flow.pydef request(flow): if mibrain.mi.com in flow.request.pretty_host: flow.request.host 127.0.0.1 flow.request.port 8000启动代理服务mitmdump -s flow.py --mode reverse:http://localhost:80003.3 AI应答接口部署推荐使用阿里云函数计算免费额度部署import json from dashscope import Generation def handler(event, context): query json.loads(event[body])[query] resp Generation.call( modelqwen-max, promptf你是一个幽默的家用助手用100字内回答{query} ) return { statusCode: 200, body: json.dumps({ response: resp.output.text }) }测试效果curl -X POST http://localhost:8000/api -H Content-Type: application/json -d {query:周杰伦最新专辑是什么}4. 效果对比与调优心得4.1 改造前后能力对比测试场景原版小爱改造后版本连续对话最多3轮支持20轮上下文知识时效性截止2021年实时联网更新方言识别仅支持普通话粤语/四川话可达85%创意生成无法完成能写诗/菜谱/代码4.2 关键参数调优响应延迟优化开启语音流预加载在检测到小爱同学唤醒词时就建立API连接设置TTS缓存对常见问题天气、时间预生成语音包误唤醒防治# 在flow.py中添加过滤规则 if query in flow.request.text: text json.loads(flow.request.text)[query] if len(text) 4 or 小爱 not in text: # 过滤短句和非唤醒词 flow.response mitmproxy.http.Response.make(204)多模态扩展 通过修改/system/etc/ai_speaker_config.json可以启用摄像头输入{ vision_enable: true, max_pixel: 1920 }5. 常见问题排查指南5.1 证书安装失败现象ADB推送证书后提示安装被阻止解决方案先执行adb shell settings put global verifier_verify_adb_installs 05.2 代理流量不生效诊断步骤检查防火墙规则iptables -L -n | grep 5555确认路由配置adb shell ip route show table all测试原始请求adb logcat | grep mibrain5.3 语音识别率下降优化方案更新思必驰引擎adb pull /system/app/SpeechService/SpeechService.apk apktool d SpeechService.apk # 修改res/raw/recog_cfg.json中的threshold值增加本地词库echo 养生茶yang sheng cha /sdcard/speech/dict.txt adb shell am broadcast -a com.xiaomi.speech.ACTION_RELOAD_DICT6. 进阶改造思路6.1 本地大模型部署如果担心云API隐私问题可以用4GB显存的旧显卡本地部署docker run -p 8000:8000 -v /data/models:/models registry.cn-hangzhou.aliyuncs.com/qwen/qwen:cu117 --model-path /models/Qwen-1_8B-Chat --trust-remote-code6.2 智能家居深度联动修改米家APP的自动化规则配置文件需root!-- 在/etc/miio/automation.xml中添加 -- condition typeai_judge param namemodelqwen/param param nameprompt判断用户是否想回家{query}/param /condition改造后对小爱说我觉得有点想家了就会自动打开空调和窗帘——这才是真正的智能家居该有的样子。所有工具和配置文件已打包上传到我的GitHub仓库搜索MiAI-Hack遇到问题欢迎在Issues区交流。

相关新闻