Skip to content

AI小智(唤醒版)

介绍

和AI小智(按键版)比较, 增加了语音唤醒芯片支持AEC(回声消除)和端侧VAD(语音活动检测),可实现关键词(小智同学)唤醒。能为用户带来流畅的 AI 对话体验 。

功能说明

按键版和唤醒版硬件功能对比

AI小智(唤醒版) AI小智(按键板)
唤醒芯片 支持 不支持
KEY按键 支持 支持
PK按键 支持 不支持
LCD 不支持 支持
NET LED 不支持 支持
AI LED 支持 支持
  • KEY按键

    • 按下开始录音, 再按一下录音停止录音
  • PK按键

    • 长按开关机
    • 短按调节音量
  • AI灯

    • 灯常量:IDLE状态,等待说话/指令

    • 灯闪烁:对话过程中

    • 灯灭:服务器断开/进入睡眠

  • 音频

    • 上行: 录音并将录音数据转成opus数据流
    • 下行:播放服务器返回的opus数据流
  • 唤醒芯片

    • 关键词唤醒

    • 包含codec功能,录音和播放

固件下载

连接小智AI服务器

用户需访问小智AI官网并登录连接服务器

小智官网登陆网址https://xiaozhi.me/login

登录之后如图所示界面:

配置角色

用户可以新建智能体,并配置角色信息

基本原理介绍

通信协议

WebSocket 协议

WebSocket总体流程如下图所示:

HTTP协议

HTTP 协议用于设备与服务器之间的通信,获取验证码。

音频流数据

用户通过麦克风输入声音,设备端采集音频流,经 “Audio 服务 + 唤醒芯片” 处理。处理后的音频流通过 WebSocket 上传至小智 AI 服务器。服务器处理后,智能体下行音频流经 WebSocket 返回,设备接收后由 “Audio 服务 + 唤醒芯片” 播放,从喇叭输出。

唤醒功能

唤醒流程状态机迁移:

IDLE状态: 录音/播放结束后,进入IDLE状态。

sleep: IDLE状态超过60秒, 进入sleep状态, 此时必须通过唤醒词(小智同学)才能触发录音功能,开始对话。

非sleep状态:可以用任意语音唤醒/打断对话, 开始新的对话。

开发自己的AI玩具

准备AI板子开发环境

  • 硬件清单可以参考上文中的硬件搭建部分
  • AI服务器
  • yopen源码SDK库(YOPEN SDK链接,已经包含了开源的小智AI 代码)

搭建AI服务器

  • 若已经有AI服务器,请跳过该步骤

  • 若还没有服务器,可以参考开源服务器:xiaozhi-esp32-server

小智AI源码介绍

小智源码在components/demo/ai_xiaozhi目录下,主要包含以下文件:

源码 功能说明
xiaozhi_main.c 主要功能代码,串联按键、显示、音频播放等逻辑
xiaozhi_server.c 连接AI小智服务器,完成音频数据收发,以及AI接收服务器发送过程来的语音处理文字问题
xiaozhi_display.c 屏幕状态栏更新、文字显示(如不需要此功能,通过宏关闭即可)
xiaozhi_audio.c 完成录音、播放功能
xiaozhi_ota.c 验证码接收功能,OTA升级(待待开发)
xiaozhi_vbat.c 电源管理功能

让AI板子连接服务器

连接服务器主要包括以下两个部分:

  • 1、数据传输协议,确定AI板子和AI服务器之间的传输协议
  • 2、音频编码(录音)格式,音频解码(播放)格式

如果使用的是小智AI服务器,小智AI源码基本上不用修改。如果使用的是其他服务器,需要根据服务器使用的协议修改xiaozhi_server.c文件的逻辑,以及xiaozhi_audio.c文件,其他根据情况修改既可以。

## 演示视频

关联文档

AI开发板(唤醒) - YM310_X09&X19模组资料