基于INMP441和MAX7219的ESP32-S3關鍵字定位
離線語音關鍵字檢測采用ESP32-S3, INMP441和MAX7219。由Edge Impulse提供動力,不需要云,完全在設備上運行。
支持蕭ESP32-S3、INMP441麥克風和MAX7219 LED矩陣的離線語音關鍵字識別
本課題采用了一個XIAO ESP32-S3和一個INMP441 I2S麥克風來識別語音命令“halo esp”。當檢測到關鍵字時,它在MAX7219 8x8 LED矩陣(4個器件)上滾動“HALO”。如果聽到任何其他聲音或噪音,它會顯示“……“表示噪音,”no"表示未知的聲音。
整個系統(tǒng)離線運行,由Edge Impulse訓練的緊湊AI模型提供動力,確保快速可靠的關鍵字識別,無需互聯(lián)網(wǎng)或云服務。
硬件
?XIAO ESP32S3
?MAX 7219 LED點陣8x8 4器件
?麥克風inmp441 + I2S
?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 + I2S
- 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. 打開串口監(jiān)視器(波特率115200)
7. 在麥克風旁邊說“halo”。
?如果檢測到,LED矩陣將滾動“HALO”
?如果未檢測到,將顯示“NO”
在麥克風旁邊說“halo”。
?如果檢測到,LED矩陣將滾動“HALO”
?如果未檢測到,將顯示“NO”
本文編譯自hackster.io