From fe63de89b337e67a6c59734ec68f873bde0fe9e6 Mon Sep 17 00:00:00 2001 From: xysun Date: Thu, 8 Aug 2024 11:09:10 +0800 Subject: [PATCH 1/2] fix(afe): fix float precision errors --- include/esp32p4/esp_afe_config.h | 8 ++++---- lib/esp32p4/libesp_audio_front_end.a | Bin 483172 -> 483172 bytes lib/esp32p4/libesp_audio_processor.a | Bin 4486590 -> 4484160 bytes lib/esp32p4/libmultinet.a | Bin 1113804 -> 1113804 bytes lib/esp32p4/libwakenet.a | Bin 327480 -> 327480 bytes src/esp_process_sdkconfig.c | 19 +++++++++++-------- 6 files changed, 15 insertions(+), 12 deletions(-) diff --git a/include/esp32p4/esp_afe_config.h b/include/esp32p4/esp_afe_config.h index e5cdf55..ff04665 100644 --- a/include/esp32p4/esp_afe_config.h +++ b/include/esp32p4/esp_afe_config.h @@ -137,7 +137,7 @@ typedef struct { .vad_mode = VAD_MODE_3, \ .wakenet_model_name = NULL, \ .wakenet_model_name_2 = NULL, \ - .wakenet_mode = DET_MODE_2CH_90, \ + .wakenet_mode = DET_MODE_90, \ .afe_mode = SR_MODE_LOW_COST, \ .afe_perferred_core = 0, \ .afe_perferred_priority = 5, \ @@ -145,8 +145,8 @@ typedef struct { .memory_alloc_mode = AFE_MEMORY_ALLOC_MORE_PSRAM, \ .afe_linear_gain = 1.0, \ .agc_mode = AFE_MN_PEAK_AGC_MODE_2, \ - .pcm_config.total_ch_num = 3, \ - .pcm_config.mic_num = 2, \ + .pcm_config.total_ch_num = 2, \ + .pcm_config.mic_num = 1, \ .pcm_config.ref_num = 1, \ .pcm_config.sample_rate = 16000, \ .debug_init = false, \ @@ -189,4 +189,4 @@ typedef struct { #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/lib/esp32p4/libesp_audio_front_end.a b/lib/esp32p4/libesp_audio_front_end.a index b66ab4f2a9edd7bb1472c76fab81515ac93cb9b9..e7ac339a7fb84f9e91412528fcc8b8b840c6ef3f 100644 GIT binary patch delta 76 zcmaE|Pxi?^*$tASj24rnM4j0UtW1rqj7^$TMB7tD8G)E-dx|Kt?+Zbw1OpH_mZmEx VShOGd%M8RUK+L-R&|kJii2#lm8S(%C delta 76 zcmaE|Pxi?^*$tASjHZ*NM4j0Ut&B{pj7^(UMB7tD8G)E-dx|Kt?+Zbw1OpH_mZmEx Vn6@AK%M8RUK+L-R&|kJii2#ig8SDT6 diff --git a/lib/esp32p4/libesp_audio_processor.a b/lib/esp32p4/libesp_audio_processor.a index b39d680ffb099bbf47b4bdcdddc917cadf2913b1..6bf5dfdd6fd5ebbadccde18c6261f2f60b0871bb 100644 GIT binary patch delta 70354 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 R{v4S895jFAih~cD@qgMt&yoND delta 72010 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 u8;j!4H;)!!%S8b)|5CI>1p6 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 diff --git a/lib/esp32p4/libmultinet.a b/lib/esp32p4/libmultinet.a index d955da92727c7e6f7aaafc08e91202f1b4f046a4..64de3ffa2624e73cb38ae5b6f4f4e4ef19dea77e 100644 GIT binary patch delta 125 zcmX@}*ZIs}=M7s$1P!cAjjfE08GyjCG+jZ#V*0#vHi_nYBJKA?7=f4xh?#+y1&CR< s-xFb5AB3r=9jFJ0*@2h?h&h3n3y8UamOstGe8GyjCG+jZ#bo#t>Hi_nYBJKA?7=f4xh?#+y1&CR< s-xFb5AB3r=9jFJ0*@2h?h&h3n3y8Uam Date: Thu, 8 Aug 2024 11:56:41 +0800 Subject: [PATCH 2/2] release esp-sr v1.9.0 --- CHANGELOG.md | 6 ++---- idf_component.yml | 2 +- include/esp32p4/esp_afe_config.h | 6 +++--- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d31a11..db05913 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,8 @@ - Available storage is less than the remaining flash space on IDF v5.0. If you can not map model partition successfully, please check the left free storage by `spi_flash_mmap_get_free_pages(ESP_PARTITION_MMAP_DATA)` or update IDF to v5.1 or later. -## To be released -- Support esp32p4 for WakeNet -- Support esp32p4 for MultiNet -- Support esp32p4 for AFE_SR +## 1.9.0 +- Support esp32p4 for WakeNet, MultiNet and AFE_SR ## 1.8.0 diff --git a/idf_component.yml b/idf_component.yml index 0d47715..cfa1895 100644 --- a/idf_component.yml +++ b/idf_component.yml @@ -1,4 +1,4 @@ -version: "1.8.0" +version: "1.9.0" description: esp_sr provides basic algorithms for Speech Recognition applications url: https://github.com/espressif/esp-sr dependencies: diff --git a/include/esp32p4/esp_afe_config.h b/include/esp32p4/esp_afe_config.h index ff04665..9653f74 100644 --- a/include/esp32p4/esp_afe_config.h +++ b/include/esp32p4/esp_afe_config.h @@ -137,7 +137,7 @@ typedef struct { .vad_mode = VAD_MODE_3, \ .wakenet_model_name = NULL, \ .wakenet_model_name_2 = NULL, \ - .wakenet_mode = DET_MODE_90, \ + .wakenet_mode = DET_MODE_3CH_90, \ .afe_mode = SR_MODE_LOW_COST, \ .afe_perferred_core = 0, \ .afe_perferred_priority = 5, \ @@ -145,8 +145,8 @@ typedef struct { .memory_alloc_mode = AFE_MEMORY_ALLOC_MORE_PSRAM, \ .afe_linear_gain = 1.0, \ .agc_mode = AFE_MN_PEAK_AGC_MODE_2, \ - .pcm_config.total_ch_num = 2, \ - .pcm_config.mic_num = 1, \ + .pcm_config.total_ch_num = 3, \ + .pcm_config.mic_num = 2, \ .pcm_config.ref_num = 1, \ .pcm_config.sample_rate = 16000, \ .debug_init = false, \