xiaoAI项目:open-xiaoai/docs/flash.md at main · idootop/open-xiaoai
我的小爱音箱是老款PRO所以刷了xiaoAI
按照教程就行了
拆除底部即可螺丝,从上面晚上提出来一点点就是Micro USB

接上数据线,记住一定是数据线不能是充电线
首先,下载或自行制作补丁固件,重命名为 root_patched.squashfs。
然后,下载刷机工具:https://androidmtk.com/download-amlogic-flash-tool
把下载好的刷机工具文件夹解压到桌面,重命名为 Amlogic_Flash_Tool_v6.0.0
安装目录下面的驱动程序

然后数据线连接电脑,先不插电,下载git并安装,进入程序的bin目录

先输入好命令,插电音箱灯亮的同时回车,按键盘的↑键后回车,多按几次,直到出现下面的提示,记住要在1秒内,插上电以后会听到叮咚的提示音

然后重命名固件为root_patched.squashfs拷贝到程序的bin目录,记住是bin目录
然后执行官方命令:
# 🚗 第 1 步:拔掉小爱音箱的电源线,重新插上电源后,立即在终端执行以下命令
./update.exe identify
# 如果显示类似下面的内容,说明小爱音箱已经成功连接到了电脑,可以继续进行下一步
# This firmware version is 0-7-0-16-0-0-0-0
# 否则继续快速重试几次该命令,或者重新拔掉电源上电后重试,直至显示出来版本号。
# ⏰ 第 2 步:设置启动分区和等待时长
# 设置 uboot 启动等待 15s
./update.exe bulkcmd "setenv bootdelay 15"
# 设置 boot0 作为启动分区
./update.exe bulkcmd "setenv boot_part boot0"
# 保存环境变量,使生效
./update.exe bulkcmd "saveenv"
# ⚡️ 第 3 步:刷入 system0
./update.exe partition system0 root_patched.squashfs
# 注意:需要把 root_patched.squashfs 替换成你下载的补丁固件实际路径
完成
如果之后你想要更新系统,或者换回原来的系统,将启动分支设置成 boot1 重启即可。
# 连接到 SSH 后执行
fw_env -s boot_part boot1
# 或者使用和上面刷机相同的方式
./update.exe bulkcmd "setenv boot_part boot1"
./update.exe bulkcmd "saveenv"
连接小米音箱
ssh -o HostKeyAlgorithms=+ssh-rsa root@192.168.31.13
会问是否连接输入yes,要求输入密码 ,密码是:open-xiaoai

安装服务端
下载项目文件:
git clone https://github.com/idootop/open-xiaoai.git
cd open-xiaoai
增加目录中config.py的内容:
import asyncio
async def before_wakeup(speaker, text, source):
"""
处理收到的用户消息,并决定是否唤醒小智 AI
- source: 唤醒来源
- 'kws': 关键字唤醒
- 'xiaoai': 小爱同学收到用户指令
"""
if source == "kws":
# 播放唤醒提示语
await speaker.play(text="你好主人,我是小智,请问有什么吩咐?")
# 返回 True 唤醒小智 AI
return True
if source == "xiaoai" and text == "召唤小智":
# 打断原来的小爱同学
await speaker.abort_xiaoai()
# 等待 2 秒,让小爱 TTS 恢复可用
await asyncio.sleep(2)
# 播放唤醒提示语(如果你不使用自带的小爱 TTS,可以去掉上面的延时)
await speaker.play(text="小智来了,主人有什么吩咐?")
# 唤醒小智 AI
return True
async def after_wakeup(speaker):
"""
退出唤醒状态
"""
await speaker.play(text="主人再见,拜拜")
APP_CONFIG = {
"wakeup": {
# 自定义唤醒词列表(英文字母要全小写)
"keywords": [
"天猫精灵",
"小度小度",
"豆包豆包",
"你好小智",
"你好小爱",
"hi siri",
"hey siri",
],
# 静音多久后自动退出唤醒(秒)
"timeout": 20,
# 语音识别结果回调
"before_wakeup": before_wakeup,
# 退出唤醒时的提示语(设置为空可关闭)
"after_wakeup": after_wakeup,
},
"vad": {
#录音音量增强倍数(小爱音箱录音音量较小,需要后期放大一下)
"bootst":10,
# 语音检测阈值(0-1,越小越灵敏)
"threshold": 0.10,
# 最小语音时长(ms)
"min_speech_duration": 250,
# 最小静默时长(ms)
"min_silence_duration": 500,
},
"xiaozhi": {
"OTA_URL": "https://api.tenclass.net/xiaozhi/ota/",
"WEBSOCKET_URL": "wss://api.tenclass.net/xiaozhi/v1/",
"WEBSOCKET_ACCESS_TOKEN": "", #(可选)一般用不到这个值
"DEVICE_ID": "", #(可选)默认自动生成
"VERIFICATION_CODE": "", # 首次登陆时,验证码会在这里更新
},
}
新建一个docker-compose.yml
vi docker-compose.yml
内容填写:
version: '3.8'
services:
xiaoai:
image: idootop/open-xiaoai-xiaozhi:latest
container_name: xiaoai-assistant
ports:
- "4399:4399"
volumes:
- ./config.py:/app/config.py
stdin_open: true
tty: true
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- PYTHONPATH=/app
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
构建镜像并启动容器
docker-compose up -d
在小爱音箱中安装客户端
创建 open-xiaoai 文件夹并进入
mkdir /data/open-xiaoai
cd /data/open-xiaoai
设置server地址
设置 server 地址(注意替换成自己的 server 地址,这里的server地址就是上面启动docker服务的机器的地址,如不知道可去路由器进行查询)
echo 'ws://192.168.50.237:4399' > /data/open-xiaoai/server.txt
下载并运行脚本
下载 boot.sh 文件到 /data/init.sh 开机时自启动
curl -L -o /data/init.sh https://gitee.com/idootop/artifacts/releases/download/open-xiaoai-client/boot.sh
重启小爱音箱