【工业树莓派 CM0 NANO 单板计算机】小智语音聊天
本文介绍了树莓派 CM0 NANO 单板计算机通过本地部署 py-xiaozhi 小智实现 AI 智能体语音对话的项目设计。
项目介绍

该项目包括
- 环境搭建:拉取项目源码、安装所需软件包等;
- 程序运行:使用 CLI 模式运行程序;
- 设备激活:将验证码输入 xiaozhi.me 服务器账户,实现设备激活;
- 语音唤醒:下载模型、配置参数、使能语音唤醒,实现唤醒对话;
- 效果演示:动态演示对话效果。
详见:https://github.com/huangjunsen0406/py-xiaozhi
硬件连接
- 使用 WiFi 协议实现网络通信;
- 使用 USB 转 Audio 模块实现语音输入输出,即 AI 对话;
- 使用 Type-C 数据线实现设备供电;

环境搭建
开发板需安装树莓派官方最新操作系统,详见:https://www.raspberrypi.com/software/
拉取项目
bash
git clone https://bgithub.xyz/huangjunsen0406/py-xiaozhi.git
cd py-xiaozhi
安装依赖
bash
sudo apt install -y python3-pip
sudo pip3 install -r requirements.txt --break-system-packages
为了避免内存溢出,这里注释部分软件包
bash
sed -i 's/^numpy==/#numpy==/' requirements.txt
sed -i 's/^cryptography==/#cryptography==/' requirements.txt
sed -i '/^PyQt5/d' requirements.txt
sed -i '/^pygame/d' requirements.txt
sed -i 's/sherpa-onnx==1.12.8/sherpa-onnx>=1.12.19/' requirements.txt
sed -i '/^rich==/d' requirements.txt
sed -i '/^python-dateutil==/d' requirements.txt
安装 Qt 相关软件包
bash
sudo apt install -y python3-pyqt5 python3-pyqt5.qtwebengine
sudo apt install -y python3-pyqt5.qtquick qml-module-qtquick2 qml-module-qtquick-controls2
代码格式化
bash
./format_code.sh
程序运行
运行程序 - CLI模式
bash
python main.py --mode cli
初始化

输入验证码

-
进入 xiaozhi.me 官网,登录账户,点击添加设备,输入验证码;

设备激活
验证码输入后,自动激活设备,终端打印激活日志

自动进入对话界面

效果演示
终端 GUI 界面

动态演示
通过终端窗口可实现与小智的对话

执行快捷键 Ctrl + C 即可退出应用。
语音唤醒
py-xiaozhi 集成了基于 Sherpa-ONNX 的高精度语音唤醒功能,支持自定义唤醒词和实时检测。使用轻量级关键词检测模型,提供毫秒级响应速度。
模型下载
项目不包含模型文件,需要提前下载配置。
- 官方模型列表: https://csukuangfj.github.io/sherpa/onnx/kws/pretrained_models/index.html
- 推荐模型:
sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01
下载模型包
使用 wget 工具获取模型文件并解压
bash
cd ~/py-xiaozhi
wget https://bgithub.xyz/k2-fsa/sherpa-onnx/releases/download/kws-models/sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01.tar.bz2
tar xvf sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01.tar.bz2
配置方案
bash
cd sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01
# 复制速度优先的 epoch-99 int8 三件套
cp encoder-epoch-99-avg-1-chunk-16-left-64.int8.onnx ../models/encoder.onnx
cp decoder-epoch-99-avg-1-chunk-16-left-64.onnx ../models/decoder.onnx
cp joiner-epoch-99-avg-1-chunk-16-left-64.int8.onnx ../models/joiner.onnx
# 复制配套文件
cp tokens.txt ../models/tokens.txt
配置完成后,~/py-xiaozhi/models 目录应包含
models/
├── encoder.onnx # 编码器模型(重命名后)
├── decoder.onnx # 解码器模型(重命名后)
├── joiner.onnx # 连接器模型(重命名后)
├── tokens.txt # 拼音Token映射表(228行版本)
├── keywords.txt # 关键词配置文件(需创建)
└── keywords_raw.txt # 原始关键词文件(可选)
启用语音唤醒
通过修改配置文件,实现 Xiaozhi 的语音唤醒。
打开 ~/py-xiaozhi/config/config.json 检查并确认存在如下字段
json
{
"WAKE_WORD_OPTIONS": {
"USE_WAKE_WORD": true,
"MODEL_PATH": "models",
"NUM_THREADS": 4,
"PROVIDER": "cpu",
"MAX_ACTIVE_PATHS": 2,
"KEYWORDS_SCORE": 1.8,
"KEYWORDS_THRESHOLD": 0.2,
"NUM_TRAILING_BLANKS": 1
}
}
重启客户端
终端执行如下指令,重启客户端
bash
python main.py --mode cli
日志出现:
KWS模型加载成功: encoder.onnx
即可语音唤醒 Xiaozhi 并对话。

详见:语音唤醒功能|PY-XIAOZHI .
总结
本文介绍了树莓派 CM0 NANO 单板计算机通过本地部署 py-xiaozhi 小智实现 AI 智能体语音对话的项目设计,为相关产品在工业 AI 领域的快速开发设计和应用提供了参考。