首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >🪄 吃灰两年的小爱音箱,接入 OpenAI 后彻底脱胎换骨

🪄 吃灰两年的小爱音箱,接入 OpenAI 后彻底脱胎换骨

作者头像
Tinywan
发布2026-07-27 12:46:47
发布2026-07-27 12:46:47
410
举报
文章被收录于专栏:开源技术小栈开源技术小栈

概述

家里的小爱音箱放床头吃灰快两年了。

当初买它图的是智能助手体验,实际用下来,除了设闹钟、查天气、控智能灯,但凡问点稍微复杂的问题,要么答非所问,要么机械甩一句“为你找到相关内容”,离真正的AI助手差了十万八千里。

想自己改造?小爱生态封得死死的,既不能换大模型,也没法对接私有服务,只能困在官方的能力池里。直到最近挖到 open-xiaoai-bridge 这个开源项目,折腾了一下午,终于给小爱换上了OpenAI的“大脑”,原生家电控制功能完全保留,相当于一台设备两套系统。

这篇就把完整的部署实操步骤全整理出来,跟着走,你也能把家里吃灰的小爱音箱改成专属AI语音助手。

先看看效果

先搞懂这个项目到底做了什么

open-xiaoai-bridge 是一款小爱音箱的开源AI桥接工具,核心是打破小爱音箱的封闭生态,通过软件层改造,让音箱自由对接外部大模型与AI服务

整个架构分为两端:

  • 音箱端:刷机后安装Rust客户端,直接接管麦克风音频采集与扬声器播放,和小爱原生系统并行不冲突
  • 服务端:本地部署的桥接服务,负责语音识别、大模型调用、语音合成,完成完整对话链路

它的核心能力完全覆盖定制需求:

  1. 多AI后端兼容:支持所有OpenAI兼容接口(官方API、中转服务、本地Ollama/LM Studio),也能对接QwenPaw、OpenClaw、小智AI等服务
  2. 交互完全自定义:支持中英文自定义唤醒词,不同唤醒词可路由到不同AI模型;支持连续多轮对话,无需反复唤醒
  3. 双ASR方案可选:新手直接用小爱原生ASR零成本上手;追求隐私可切换本地离线ASR,全程数据不出局域网
  4. 自带HTTP控制接口:可远程控制音箱播放文字/音频,轻松对接监控告警、智能家居自动化场景

前置准备:给小爱音箱开启底层权限

这是整个操作的前提,也是唯一有门槛的一步——需要给小爱音箱刷机,开启SSH权限并安装客户端。

重要风险提示

  • 刷机操作会失去设备官方保修,存在极小概率变砖风险,请务必谨慎操作,自行承担相关风险
  • 仅支持特定型号:目前适配最完善的是小爱音箱Pro(LX06)、小米智能音箱Pro(OH2P),其他型号请先确认对应固件支持

核心操作目标(附官方教程)

这一步不同型号操作差异较大,不做冗余展开,跟着官方对应教程完成即可:

  1. 刷入破解固件,开启SSH权限:利用固件漏洞获取设备root权限,打开SSH登录能力 官方刷机教程:https://github.com/coderzc/open-xiaoai/blob/main/docs/flash.md[1]
  2. 安装Rust客户端:SSH登录音箱后,部署客户端程序,用于和后续的桥接服务建立WebSocket通信 客户端安装教程:https://github.com/coderzc/open-xiaoai/blob/main/docs/client.md[2]

完成后,你会得到两个关键信息:音箱的局域网IP、SSH登录账号密码,接下来就进入核心的服务端部署环节。

核心部署:10分钟搭好OpenAI桥接服务

推荐用 Docker Compose 方式部署,全程无需配置依赖环境,复制粘贴命令即可完成,新手友好。

服务可以部署在家用NAS、闲置小主机、甚至常开的电脑上,只要和小爱音箱在同一个局域网就行。

1. 基础环境准备

提前安装好 Docker 与 Docker Compose,Windows/Mac/Linux 全平台均支持,国内服务器建议先配置Docker镜像加速,避免拉取镜像失败。

2. 创建工作目录并下载配置文件

代码语言:javascript
复制
# 创建项目目录并进入
mkdir open-xiaoai-bridge && cd open-xiaoai-bridge

# 下载核心配置文件
curl -O https://raw.githubusercontent.com/coderzc/open-xiaoai-bridge/main/config.py
curl -O https://raw.githubusercontent.com/coderzc/open-xiaoai-bridge/main/docker-compose.yml

国内网络下载失败的话,可以直接去GitHub项目主页手动复制这两个文件到目录中。

3. 模型文件准备(新手可跳过)

  • 如果你用小爱原生ASR(推荐新手首选):不需要下载任何模型文件,零资源占用,直接进入下一步
  • 如果你用本地离线ASR:需要去项目Releases页面下载 VAD + KWS + ASR 模型包,解压到当前目录的 ./models 文件夹下

4. 核心配置:对接你的OpenAI服务

编辑 config.py 文件,找到 openai 配置段,修改为你的大模型信息:

代码语言:javascript
复制
"openai": {
    # 接口地址:官方填 https://api.openai.com/v1
    # 本地Ollama填 http://你的局域网IP:11434/v1
    # 中转服务填对应服务商的v1地址
    "base_url": "https://api.openai.com/v1",
    "api_key": "你的API Key",
    "model": "gpt-4o-mini",  # 按需替换模型名称
    "input_mode": "xiaoai_asr",  # 新手用小爱原生ASR,本地模型改local_asr
    "session_key": "default",
    "system_prompt": "你是一个简洁实用的语音助手,回答尽量口语化,控制在200字以内",
    "temperature": 0.7,
    "max_tokens": 512,
    "history_max_messages": 20,  # 上下文记忆长度
    "tts_speaker": "xiaoai",  # 用小爱原生TTS,也可替换为豆包音色
},

同时在环境变量配置里,开启OpenAI兼容服务开关: 编辑 docker-compose.yml,在environment段添加:

代码语言:javascript
复制
- OPENAI_ENABLE=1
- API_SERVER_ENABLE=1  # 可选,开启HTTP API控制接口

国内用户如果拉取官方镜像太慢,可以把docker-compose.yml里的镜像地址替换为国内镜像:image: ghcr.nju.edu.cn/coderzc/open-xiaoai-bridge:latest

5. 启动服务

代码语言:javascript
复制
# 后台启动服务
docker compose up -d

# 查看运行日志,确认启动成功
docker compose logs -f

看到日志里输出 server started on 0.0.0.0:4399 就说明服务端已经正常运行了。

音箱端对接:让小爱连上你的桥接服务

SSH登录到小爱音箱,执行以下命令,配置服务端地址并启动客户端:

代码语言:javascript
复制
# 创建工作目录
mkdir /data/open-xiaoai

# 配置桥接服务地址,替换成你部署服务端的局域网IP
echo 'ws://192.168.31.100:4399' > /data/open-xiaoai/server.txt

# 一键安装并启动客户端
curl -sSfL https://gitee.com/idootop/artifacts/releases/download/open-xiaoai-client/init.sh | sh

# 设置开机自启动(可选,推荐开启)
curl -L -o /data/init.sh https://gitee.com/idootop/artifacts/releases/download/open-xiaoai-client/boot.sh
reboot

音箱重启后,会自动连接到你的桥接服务,服务端日志里会出现设备连接成功的提示。

唤醒配置:自定义你的专属AI助手

默认还不能直接唤醒对话,需要配置唤醒词和路由规则,还是修改 config.py 文件。

1. 添加自定义唤醒词

找到 wakeup 配置段,添加你想要的唤醒词:

代码语言:javascript
复制
"wakeup": {
    "keywords": [
        "小黑同学",
        "你好小黑",
    ],
},

2. 配置唤醒路由,触发OpenAI对话

找到 before_wakeup 函数,添加路由逻辑:

代码语言:javascript
复制
async def before_wakeup(speaker, text, source, app):
    # 唤醒词触发,进入OpenAI连续对话
    if source == "kws":
        if "小黑" in text:
            await speaker.play(text="我在")
            return "openai"

    # 小爱语音指令触发单次对话
    if source == "xiaoai" and "问小黑" in text:
        await speaker.abort_xiaoai()
        await app.send_to_openai_and_play_reply(text.replace("问小黑", ""))
        return None

    # 不匹配则交给小爱原生处理
    return None

修改完成后,重启服务生效:

代码语言:javascript
复制
docker compose restart

现在对着音箱喊你的自定义唤醒词,就能直接和OpenAI对话了,全程连续多轮交互,不用反复唤醒,说完“再见”即可退出对话。

进阶玩法:不止是接OpenAI

1. 全链路本地化,完全离线使用

如果在意隐私安全,可以把整个链路全部换成本地服务:

  • 大模型:对接本地部署的Ollama,base_url填本地地址即可
  • ASR:切换为 local_asr 模式,用SenseVoice离线识别
  • TTS:接入本地语音合成服务,全程数据不出局域网,断网也能用

2. 一个音箱,多个专属AI助手

利用多唤醒词+Session路由,实现不同唤醒词对应不同模型/智能体:

代码语言:javascript
复制
AGENT_SESSIONS = {
    "代码助手": "gpt-4o",
    "生活顾问": "deepseek-chat",
    "闲聊模式": "qwen2.5-7b",
}

async def before_wakeup(speaker, text, source, app):
    if source == "kws":
        for keyword, model in AGENT_SESSIONS.items():
            if keyword in text:
                app.set_openai_session_key(model)
                await speaker.play(text=f"{keyword}在呢")
                return "openai"

3. 对接自动化,打造全屋语音通知

利用自带的HTTP API,可以对接任何自动化场景,比如服务器告警、快递提醒、门禁通知:

代码语言:javascript
复制
# 远程让音箱播放指定文字
curl -X POST http://服务端IP:9092/api/play/text \
  -H "Content-Type: application/json" \
  -d '{"text": "检测到服务器CPU占用超过90%,请及时处理"}'

新手常见踩坑排查

  1. 音箱连不上服务端 先检查两端是否在同一局域网,服务端4399端口是否开放,服务器防火墙是否放行;确认server.txt里的IP地址没有填错。
  2. 唤醒词没反应 先看服务端日志有没有音频流输入,没有的话检查客户端是否正常运行;识别不灵敏可以调低 vad.threshold 阈值,或者调大音频输入增益 audio_input.gain
  3. 容器里访问不到宿主机的本地大模型 Docker桥接模式下,容器的127.0.0.1指向容器自身,不能用localhost访问宿主机服务,需要填写宿主机的局域网IP,或者给容器添加 network_mode: host 配置。
  4. 话没说完AI就抢答 调大 vad.min_silence_duration 参数,单位是毫秒,默认值偏小的话,说话停顿一下就会被判定为说完,改成1000-1500即可改善。
参考链接
  1. https://github.com/coderzc/open-xiaoai/blob/main/docs/flash.md: https://github.com/coderzc/open-xiaoai/blob/main/docs/flash.md
  2. https://github.com/coderzc/open-xiaoai/blob/main/docs/client.md: https://github.com/coderzc/open-xiaoai/blob/main/docs/client.md
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源技术小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 先看看效果
  • 先搞懂这个项目到底做了什么
  • 前置准备:给小爱音箱开启底层权限
    • 重要风险提示
    • 核心操作目标(附官方教程)
  • 核心部署:10分钟搭好OpenAI桥接服务
    • 1. 基础环境准备
    • 2. 创建工作目录并下载配置文件
    • 3. 模型文件准备(新手可跳过)
    • 4. 核心配置:对接你的OpenAI服务
    • 5. 启动服务
  • 音箱端对接:让小爱连上你的桥接服务
  • 唤醒配置:自定义你的专属AI助手
    • 1. 添加自定义唤醒词
    • 2. 配置唤醒路由,触发OpenAI对话
  • 进阶玩法:不止是接OpenAI
    • 1. 全链路本地化,完全离线使用
    • 2. 一个音箱,多个专属AI助手
    • 3. 对接自动化,打造全屋语音通知
  • 新手常见踩坑排查
    • 参考链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档