【工业树莓派 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/

拉取项目

git clone https://bgithub.xyz/huangjunsen0406/py-xiaozhi.git
cd py-xiaozhi

安装依赖

sudo apt install -y python3-pip
sudo pip3 install -r requirements.txt --break-system-packages

为了避免内存溢出,这里注释部分软件包

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 相关软件包

sudo apt install -y python3-pyqt5 python3-pyqt5.qtwebengine
sudo apt install -y python3-pyqt5.qtquick qml-module-qtquick2 qml-module-qtquick-controls2

代码格式化

./format_code.sh

程序运行

运行程序 - CLI模式

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 工具获取模型文件并解压

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
配置方案
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 检查并确认存在如下字段

{
  "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
  }
}

重启客户端

终端执行如下指令,重启客户端

python main.py --mode cli

日志出现:

KWS模型加载成功: encoder.onnx

即可语音唤醒 Xiaozhi 并对话。

在这里插入图片描述

详见:语音唤醒功能|PY-XIAOZHI .

总结

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

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐