ESP32語音交互之二----------------------ESP32-LyraTv4.3開發板運行ESP-Skainet包中的get_started 例程

     ESP-Skainet包是樂鑫針對語音喚醒和命令詞的一個專用軟件包,地址:https://github.com/espressif/esp-skainet,我們先看下這個包的目錄:

componets文件夾裏面是一些模塊組件,這個項目裏只有三:esp-sr,esp-tts,hardware_driver。

docs文件夾裏是一些文檔。

esp-idf文件夾是這套框架的核心idf,後面的143d26a對應着對應的貌似是v3.3.2,雖然後面備註的是3.3.1,這個文件夾的內容也是克隆時最緩慢的,需要耐心等待,需要說明的是ESP-Skainet包和esp-adf包一樣,只支持v3.3.1和v3.3.2版的IDF。

examples裏面是例程,提供了6個例程。

img裏面5張圖片幫助你理解語音識別的過程和配置流程。

tools裏面是編譯工具鏈。

   接下來我們我們嘗試下examples裏的get_started例程,所用開發板是ESP32-LyraTv4.3開發板,本例程推薦的是 ESP32-LyraT-Mini 和 ESP32-Korvo V1.1兩款開發板,那麼這兩開發板和ESP32-LyraTv4.3有何區別?區別主要是來自音頻處理,ESP32-LyraT採用的集中式的音頻編解碼,用的ES8288芯片,ESP32-LyraT-Mini 和 ESP32-Korvo V1.1不是採用這種模式,音頻輸入端多了一顆ADC芯片,整個驅動流程有所差異。

    

   先make menuconfig配置編譯信息:

1.喚醒詞和命令詞可以默認即可。

2.flash模式

3.板卡選擇

4.分區表,可以用例程目錄下的CSV文件,也可以自己定義

5.編譯選項,這個例程需要選擇Release

6.RAM芯片選擇,選auto

    確認後保存退出,就可以make了,編譯可能要差不多20分鐘,用燒錄工具燒錄:

    編譯出來的三個文件都在例程的build目錄裏,bootloader在build文件夾下的bootloader文件夾內,按照分區表的地址填右邊的燒錄地址,然後開發板上電,填好串口和波特率,同時按住boot和RST鍵,點擊燒錄軟件下面的ATART,看到開始燒錄鬆開RST鍵,可以看見下面的燒錄進度條開始移動,燒錄開始,可以鬆開boot鍵了。等待燒錄完成,打開串口終端,填好串口號和波爾率,記住這個串口監視波特率有可能和剛纔的燒寫波特率不一樣,這個是你在配置時要注意的:

上面的是燒錄波特率,下面的是監視波特率,你也可以設置成一樣,以免忘記。上電開發板,按RST鍵,打印信息就出來了:

ets Jun  8 2016 00:22:57[2020-05-21 11:12:52.793]
[2020-05-21 11:12:52.793]
rst:0x1 (POWERON_RESET),boot:0x3f (SPI_FAST_FLASH_BOOT)[2020-05-21 11:12:52.800]
flash read err, 1000[2020-05-21 11:12:52.800]
ets_main.c 371 [2020-05-21 11:12:52.800]
ets Jun  8 2016 00:22:57[2020-05-21 11:12:53.175]
[2020-05-21 11:12:53.175]
rst:0x10 (RTCWDT_RTC_RESET),boot:0x3f (SPI_FAST_FLASH_BOOT)[2020-05-21 11:12:53.181]
configsip: 0, SPIWP:0xee[2020-05-21 11:12:53.181]
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00[2020-05-21 11:12:53.186]
mode:DIO, clock div:1[2020-05-21 11:12:53.191]
load:0x3fff0018,len:4[2020-05-21 11:12:53.191]
load:0x3fff001c,len:6764[2020-05-21 11:12:53.196]
load:0x40078000,len:11116[2020-05-21 11:12:53.196]
ho 0 tail 12 room 4[2020-05-21 11:12:53.196]
load:0x40080400,len:6004[2020-05-21 11:12:53.202]
entry 0x40080704[2020-05-21 11:12:53.202]
[0;32mI (61) boot: Chip Revision: 1[0m[2020-05-21 11:12:53.208]
[0;32mI (69) boot_comm: chip revision: 1, min. bootloader chip revision: 0[0m[2020-05-21 11:12:53.215]
[0;32mI (40) boot: ESP-IDF v3.3.2-107-g722043f73-dirty 2nd stage bootloader[0m[2020-05-21 11:12:53.221]
[0;32mI (40) boot: compile time 16:56:23[0m[2020-05-21 11:12:53.227]
[0;32mI (70) boot: Enabling RNG early entropy source...[0m[2020-05-21 11:12:53.246]
[0;32mI (70) boot: SPI Speed      : 80MHz[0m[2020-05-21 11:12:53.251]
[0;32mI (70) boot: SPI Mode       : DIO[0m[2020-05-21 11:12:53.256]
[0;32mI (72) boot: SPI Flash Size : 4MB[0m[2020-05-21 11:12:53.262]
[0;32mI (76) boot: Partition Table:[0m[2020-05-21 11:12:53.262]
[0;32mI (80) boot: ## Label            Usage          Type ST Offset   Length[0m[2020-05-21 11:12:53.273]
[0;32mI (87) boot:  0 factory          factory app      00 00 00010000 003c0000[0m[2020-05-21 11:12:53.279]
[0;32mI (94) boot:  1 nvs              WiFi data        01 02 003d0000 00004000[0m[2020-05-21 11:12:53.284]
[0;32mI (102) boot: End of partition table[0m[2020-05-21 11:12:53.290]
[0;32mI (106) boot_comm: chip revision: 1, min. application chip revision: 0[0m[2020-05-21 11:12:53.297]
[0;32mI (113) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x15fc2c (1440812) map[0m[2020-05-21 11:12:53.311]
[0;32mI (523) esp_image: segment 1: paddr=0x0016fc54 vaddr=0x3ffb0000 size=0x003bc (   956) load[0m[2020-05-21 11:12:53.705]
[0;32mI (524) esp_image: segment 2: paddr=0x00170018 vaddr=0x400d0018 size=0x266d8 (157400) map[0m[2020-05-21 11:12:53.716]
[0;32mI (574) esp_image: segment 3: paddr=0x001966f8 vaddr=0x3ffb03bc size=0x01db4 (  7604) load[0m[2020-05-21 11:12:53.758]
[0;32mI (576) esp_image: segment 4: paddr=0x001984b4 vaddr=0x40080000 size=0x00400 (  1024) load[0m[2020-05-21 11:12:53.767]
[0;32mI (581) esp_image: segment 5: paddr=0x001988bc vaddr=0x40080400 size=0x0c2b4 ( 49844) load[0m[2020-05-21 11:12:53.778]
[0;32mI (614) boot: Loaded app from partition at offset 0x10000[0m[2020-05-21 11:12:53.800]
[0;32mI (614) boot: Disabling RNG early entropy source...[0m[2020-05-21 11:12:53.812]
[0;32mI (614) psram: This chip is ESP32-D0WD[0m[2020-05-21 11:12:53.812]
[0;32mI (619) spiram: Found 32MBit SPI RAM device[0m[2020-05-21 11:12:53.812]
[0;32mI (623) spiram: SPI RAM mode: flash 80m sram 80m[0m[2020-05-21 11:12:53.812]
[0;32mI (629) spiram: PSRAM initialized, cache is in low/high (2-core) mode.[0m[2020-05-21 11:12:53.827]
[0;32mI (636) cpu_start: Pro cpu up.[0m[2020-05-21 11:12:53.827]
[0;32mI (640) cpu_start: Application information:[0m[2020-05-21 11:12:53.840]
[0;32mI (645) cpu_start: Project name:     get_started[0m[2020-05-21 11:12:53.840]
[0;32mI (650) cpu_start: App version:      v0.3.0-12-g125c0a8-dirty[0m[2020-05-21 11:12:53.840]
[0;32mI (656) cpu_start: Compile time:     May 21 2020 16:57:19[0m[2020-05-21 11:12:53.860]
[0;32mI (662) cpu_start: ELF file SHA256:  3282421d813b9c3f...[0m[2020-05-21 11:12:53.860]
[0;32mI (668) cpu_start: ESP-IDF:          v3.3.2-107-g722043f73-dirty[0m[2020-05-21 11:12:53.873]
[0;32mI (675) cpu_start: Starting app cpu, entry point is 0x400811dc[0m[2020-05-21 11:12:53.873]
[0;32mI (0) cpu_start: App cpu up.[0m[2020-05-21 11:12:53.873]
[0;32mI (1155) spiram: SPI SRAM memory test OK[0m[2020-05-21 11:12:54.331]
[0;32mI (1155) heap_init: Initializing. RAM available for dynamic allocation:[0m[2020-05-21 11:12:54.343]
[0;32mI (1156) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM[0m[2020-05-21 11:12:54.357]
[0;32mI (1162) heap_init: At 3FFB32A8 len 0002CD58 (179 KiB): DRAM[0m[2020-05-21 11:12:54.357]
[0;32mI (1168) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM[0m[2020-05-21 11:12:54.374]
[0;32mI (1175) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM[0m[2020-05-21 11:12:54.374]
[0;32mI (1181) heap_init: At 4008C6B4 len 0001394C (78 KiB): IRAM[0m[2020-05-21 11:12:54.374]
[0;32mI (1187) cpu_start: Pro cpu start user code[0m[2020-05-21 11:12:54.395]
[0;32mI (1192) spiram: Adding pool of 4096K of external SPI memory to heap allocator[0m[2020-05-21 11:12:54.395]
[0;32mI (94) cpu_start: Starting scheduler on PRO CPU.[0m[2020-05-21 11:12:54.395]
[0;32mI (0) cpu_start: Starting scheduler on APP CPU.[0m[2020-05-21 11:12:54.410]
[0;32mI (95) spiram: Reserving pool of 32K of internal memory for DMA/internal allocations[0m[2020-05-21 11:12:54.410]
[0;32mI (95) I2S: DMA Malloc info, datalen=blocksize=1200, dma_buf_count=3[0m[2020-05-21 11:12:54.426]
[0;32mI (105) I2S: DMA Malloc info, datalen=blocksize=1200, dma_buf_count=3[0m[2020-05-21 11:12:54.426]
[0;32mI (115) I2S: APLL: Req RATE: 16000, real rate: 15999.986, BITS: 16, CLKM: 1, BCK_M: 8, MCLK: 4095996.500, SCLK: 511999.562500, diva: 1, divb: 0[0m[2020-05-21 11:12:54.442]
[0;32mI (145) gpio: GPIO[21]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 [0m[2020-05-21 11:12:54.457]
[0;32mI (145) MEDIA_HAL: I2S_OUT_VOL_DEFAULT[60][0m[2020-05-21 11:12:54.457]
[0;32mI (145) MEDIA_HAL: CONFIG_CODEC_CHIP_IS_ES8388[0m[2020-05-21 11:12:54.479]
Quantized wakeNet5: wakeNet5_v1_nihaoxiaozhi_6_0.983_0.95, mode:0 (Mar 30 2020 20:16:38)[2020-05-21 11:12:54.479]
SINGLE_RECOGNITION: 2_0 MN1_4; core: 0; (Apr 26 2020 17:05:05)[2020-05-21 11:12:54.479]
SHIFT: 8, 12, 17, 17, 19, 17, 6, 16, 15, 14, [2020-05-21 11:12:54.492]
[0;32mI (165) MN: ---------------------SPEECH COMMANDS---------------------[0m[2020-05-21 11:12:54.492]
[0;32mI (175) MN: Command ID0, phrase 0: da kai kong tiao[0m[2020-05-21 11:12:54.492]
[0;32mI (185) MN: Command ID1, phrase 1: guan bi kong tiao[0m[2020-05-21 11:12:54.509]
[0;32mI (185) MN: Command ID2, phrase 2: zeng da feng su[0m[2020-05-21 11:12:54.509]
[0;32mI (195) MN: Command ID3, phrase 3: jian xiao feng su[0m[2020-05-21 11:12:54.509]
[0;32mI (195) MN: Command ID4, phrase 4: sheng gao yi du[0m[2020-05-21 11:12:54.509]
[0;32mI (205) MN: ---------------------------------------------------------[2020-05-21 11:12:54.524]
[0m[2020-05-21 11:12:54.524]
chunk_num = 133[2020-05-21 11:12:54.524]
-----------awaits to be waken up-----------[2020-05-21 11:12:54.524]
可見我的喚醒詞是:你好小智,然後5句命令詞:

1打開空調,2關閉空調,3增大風速,4減小風速,5升高一度

對着開發板說喚醒詞,可見串口打印出:

141.72: nihaoxiaozhi DETECTED.[2020-05-21 11:15:16.280]
-----------------LISTENING-----------------[2020-05-21 11:15:16.291]
[2020-05-21 11:15:16.291]

然後說出命令詞:打開空調,打印出命令詞對應的ID

Commands ID: 0.[2020-05-21 11:15:19.264]
[2020-05-21 11:15:19.264]
-----------awaits to be waken up-----------[2020-05-21 11:15:19.264]

還好,這個例程ESP32-LyraTv4.3開發板完全沒問題,運行OK!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章