基于INMP441和MAX7219的ESP32-S3關(guān)鍵字定位
掃描二維碼
隨時(shí)隨地手機(jī)看文章
離線語音關(guān)鍵字檢測(cè)采用ESP32-S3, INMP441和MAX7219。由Edge Impulse提供動(dòng)力,不需要云,完全在設(shè)備上運(yùn)行。
支持蕭ESP32-S3、INMP441麥克風(fēng)和MAX7219 LED矩陣的離線語音關(guān)鍵字識(shí)別
本課題采用了一個(gè)XIAO ESP32-S3和一個(gè)INMP441 I2S麥克風(fēng)來識(shí)別語音命令“halo esp”。當(dāng)檢測(cè)到關(guān)鍵字時(shí),它在MAX7219 8x8 LED矩陣(4個(gè)器件)上滾動(dòng)“HALO”。如果聽到任何其他聲音或噪音,它會(huì)顯示“……“表示噪音,”no"表示未知的聲音。
整個(gè)系統(tǒng)離線運(yùn)行,由Edge Impulse訓(xùn)練的緊湊AI模型提供動(dòng)力,確保快速可靠的關(guān)鍵字識(shí)別,無需互聯(lián)網(wǎng)或云服務(wù)。
硬件
?XIAO ESP32S3
?MAX 7219 LED點(diǎn)陣8x8 4器件
?麥克風(fēng)inmp441 + I2S
?Male-female jumper wires
?面包板MB-102 830點(diǎn)無焊
軟件
?Arduino IDE
?Edge Impulse Studio(用于培訓(xùn)和導(dǎo)出關(guān)鍵字識(shí)別模型)
必需的庫
?MD_Parola.h
?MD_MAX72xx.h
?SPI.h
?driver/i2s.h
?freertos / FreeRTOS.h
接線圖
?MAX 7219 LED點(diǎn)陣8x8 4器件
- VCC→5V
- GND→GND
- DIN→GPIO6
- CS→GPIO5
- CLK→GPIO7
?麥克風(fēng)INMP 441 + I2S
- VCC→3V
- BCLK→GPIO2
- WS→GPIO3
- DIN→GPIO1
循序漸進(jìn)的指導(dǎo)
1. 安裝庫
打開Arduino IDE,通過Library Manager安裝以下庫:
?MD_Parola
?MD_MAX72XX
?SPI
另外,安裝導(dǎo)出為。zip文件的Edge Impulse庫:
?進(jìn)入Sketch→Include Library→Add .zip Library,并選擇從Edge Impulse Deployment頁面下載的.zip(例如,kamaru123-project- 1_inference .zip)。
注意:當(dāng)您在Board Manager中選擇XIAO ESP32-S3時(shí),像driver/i2s.h和freertos/task.h這樣的庫是內(nèi)置的。
2. Arduino代碼
使用一個(gè)程序完成以下工作:
1. 通過I2S初始化INMP441麥克風(fēng)
2. 使用邊緣脈沖模型運(yùn)行音頻推理
3. 當(dāng)檢測(cè)到關(guān)鍵字“HALO esp”時(shí),在MAX7219 LED矩陣上顯示“HALO”
4. 如果無法識(shí)別關(guān)鍵字,則顯示“NO”
5. 確保您的引腳配置匹配:
Max7219: din = gpio6, CLK = gpio7, cs = gpio5
Inmp441: BCK = gpio2, ws = gpio3, sd = gpio1
3. 上傳并運(yùn)行
1. 使用USB-C電纜將XIAO ESP32-S3連接到計(jì)算機(jī)
2. 開放Arduino IDE
3. 轉(zhuǎn)到工具→板,選擇:
?XIAO_ESP32S3
4. 進(jìn)入“工具→端口”,選擇正確的COM端口
5. 點(diǎn)擊上傳按鈕
6. 打開串口監(jiān)視器(波特率115200)
7. 在麥克風(fēng)旁邊說“halo”。
?如果檢測(cè)到,LED矩陣將滾動(dòng)“HALO”
?如果未檢測(cè)到,將顯示“NO”
在麥克風(fēng)旁邊說“halo”。
?如果檢測(cè)到,LED矩陣將滾動(dòng)“HALO”
?如果未檢測(cè)到,將顯示“NO”
本文編譯自hackster.io