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

相关推荐
杰瑞不懂代码1 小时前
【公式推导】AMP算法比BP算法强在哪(二)
python·算法·机器学习·概率论
智算菩萨1 小时前
深度学习在软件工程领域的系统性研究综述:理论、方法与实践
人工智能·深度学习·软件工程
清风6666661 小时前
基于单片机的智能自动开关窗系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
这张生成的图像能检测吗1 小时前
(论文速读)DreamOmni:统一的图像生成和编辑
人工智能·深度学习·计算机视觉·图像生成、编辑
IT阳晨。1 小时前
【STM32】矩阵键盘门禁项目(详细注释版)
stm32·嵌入式硬件
BlackPercy1 小时前
[Matplotlib] 动态视频生成
python·matplotlib
SDAU20051 小时前
ESP32C3在Arduino下的串口操作集锦
单片机·嵌入式硬件
工藤学编程1 小时前
零基础学AI大模型之新版LangChain向量数据库VectorStore设计全解析
数据库·人工智能·langchain
B站计算机毕业设计之家1 小时前
大数据:基于python唯品会商品数据可视化分析系统 Flask框架 requests爬虫 Echarts可视化 数据清洗 大数据技术(源码+文档)✅
大数据·爬虫·python·信息可视化·spark·flask·唯品会