基于INMP441和MAX7219的ESP32-S3关键字定位
扫描二维码
随时随地手机看文章
离线语音关键字检测采用ESP32-S3, INMP441和MAX7219。由Edge Impulse提供动力,不需要云,完全在设备上运行。
支持萧ESP32-S3、INMP441麦克风和MAX7219 LED矩阵的离线语音关键字识别
本课题采用了一个XIAO ESP32-S3和一个INMP441 I²S麦克风来识别语音命令“halo esp”。当检测到关键字时,它在MAX7219 8x8 LED矩阵(4个器件)上滚动“HALO”。如果听到任何其他声音或噪音,它会显示“……“表示噪音,”no"表示未知的声音。
整个系统离线运行,由Edge Impulse训练的紧凑AI模型提供动力,确保快速可靠的关键字识别,无需互联网或云服务。
硬件
•XIAO ESP32S3
•MAX 7219 LED点阵8x8 4器件
•麦克风inmp441 + I²S
•Male-female jumper wires
•面包板MB-102 830点无焊
软件
•Arduino IDE
•Edge Impulse Studio(用于培训和导出关键字识别模型)
必需的库
•MD_Parola.h
•MD_MAX72xx.h
•SPI.h
•driver/i2s.h
•freertos / FreeRTOS.h
接线图
•MAX 7219 LED点阵8x8 4器件
- VCC→5V
- GND→GND
- DIN→GPIO6
- CS→GPIO5
- CLK→GPIO7
•麦克风INMP 441 + I²S
- VCC→3V
- BCLK→GPIO2
- WS→GPIO3
- DIN→GPIO1
循序渐进的指导
1. 安装库
打开Arduino IDE,通过Library Manager安装以下库:
•MD_Parola
•MD_MAX72XX
•SPI
另外,安装导出为。zip文件的Edge Impulse库:
•进入Sketch→Include Library→Add .zip Library,并选择从Edge Impulse Deployment页面下载的.zip(例如,kamaru123-project- 1_inference .zip)。
注意:当您在Board Manager中选择XIAO ESP32-S3时,像driver/i2s.h和freertos/task.h这样的库是内置的。
2. Arduino代码
使用一个程序完成以下工作:
1. 通过I2S初始化INMP441麦克风
2. 使用边缘脉冲模型运行音频推理
3. 当检测到关键字“HALO esp”时,在MAX7219 LED矩阵上显示“HALO”
4. 如果无法识别关键字,则显示“NO”
5. 确保您的引脚配置匹配:
Max7219: din = gpio6, CLK = gpio7, cs = gpio5
Inmp441: BCK = gpio2, ws = gpio3, sd = gpio1
3. 上传并运行
1. 使用USB-C电缆将XIAO ESP32-S3连接到计算机
2. 开放Arduino IDE
3. 转到工具→板,选择:
✅XIAO_ESP32S3
4. 进入“工具→端口”,选择正确的COM端口
5. 点击上传按钮
6. 打开串口监视器(波特率115200)
7. 在麦克风旁边说“halo”。
✅如果检测到,LED矩阵将滚动“HALO”
❌如果未检测到,将显示“NO”
在麦克风旁边说“halo”。
✅如果检测到,LED矩阵将滚动“HALO”
❌如果未检测到,将显示“NO”
本文编译自hackster.io