【K230/K230D新技能点亮】CanMV K230 MicroPython版小智语音助手正式上线,速来体验

Viewed 154

问题描述


今天给大家带来重磅更新:CanMV K230 MicroPython 小智语音助手完整例程正式发布!

无需复杂C代码开发,依托MicroPython极简语法,在K230/K230D开发板快速搭建带IoT设备控制、人脸唤醒的本地语音助手,云端对话、TTS播报、硬件联动一站式搞定。
image.png

一、方案整体概述

本次发布的小智语音助手例程,专为CanMV K230平台打造,基于WebSocket连接云端小智服务,完整覆盖语音采集、ASR语音识别、LLM大模型对话、TTS语音播放、人脸唤醒、IoT设备控制全链路能力。 例程源码路径:resources/examples/26-xiaozhi,烧录至SD卡即可在CanMV VSCode 插件直接运行。

硬件适配清单

  • 主控:CanMV K230 / K230D开发板
  • 外设:摄像头、板载麦克风、扬声器/耳机
  • 交互按键:默认GPIO21(低电平触发录音)
  • 状态指示灯:默认GPIO52,可在代码内自定义修改

网络要求
开发板接入WiFi/LAN网络,可正常访问云端服务地址api.tenclass.net,首次运行需完成设备网页激活。

二、三步快速上手运行

设备激活(首次运行必做)

  1. 在CanMV插件运行/sdcard/examples/26-xiaozhi/run.py;
  2. 查看串口日志获取设备激活码;
  3. 浏览器打开官网 https://xiaozhi.me/ 输入激活码完成绑定;
  4. 激活成功后重启脚本,即可正常建立云端连接。

启动程序

# 基础启动,使用默认按键、LED引脚
main()
# 自定义硬件引脚启动
main(key_pin=21, led_pin=52)

修改 run.py 顶部KEY_PIN、LED_PIN参数,适配自有硬件接线。

标准交互流程

  1. 等待界面显示等待按键唤醒后,再进行操作;
  2. 按住对话按键录音,松开自动上传语音至云端;
  3. 云端返回文本+语音,板端自动播放TTS字幕;
  4. 支持人脸注册唤醒,识别到已录入人脸无需按键即可对话。
    ⚠️ 重要提示:网络连接、设备激活未完成前按键,会出现连接报错,耐心等待就绪状态再交互。

三、模块化代码架构 二次开发零门槛

整套例程分层解耦,每个模块职责清晰,开发者可按需裁剪、新增自定义硬件能力:

run.py                # 程序入口、UI主循环、资源回收
xiaozhiclient.py      # 业务核心:设备激活、会话管理、消息分发
websocket_client.py   # WSS长连接、音频二进制帧收发
audio_manager.py      # 录音采集、Opus编解码、TTS播放缓冲队列
config.py             # 设备UUID、服务器地址、全局配置管理
lvgl_ai.py            # LVGL可视化界面、摄像头人脸渲染
face_reg_rec.py       # 人脸检测、人脸注册唤醒逻辑
iot/                  # IoT/MCP设备抽象层
├── thing_manager.py  # 设备统一管理、云端命令分发
└── things/speaker.py # 示例硬件:扬声器音量控制

核心数据流

按键录音 → Opus编码上传云端 → 云端ASR+LLM+TTS处理 → 下发语音文本 → 板端音频播放+UI状态同步; 云端下发IoT控制指令 → ThingManager调度硬件执行,同步设备状态回传。

四、IoT/MCP硬件控制能力亮点

本套例程原生支持MCP工具调用与IoT设备联动,快速实现语音控制硬件:

  1. 能力自动上报:握手消息声明MCP支持,云端自动识别板端可控设备;
  2. 标准化设备模型:统一Thing抽象类,新增传感器、电机、屏幕仅需继承扩展;
  3. 语音下发指令执行:通过云端对话直接下发控制命令,例如语音调节扬声器音量;
  4. 状态实时回传:硬件参数变更后自动同步状态至云端。

新增自定义硬件参考模板:iot/things/speaker.py,注册至ThingManager即可使用。

五、界面状态说明 快速定位运行问题

界面状态文案 对应含义
网络连接中,请稍后 WebSocket未就绪,请勿按键
等待按键唤醒 系统就绪,可正常对话
等待您的指令 系统就绪,可正常对话(等待用户输入)
正在录音,保持按住按键说话 用户正在录音输入中
获取指令结束 松开按键,语音上传中
说话中/说话结束 用户语音输入完成 / 结束
TTS语音播放进程状态 系统正在播放或处理语音回复

六、开发注意事项

  1. 散热与供电:人脸检测+音频解码算力占用较高,长时间运行保证稳定供电与散热;
  2. 网络环境:首次激活依赖HTTPS/WSS接口,防火墙、代理请勿拦截域名;
  3. 程序退出:CanMV有停止运行按键,按下之后系统自动回收摄像头、音频、网络资源;
  4. 存储依赖:SD卡需完整存放字体、表情等UI资源,缺失会导致界面异常。

七、开发文档&源码获取

完整技术讲解文档:https://www.kendryte.com/k230_canmv/zh/main/example/xiaozhi/xiaozhi.html

源码仓库路径:resources/examples/26-xiaozhi

1 Answers