【工业树莓派 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 领域的快速开发设计和应用提供了参考。

相关推荐
阳光是sunny8 小时前
别再被 worktree 绕晕了!AI 编程时代你必须掌握的 Git 隔离神器
前端·人工智能·后端
冬奇Lab9 小时前
每日一个开源项目(第148篇):obsidian-skills - Obsidian CEO 亲写的 AI Agent 格式规范,让 Agent 不再破坏你的 Vault
人工智能·开源·资讯
ethantan9 小时前
AI Agent 组成:像人一样思考的智能体
人工智能·程序员·架构
冬奇Lab9 小时前
Workflow 系列(05):评测体系——三层测试结构与 Trace 追踪
人工智能·工作流引擎
ethantan10 小时前
一篇讲解AI Agent 组成:像人一样思考的智能体
人工智能·后端·程序员
apocelipes11 小时前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
Cosolar12 小时前
vLLM 生产级部署完全指南
人工智能·后端·架构
CodePlayer竟然被占用了12 小时前
被美国政府封杀18天,Claude Fable 5 回来了——但代价是什么?
人工智能
IT_陈寒12 小时前
垃圾回收器选错了,我的Java服务内存炸了
前端·人工智能·后端
smartpi13 小时前
SmartPi GPIO 脉冲与回复语执行时序指南
人工智能