【工业树莓派 CM0 NANO 单板计算机】小智语音聊天

【工业树莓派 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 的高精度语音唤醒功能,支持自定义唤醒词和实时检测。使用轻量级关键词检测模型,提供毫秒级响应速度。

模型下载

项目不包含模型文件,需要提前下载配置。

下载模型包

使用 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 领域的快速开发设计和应用提供了参考。

相关推荐
财迅通Ai10 小时前
兴业控股(00132.HK)落子粤西,医养版图再扩张:解码银发经济浪潮下的价值洼地
人工智能·兴业控股
threelab10 小时前
Three.js 数学函数着色器 | 三维可视化 / AI 提示词
javascript·人工智能·着色器
li-xun10 小时前
WildAI、2233.ai、0011.ai 怎么选?国内使用 ChatGPT、Claude、Claude Code 的方案对比
人工智能·chatgpt
葡萄城技术团队10 小时前
【突破 AI 执行瓶颈】Harness 工具集化身,SpreadJS 原子能力与 MCP 深度融合
人工智能
黎阳之光10 小时前
黎阳之光:视频孪生重构新能源智慧工地,打造大型风光基地数智化建设标杆
大数据·人工智能·物联网·安全·数字孪生
山西茄子10 小时前
DeepStream9.0 service-maker
人工智能·deepstream
人工智能AI技术10 小时前
失控AI代码问题丛生,Harness管控方案实战解析
人工智能
smileNicky10 小时前
Spring框架懒加载怎么实现?
python·spring·rpc
佳杰云星10 小时前
如何给大模型集群选“大脑”?智算调度与管理平台 10 维选型指南(附选型评分表)
人工智能·kubernetes·大模型·云计算·gpu·算力调度·智算中心
lilihuigz10 小时前
易服客工作室:WordPress 7.0 “Armstrong”发布
人工智能