diff --git a/Kconfig.projbuild b/Kconfig.projbuild index a61299f..8bee8db 100644 --- a/Kconfig.projbuild +++ b/Kconfig.projbuild @@ -54,7 +54,6 @@ endchoice menu "Load Multiple Wake Words (WakeNet9s)" - depends on IDF_TARGET_ESP32C5 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C6 || IDF_TARGET_ESP32S2 config SR_WN_WN9S_HILEXIN bool "Hi,乐鑫 (wn9s_hilexin)" diff --git a/include/esp32/esp_mfcc_iface.h b/include/esp32/esp_mfcc_iface.h index 22a5f2c..0257768 100644 --- a/include/esp32/esp_mfcc_iface.h +++ b/include/esp32/esp_mfcc_iface.h @@ -68,6 +68,8 @@ typedef esp_mfcc_data_t *(*esp_mfcc_op_create_t)(const esp_mfcc_opts_t *opt); */ typedef float *(*esp_mfcc_op_run_step_t)(esp_mfcc_data_t *r, int16_t *samp, int16_t nch); +typedef void (*esp_mfcc_op_run_step_s16_t)(esp_mfcc_data_t *r, int16_t *samp, int16_t *fbank); + /** * @brief Clean all state of mfcc handle * @@ -82,5 +84,6 @@ typedef struct { esp_mfcc_op_destroy_t destroy; esp_mfcc_op_create_t create; esp_mfcc_op_run_step_t run_step; + esp_mfcc_op_run_step_s16_t run_step_s16; esp_mfcc_op_clean_t clean; } esp_mfcc_iface_t; diff --git a/include/esp32/esp_mfcc_models.h b/include/esp32/esp_mfcc_models.h index 231603b..44086e8 100644 --- a/include/esp32/esp_mfcc_models.h +++ b/include/esp32/esp_mfcc_models.h @@ -2,12 +2,18 @@ #include "esp_mfcc_iface.h" extern const esp_mfcc_iface_t esp_fbank_f32; // float32-fbank handle +extern const esp_mfcc_iface_t esp_fbank_s16; // int16-fbank handle /** * @brief Return basic opts used in wakenet9 & multinet5 **/ esp_mfcc_opts_t *get_mfcc_opts_wn9(); +/** + * @brief Return basic opts used in wakenet9s + **/ +esp_mfcc_opts_t *get_mfcc_opts_wn9s16(); + /** * @brief Return basic opts for default kaldifeat * diff --git a/include/esp32/esp_speech_features.h b/include/esp32/esp_speech_features.h index c1659f9..25a0fee 100644 --- a/include/esp32/esp_speech_features.h +++ b/include/esp32/esp_speech_features.h @@ -48,7 +48,7 @@ float *esp_win_func_init(char *win_type, float *window_data, int frame_length); float *esp_fftr(float *x, int nfft, void *fft_table); -float *esp_spectrum_step(float *x, int nfft, bool use_power, void *fft_table); +float *esp_spectrum_step(float *x, int nfft, bool use_power, void *fft_handle); void esp_audio_short_to_float(short *samples, float *x, int len, int remove_dc); diff --git a/include/esp32/esp_wn_iface.h b/include/esp32/esp_wn_iface.h index 7cd9a41..a2bbfbc 100644 --- a/include/esp32/esp_wn_iface.h +++ b/include/esp32/esp_wn_iface.h @@ -29,6 +29,7 @@ typedef enum { DET_MODE_2CH_95 = 3, DET_MODE_3CH_90 = 4, DET_MODE_3CH_95 = 5, + DET_MODE_90_COPY_PARAMS = 6, // Aggressive } det_mode_t; typedef struct { diff --git a/include/esp32p4/esp_mfcc_iface.h b/include/esp32p4/esp_mfcc_iface.h index 22a5f2c..0257768 100644 --- a/include/esp32p4/esp_mfcc_iface.h +++ b/include/esp32p4/esp_mfcc_iface.h @@ -68,6 +68,8 @@ typedef esp_mfcc_data_t *(*esp_mfcc_op_create_t)(const esp_mfcc_opts_t *opt); */ typedef float *(*esp_mfcc_op_run_step_t)(esp_mfcc_data_t *r, int16_t *samp, int16_t nch); +typedef void (*esp_mfcc_op_run_step_s16_t)(esp_mfcc_data_t *r, int16_t *samp, int16_t *fbank); + /** * @brief Clean all state of mfcc handle * @@ -82,5 +84,6 @@ typedef struct { esp_mfcc_op_destroy_t destroy; esp_mfcc_op_create_t create; esp_mfcc_op_run_step_t run_step; + esp_mfcc_op_run_step_s16_t run_step_s16; esp_mfcc_op_clean_t clean; } esp_mfcc_iface_t; diff --git a/include/esp32p4/esp_mfcc_models.h b/include/esp32p4/esp_mfcc_models.h index 231603b..44086e8 100644 --- a/include/esp32p4/esp_mfcc_models.h +++ b/include/esp32p4/esp_mfcc_models.h @@ -2,12 +2,18 @@ #include "esp_mfcc_iface.h" extern const esp_mfcc_iface_t esp_fbank_f32; // float32-fbank handle +extern const esp_mfcc_iface_t esp_fbank_s16; // int16-fbank handle /** * @brief Return basic opts used in wakenet9 & multinet5 **/ esp_mfcc_opts_t *get_mfcc_opts_wn9(); +/** + * @brief Return basic opts used in wakenet9s + **/ +esp_mfcc_opts_t *get_mfcc_opts_wn9s16(); + /** * @brief Return basic opts for default kaldifeat * diff --git a/include/esp32p4/esp_speech_features.h b/include/esp32p4/esp_speech_features.h index c1659f9..25a0fee 100644 --- a/include/esp32p4/esp_speech_features.h +++ b/include/esp32p4/esp_speech_features.h @@ -48,7 +48,7 @@ float *esp_win_func_init(char *win_type, float *window_data, int frame_length); float *esp_fftr(float *x, int nfft, void *fft_table); -float *esp_spectrum_step(float *x, int nfft, bool use_power, void *fft_table); +float *esp_spectrum_step(float *x, int nfft, bool use_power, void *fft_handle); void esp_audio_short_to_float(short *samples, float *x, int len, int remove_dc); diff --git a/include/esp32p4/esp_wn_iface.h b/include/esp32p4/esp_wn_iface.h index 7cd9a41..a2bbfbc 100644 --- a/include/esp32p4/esp_wn_iface.h +++ b/include/esp32p4/esp_wn_iface.h @@ -29,6 +29,7 @@ typedef enum { DET_MODE_2CH_95 = 3, DET_MODE_3CH_90 = 4, DET_MODE_3CH_95 = 5, + DET_MODE_90_COPY_PARAMS = 6, // Aggressive } det_mode_t; typedef struct { diff --git a/include/esp32s3/esp_mfcc_iface.h b/include/esp32s3/esp_mfcc_iface.h index 22a5f2c..0257768 100644 --- a/include/esp32s3/esp_mfcc_iface.h +++ b/include/esp32s3/esp_mfcc_iface.h @@ -68,6 +68,8 @@ typedef esp_mfcc_data_t *(*esp_mfcc_op_create_t)(const esp_mfcc_opts_t *opt); */ typedef float *(*esp_mfcc_op_run_step_t)(esp_mfcc_data_t *r, int16_t *samp, int16_t nch); +typedef void (*esp_mfcc_op_run_step_s16_t)(esp_mfcc_data_t *r, int16_t *samp, int16_t *fbank); + /** * @brief Clean all state of mfcc handle * @@ -82,5 +84,6 @@ typedef struct { esp_mfcc_op_destroy_t destroy; esp_mfcc_op_create_t create; esp_mfcc_op_run_step_t run_step; + esp_mfcc_op_run_step_s16_t run_step_s16; esp_mfcc_op_clean_t clean; } esp_mfcc_iface_t; diff --git a/include/esp32s3/esp_mfcc_models.h b/include/esp32s3/esp_mfcc_models.h index 231603b..44086e8 100644 --- a/include/esp32s3/esp_mfcc_models.h +++ b/include/esp32s3/esp_mfcc_models.h @@ -2,12 +2,18 @@ #include "esp_mfcc_iface.h" extern const esp_mfcc_iface_t esp_fbank_f32; // float32-fbank handle +extern const esp_mfcc_iface_t esp_fbank_s16; // int16-fbank handle /** * @brief Return basic opts used in wakenet9 & multinet5 **/ esp_mfcc_opts_t *get_mfcc_opts_wn9(); +/** + * @brief Return basic opts used in wakenet9s + **/ +esp_mfcc_opts_t *get_mfcc_opts_wn9s16(); + /** * @brief Return basic opts for default kaldifeat * diff --git a/include/esp32s3/esp_speech_features.h b/include/esp32s3/esp_speech_features.h index c1659f9..25a0fee 100644 --- a/include/esp32s3/esp_speech_features.h +++ b/include/esp32s3/esp_speech_features.h @@ -48,7 +48,7 @@ float *esp_win_func_init(char *win_type, float *window_data, int frame_length); float *esp_fftr(float *x, int nfft, void *fft_table); -float *esp_spectrum_step(float *x, int nfft, bool use_power, void *fft_table); +float *esp_spectrum_step(float *x, int nfft, bool use_power, void *fft_handle); void esp_audio_short_to_float(short *samples, float *x, int len, int remove_dc); diff --git a/include/esp32s3/esp_wn_iface.h b/include/esp32s3/esp_wn_iface.h index 7cd9a41..a2bbfbc 100644 --- a/include/esp32s3/esp_wn_iface.h +++ b/include/esp32s3/esp_wn_iface.h @@ -29,6 +29,7 @@ typedef enum { DET_MODE_2CH_95 = 3, DET_MODE_3CH_90 = 4, DET_MODE_3CH_95 = 5, + DET_MODE_90_COPY_PARAMS = 6, // Aggressive } det_mode_t; typedef struct { diff --git a/lib/esp32/libc_speech_features.a b/lib/esp32/libc_speech_features.a index 73ef41f..0d6207e 100644 Binary files a/lib/esp32/libc_speech_features.a and b/lib/esp32/libc_speech_features.a differ diff --git a/lib/esp32/libdl_lib.a b/lib/esp32/libdl_lib.a index bdf3276..a7dd62f 100644 Binary files a/lib/esp32/libdl_lib.a and b/lib/esp32/libdl_lib.a differ diff --git a/lib/esp32/libesp_audio_front_end.a b/lib/esp32/libesp_audio_front_end.a index b181843..a1f9c29 100644 Binary files a/lib/esp32/libesp_audio_front_end.a and b/lib/esp32/libesp_audio_front_end.a differ diff --git a/lib/esp32/libesp_audio_processor.a b/lib/esp32/libesp_audio_processor.a index 2ba19e5..856b22d 100644 Binary files a/lib/esp32/libesp_audio_processor.a and b/lib/esp32/libesp_audio_processor.a differ diff --git a/lib/esp32/libflite_g2p.a b/lib/esp32/libflite_g2p.a index 83ab839..482e740 100644 Binary files a/lib/esp32/libflite_g2p.a and b/lib/esp32/libflite_g2p.a differ diff --git a/lib/esp32/libfst.a b/lib/esp32/libfst.a index 7ed2b85..dac2852 100644 Binary files a/lib/esp32/libfst.a and b/lib/esp32/libfst.a differ diff --git a/lib/esp32/libhufzip.a b/lib/esp32/libhufzip.a index 7ea8db5..ef6990e 100644 Binary files a/lib/esp32/libhufzip.a and b/lib/esp32/libhufzip.a differ diff --git a/lib/esp32/libmultinet.a b/lib/esp32/libmultinet.a index 40be7b5..7a02c93 100644 Binary files a/lib/esp32/libmultinet.a and b/lib/esp32/libmultinet.a differ diff --git a/lib/esp32/libnsnet.a b/lib/esp32/libnsnet.a index 4935af6..9a2ca12 100644 Binary files a/lib/esp32/libnsnet.a and b/lib/esp32/libnsnet.a differ diff --git a/lib/esp32/libvadnet.a b/lib/esp32/libvadnet.a index 9d5446f..dcccb75 100644 Binary files a/lib/esp32/libvadnet.a and b/lib/esp32/libvadnet.a differ diff --git a/lib/esp32/libwakenet.a b/lib/esp32/libwakenet.a index 586db25..34667e3 100644 Binary files a/lib/esp32/libwakenet.a and b/lib/esp32/libwakenet.a differ diff --git a/lib/esp32p4/libc_speech_features.a b/lib/esp32p4/libc_speech_features.a index ade838b..75a58c7 100644 Binary files a/lib/esp32p4/libc_speech_features.a and b/lib/esp32p4/libc_speech_features.a differ diff --git a/lib/esp32p4/libdl_lib.a b/lib/esp32p4/libdl_lib.a index 2da38c7..061f1a5 100644 Binary files a/lib/esp32p4/libdl_lib.a and b/lib/esp32p4/libdl_lib.a differ diff --git a/lib/esp32p4/libesp_audio_front_end.a b/lib/esp32p4/libesp_audio_front_end.a index 88c7b83..89e3b1a 100644 Binary files a/lib/esp32p4/libesp_audio_front_end.a and b/lib/esp32p4/libesp_audio_front_end.a differ diff --git a/lib/esp32p4/libesp_audio_processor.a b/lib/esp32p4/libesp_audio_processor.a index 7ed8960..cc3df2f 100644 Binary files a/lib/esp32p4/libesp_audio_processor.a and b/lib/esp32p4/libesp_audio_processor.a differ diff --git a/lib/esp32p4/libhufzip.a b/lib/esp32p4/libhufzip.a index a1f16f6..33665f9 100644 Binary files a/lib/esp32p4/libhufzip.a and b/lib/esp32p4/libhufzip.a differ diff --git a/lib/esp32p4/libmultinet.a b/lib/esp32p4/libmultinet.a index 9bdb19d..e517e37 100644 Binary files a/lib/esp32p4/libmultinet.a and b/lib/esp32p4/libmultinet.a differ diff --git a/lib/esp32p4/libnsnet.a b/lib/esp32p4/libnsnet.a index a10a813..ce37c38 100644 Binary files a/lib/esp32p4/libnsnet.a and b/lib/esp32p4/libnsnet.a differ diff --git a/lib/esp32p4/libvadnet.a b/lib/esp32p4/libvadnet.a index a65af4d..0bdaf01 100644 Binary files a/lib/esp32p4/libvadnet.a and b/lib/esp32p4/libvadnet.a differ diff --git a/lib/esp32p4/libwakenet.a b/lib/esp32p4/libwakenet.a index e6d8641..0b4295b 100644 Binary files a/lib/esp32p4/libwakenet.a and b/lib/esp32p4/libwakenet.a differ diff --git a/lib/esp32s3/libc_speech_features.a b/lib/esp32s3/libc_speech_features.a index c8bc04c..2ee74e1 100644 Binary files a/lib/esp32s3/libc_speech_features.a and b/lib/esp32s3/libc_speech_features.a differ diff --git a/lib/esp32s3/libdl_lib.a b/lib/esp32s3/libdl_lib.a index 9035c21..4ce805b 100644 Binary files a/lib/esp32s3/libdl_lib.a and b/lib/esp32s3/libdl_lib.a differ diff --git a/lib/esp32s3/libesp_audio_front_end.a b/lib/esp32s3/libesp_audio_front_end.a index 62b1a61..8e3a5c7 100644 Binary files a/lib/esp32s3/libesp_audio_front_end.a and b/lib/esp32s3/libesp_audio_front_end.a differ diff --git a/lib/esp32s3/libesp_audio_processor.a b/lib/esp32s3/libesp_audio_processor.a index 8854026..a5141ca 100644 Binary files a/lib/esp32s3/libesp_audio_processor.a and b/lib/esp32s3/libesp_audio_processor.a differ diff --git a/lib/esp32s3/libflite_g2p.a b/lib/esp32s3/libflite_g2p.a index 3f26e16..007d5c3 100644 Binary files a/lib/esp32s3/libflite_g2p.a and b/lib/esp32s3/libflite_g2p.a differ diff --git a/lib/esp32s3/libfst.a b/lib/esp32s3/libfst.a index 37f0b4c..327692a 100644 Binary files a/lib/esp32s3/libfst.a and b/lib/esp32s3/libfst.a differ diff --git a/lib/esp32s3/libhufzip.a b/lib/esp32s3/libhufzip.a index dc04c45..d89bd77 100644 Binary files a/lib/esp32s3/libhufzip.a and b/lib/esp32s3/libhufzip.a differ diff --git a/lib/esp32s3/libmultinet.a b/lib/esp32s3/libmultinet.a index 6691cc8..bd77429 100644 Binary files a/lib/esp32s3/libmultinet.a and b/lib/esp32s3/libmultinet.a differ diff --git a/lib/esp32s3/libnsnet.a b/lib/esp32s3/libnsnet.a index b6b9ae5..bda2bb0 100644 Binary files a/lib/esp32s3/libnsnet.a and b/lib/esp32s3/libnsnet.a differ diff --git a/lib/esp32s3/libvadnet.a b/lib/esp32s3/libvadnet.a index 32f8c9b..1e32758 100644 Binary files a/lib/esp32s3/libvadnet.a and b/lib/esp32s3/libvadnet.a differ diff --git a/lib/esp32s3/libwakenet.a b/lib/esp32s3/libwakenet.a index ebb587e..823ad38 100644 Binary files a/lib/esp32s3/libwakenet.a and b/lib/esp32s3/libwakenet.a differ diff --git a/test_apps/esp-sr/sdkconfig.ci.wn9s_hilexin b/test_apps/esp-sr/sdkconfig.ci.wn9s_hilexin new file mode 100644 index 0000000..0f15aa7 --- /dev/null +++ b/test_apps/esp-sr/sdkconfig.ci.wn9s_hilexin @@ -0,0 +1,25 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) 5.5.0 Project Minimal Configuration +# +CONFIG_IDF_TARGET="esp32s3" +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_SR_VADN_VADNET1_MEDIUM=y +CONFIG_SR_WN_WN9S_HILEXIN=y +CONFIG_SPIRAM=y +CONFIG_ESP_TASK_WDT_EN=n +CONFIG_ESP_TASK_WDT_INIT=n +CONFIG_SPIRAM_MODE_OCT=y +CONFIG_SPIRAM_SPEED_80M=y +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y +CONFIG_ESP32S3_INSTRUCTION_CACHE_32KB=y +CONFIG_ESP32S3_DATA_CACHE_64KB=y +CONFIG_ESP32S3_DATA_CACHE_LINE_64B=y +CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192 +CONFIG_ESP_WIFI_GMAC_SUPPORT=n +CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y +CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y +CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744 +CONFIG_LWIP_TCP_WND_DEFAULT=5744 +CONFIG_UNITY_CRITICAL_LEAK_LEVEL_GENERAL=1024