From e0a751671dbf6f2e18c968ae73e663cca864c722 Mon Sep 17 00:00:00 2001 From: Wang Wang Wang Date: Wed, 3 Nov 2021 17:18:37 +0800 Subject: [PATCH] feat(system): Refactor esp-sr; Accelerate model reading --- CMakeLists.txt | 120 +- Makefile | 11 - acoustic_algorithm/component.mk | 11 - audio_front_end/component.mk | 11 - .../acoustic_algorithm}/README.md | 0 .../audio_front_end}/README.md | 0 .../audio_front_end}/README_CN.md | 0 {img => docs/img}/AFE_mode_0.png | Bin {img => docs/img}/AFE_mode_other.png | Bin {img => docs/img}/AFE_overview.png | Bin {img => docs/img}/AFE_workflow.png | Bin {img => docs/img}/model_sel.png | Bin {img => docs/img}/multinet_workflow.png | Bin {img => docs/img}/wakenet_workflow.png | Bin {img => docs/img}/word_sel.png | Bin .../speech_command_recognition}/README.md | 0 .../speech_command_recognition}/README_cn.md | 0 .../speech_command_recognition}/tool/README | 0 .../tool/multinet_g2p.py | 0 .../tool/requirements | 0 .../ESP_Wake_Words_Customization.md | 0 .../wake_word_engine}/README.md | 0 .../wake_word_engine}/README_cn.md | 0 .../乐鑫语音唤醒词定制流程.md | 0 {lib/include => include}/dl_lib.h | 0 .../dl_lib_coefgetter_if.h | 0 {lib/include => include}/dl_lib_conv_queue.h | 0 .../include => include}/dl_lib_convq8_queue.h | 0 {lib/include => include}/dl_lib_convq_queue.h | 0 {lib/include => include}/dl_lib_matrix.h | 0 {lib/include => include}/dl_lib_matrixq.h | 0 {lib/include => include}/dl_lib_matrixq8.h | 0 .../include => include}/esp_aec.h | 0 .../include => include}/esp_afe_sr_iface.h | 0 .../include => include}/esp_afe_sr_models.h | 0 .../include => include}/esp_agc.h | 0 .../include => include}/esp_map.h | 0 .../include => include}/esp_mase.h | 0 .../include => include}/esp_mn_iface.h | 0 .../include => include}/esp_mn_models.h | 0 .../include => include}/esp_ns.h | 0 .../include => include}/esp_vad.h | 0 .../include => include}/esp_wn_iface.h | 0 .../include => include}/esp_wn_models.h | 0 .../include => include}/mn_process_commands.h | 0 {model => include}/model_path.h | 0 .../include => include}/sr_flash.h | 0 lib/component.mk | 11 - lib/{ => esp32}/libdl_lib_esp32.a | Bin lib/{ => esp32s3}/libc_speech_features.a | Bin .../libdl_lib.a} | Bin .../esp32s3}/libesp_audio_front_end.a | Bin .../esp32s3}/libesp_audio_processor.a | Bin lib/esp32s3/libhufzip.a | Bin 0 -> 179000 bytes lib/{ => esp32s3}/libmultinet.a | Bin lib/{ => esp32s3}/libwakenet.a | Bin lib/libhufzip.a | Bin 182628 -> 0 bytes main/Kconfig | 1187 --- main/audio_process.c | 146 - main/component.mk | 6 - main/include/audio_process.h | 3 - main/include/audio_test_file.h | 7643 ----------------- main/include/dakaidiandeng.h | 4985 ----------- main/include/hilexin.h | 7643 ----------------- main/include/multinet_test.h | 3 - main/include/wakenet_test.h | 3 - main/main.c | 25 - main/multinet_test.c | 58 - main/wakenet_test.c | 59 - partitions.csv | 4 - sdkconfig.defaults | 903 -- speech_command_recognition/component.mk | 11 - {audio_front_end => src}/esp_afe_sr_1mic.c | 0 .../mn_process_commands.c | 0 {model => src}/model_path.c | 0 wake_word_engine/component.mk | 11 - 76 files changed, 49 insertions(+), 22805 deletions(-) delete mode 100644 Makefile delete mode 100644 acoustic_algorithm/component.mk delete mode 100644 audio_front_end/component.mk rename {acoustic_algorithm => docs/acoustic_algorithm}/README.md (100%) rename {audio_front_end => docs/audio_front_end}/README.md (100%) rename {audio_front_end => docs/audio_front_end}/README_CN.md (100%) rename {img => docs/img}/AFE_mode_0.png (100%) rename {img => docs/img}/AFE_mode_other.png (100%) rename {img => docs/img}/AFE_overview.png (100%) rename {img => docs/img}/AFE_workflow.png (100%) rename {img => docs/img}/model_sel.png (100%) rename {img => docs/img}/multinet_workflow.png (100%) rename {img => docs/img}/wakenet_workflow.png (100%) rename {img => docs/img}/word_sel.png (100%) rename {speech_command_recognition => docs/speech_command_recognition}/README.md (100%) rename {speech_command_recognition => docs/speech_command_recognition}/README_cn.md (100%) rename {speech_command_recognition => docs/speech_command_recognition}/tool/README (100%) rename {speech_command_recognition => docs/speech_command_recognition}/tool/multinet_g2p.py (100%) rename {speech_command_recognition => docs/speech_command_recognition}/tool/requirements (100%) rename {wake_word_engine => docs/wake_word_engine}/ESP_Wake_Words_Customization.md (100%) rename {wake_word_engine => docs/wake_word_engine}/README.md (100%) rename {wake_word_engine => docs/wake_word_engine}/README_cn.md (100%) rename {wake_word_engine => docs/wake_word_engine}/乐鑫语音唤醒词定制流程.md (100%) rename {lib/include => include}/dl_lib.h (100%) rename {lib/include => include}/dl_lib_coefgetter_if.h (100%) rename {lib/include => include}/dl_lib_conv_queue.h (100%) rename {lib/include => include}/dl_lib_convq8_queue.h (100%) rename {lib/include => include}/dl_lib_convq_queue.h (100%) rename {lib/include => include}/dl_lib_matrix.h (100%) rename {lib/include => include}/dl_lib_matrixq.h (100%) rename {lib/include => include}/dl_lib_matrixq8.h (100%) rename {acoustic_algorithm/include => include}/esp_aec.h (100%) rename {audio_front_end/include => include}/esp_afe_sr_iface.h (100%) rename {audio_front_end/include => include}/esp_afe_sr_models.h (100%) rename {acoustic_algorithm/include => include}/esp_agc.h (100%) rename {acoustic_algorithm/include => include}/esp_map.h (100%) rename {acoustic_algorithm/include => include}/esp_mase.h (100%) rename {speech_command_recognition/include => include}/esp_mn_iface.h (100%) rename {speech_command_recognition/include => include}/esp_mn_models.h (100%) rename {acoustic_algorithm/include => include}/esp_ns.h (100%) rename {acoustic_algorithm/include => include}/esp_vad.h (100%) rename {wake_word_engine/include => include}/esp_wn_iface.h (100%) rename {wake_word_engine/include => include}/esp_wn_models.h (100%) rename {speech_command_recognition/include => include}/mn_process_commands.h (100%) rename {model => include}/model_path.h (100%) rename {speech_command_recognition/include => include}/sr_flash.h (100%) delete mode 100644 lib/component.mk rename lib/{ => esp32}/libdl_lib_esp32.a (100%) rename lib/{ => esp32s3}/libc_speech_features.a (100%) rename lib/{libdl_lib_esp32s3.a => esp32s3/libdl_lib.a} (100%) rename {audio_front_end => lib/esp32s3}/libesp_audio_front_end.a (100%) rename {acoustic_algorithm => lib/esp32s3}/libesp_audio_processor.a (100%) create mode 100644 lib/esp32s3/libhufzip.a rename lib/{ => esp32s3}/libmultinet.a (100%) rename lib/{ => esp32s3}/libwakenet.a (100%) delete mode 100644 lib/libhufzip.a delete mode 100644 main/Kconfig delete mode 100644 main/audio_process.c delete mode 100644 main/component.mk delete mode 100644 main/include/audio_process.h delete mode 100644 main/include/audio_test_file.h delete mode 100644 main/include/dakaidiandeng.h delete mode 100644 main/include/hilexin.h delete mode 100644 main/include/multinet_test.h delete mode 100644 main/include/wakenet_test.h delete mode 100644 main/main.c delete mode 100644 main/multinet_test.c delete mode 100644 main/wakenet_test.c delete mode 100644 partitions.csv delete mode 100644 sdkconfig.defaults delete mode 100644 speech_command_recognition/component.mk rename {audio_front_end => src}/esp_afe_sr_1mic.c (100%) rename {speech_command_recognition => src}/mn_process_commands.c (100%) rename {model => src}/model_path.c (100%) delete mode 100644 wake_word_engine/component.mk diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f99c0c..52496cb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,16 +1,10 @@ set(COMPONENT_SRCS - speech_command_recognition/mn_process_commands.c - model/model_path.c + src/mn_process_commands.c + src/model_path.c ) set(COMPONENT_ADD_INCLUDEDIRS - lib/include - wake_word_engine/include - speech_command_recognition/include - acoustic_algorithm/include - esp-tts/esp_tts_chinese/include - audio_front_end/include - model + include ) set(COMPONENT_REQUIRES @@ -19,71 +13,55 @@ set(COMPONENT_REQUIRES ) register_component() - -target_link_libraries(${COMPONENT_TARGET} "-L ${CMAKE_CURRENT_SOURCE_DIR}/lib") -target_link_libraries(${COMPONENT_TARGET} "-L ${CMAKE_CURRENT_SOURCE_DIR}/wake_word_engine") -target_link_libraries(${COMPONENT_TARGET} "-L ${CMAKE_CURRENT_SOURCE_DIR}/speech_command_recognition") -target_link_libraries(${COMPONENT_TARGET} "-L ${CMAKE_CURRENT_SOURCE_DIR}/acoustic_algorithm") -target_link_libraries(${COMPONENT_TARGET} "-L ${CMAKE_CURRENT_SOURCE_DIR}/esp-tts/esp_tts_chinese") -target_link_libraries(${COMPONENT_TARGET} "-L ${CMAKE_CURRENT_SOURCE_DIR}/audio_front_end") - -add_prebuilt_library(esp_audio_processor "${CMAKE_CURRENT_SOURCE_DIR}/acoustic_algorithm/libesp_audio_processor.a" PRIV_REQUIRES esp-sr) -add_prebuilt_library(wakenet "${CMAKE_CURRENT_SOURCE_DIR}/lib/libwakenet.a" PRIV_REQUIRES esp-sr) -add_prebuilt_library(multinet "${CMAKE_CURRENT_SOURCE_DIR}/lib/libmultinet.a" PRIV_REQUIRES esp-sr) -add_prebuilt_library(esp_audio_front_end "${CMAKE_CURRENT_SOURCE_DIR}/audio_front_end/libesp_audio_front_end.a" PRIV_REQUIRES esp-sr) -add_prebuilt_library(hufzip "${CMAKE_CURRENT_SOURCE_DIR}/lib/libhufzip.a" PRIV_REQUIRES esp-sr) - if(IDF_TARGET STREQUAL "esp32") -target_link_libraries(${COMPONENT_TARGET} "-Wl,--start-group" - wakenet - dl_lib_esp32 - c_speech_features - hilexin_wn5 - hilexin_wn5X3 - customized_word_wn5 - multinet - multinet1_en - multinet2_ch - esp_tts_chinese - voice_set_xiaole - voice_set_template - esp_audio_front_end - esp_audio_processor "-Wl,--end-group") -endif() + target_link_libraries(${COMPONENT_TARGET} "-L ${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32") + add_prebuilt_library(esp_audio_processor "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32/libesp_audio_processor.a" PRIV_REQUIRES esp-sr) + add_prebuilt_library(wakenet "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32/libwakenet.a" PRIV_REQUIRES esp-sr) + add_prebuilt_library(multinet "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32/libmultinet.a" PRIV_REQUIRES esp-sr) + add_prebuilt_library(esp_audio_front_end "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32/libesp_audio_front_end.a" PRIV_REQUIRES esp-sr) + add_prebuilt_library(hufzip "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32/libhufzip.a" PRIV_REQUIRES esp-sr) + # TTS + target_link_libraries(${COMPONENT_TARGET} "-Wl,--start-group" + esp_tts_chinese_esp32s2 + voice_set_xiaole_esp32s2 + voice_set_template_esp32s2 + "-Wl,--end-group") +elseif(${IDF_TARGET} STREQUAL "esp32s2") + target_link_libraries(${COMPONENT_TARGET} "-Wl,--start-group" + esp_tts_chinese_esp32s2 + voice_set_xiaole_esp32s2 + voice_set_template_esp32s2 + "-Wl,--end-group") +elseif(${IDF_TARGET} STREQUAL "esp32s3") + target_link_libraries(${COMPONENT_TARGET} "-L ${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32s3") + add_prebuilt_library(esp_audio_processor "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32s3/libesp_audio_processor.a" PRIV_REQUIRES esp-sr) + add_prebuilt_library(wakenet "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32s3/libwakenet.a" PRIV_REQUIRES esp-sr) + add_prebuilt_library(multinet "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32s3/libmultinet.a" PRIV_REQUIRES esp-sr) + add_prebuilt_library(esp_audio_front_end "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32s3/libesp_audio_front_end.a" PRIV_REQUIRES esp-sr) + add_prebuilt_library(hufzip "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32s3/libhufzip.a" PRIV_REQUIRES esp-sr) -if(IDF_TARGET STREQUAL "esp32s2") -target_link_libraries(${COMPONENT_TARGET} "-Wl,--start-group" - esp_tts_chinese_esp32s2 - voice_set_xiaole_esp32s2 - voice_set_template_esp32s2 - "-Wl,--end-group") -endif() + target_link_libraries(${COMPONENT_TARGET} "-Wl,--start-group" + wakenet + hufzip + dl_lib + c_speech_features + esp_audio_front_end + esp_audio_processor + multinet + "-Wl,--end-group") + if(CONFIG_MODEL_IN_SPIFFS AND CONFIG_USE_WAKENET) + set(MVMODEL_EXE ${COMPONENT_PATH}/model/movemodel.py) + add_custom_command( + OUTPUT ${COMPONENT_DIR}/model/target/_MODEL_INFO_ + COMMENT "Running move model..." + COMMAND python ${MVMODEL_EXE} -d1 ${PROJECT_DIR} -d2 ${COMPONENT_PATH} + DEPENDS ${COMPONENT_DIR}/model/ + VERBATIM) -if(IDF_TARGET STREQUAL "esp32s3") -target_link_libraries(${COMPONENT_TARGET} "-Wl,--start-group" - wakenet - hufzip - dl_lib_esp32s3 - c_speech_features - esp_audio_front_end - esp_audio_processor - multinet - "-Wl,--end-group") -endif() + add_custom_target(model DEPENDS ${COMPONENT_DIR}/model/target/_MODEL_INFO_) + add_dependencies(${COMPONENT_LIB} model) -set(MVMODEL_EXE ${COMPONENT_PATH}/model/movemodel.py) - -if(CONFIG_MODEL_IN_SPIFFS AND CONFIG_USE_WAKENET) - add_custom_command( - OUTPUT ${COMPONENT_DIR}/model/target/_MODEL_INFO_ - COMMENT "Running move model..." - COMMAND python ${MVMODEL_EXE} -d1 ${PROJECT_DIR} -d2 ${COMPONENT_PATH} - DEPENDS ${COMPONENT_DIR}/model/ - VERBATIM) - - add_custom_target(model DEPENDS ${COMPONENT_DIR}/model/target/_MODEL_INFO_) - add_dependencies(${COMPONENT_LIB} model) - - spiffs_create_partition_image(model ${COMPONENT_DIR}/model/target FLASH_IN_PROJECT DEPENDS ${COMPONENT_DIR}/model/target/_MODEL_INFO_) + spiffs_create_partition_image(model ${COMPONENT_DIR}/model/target FLASH_IN_PROJECT DEPENDS ${COMPONENT_DIR}/model/target/_MODEL_INFO_) + endif() endif() \ No newline at end of file diff --git a/Makefile b/Makefile deleted file mode 100644 index dd9ca66..0000000 --- a/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -PROJECT_NAME := esp_sr_public - -MODULE_PATH := $(abspath $(shell pwd)) - -EXTRA_COMPONENT_DIRS += $(MODULE_PATH)/lib -EXTRA_COMPONENT_DIRS += $(MODULE_PATH)/wake_word_engine -EXTRA_COMPONENT_DIRS += $(MODULE_PATH)/speech_command_recognition -EXTRA_COMPONENT_DIRS += $(MODULE_PATH)/acoustic_algorithm - -include $(IDF_PATH)/make/project.mk - diff --git a/acoustic_algorithm/component.mk b/acoustic_algorithm/component.mk deleted file mode 100644 index ef00b03..0000000 --- a/acoustic_algorithm/component.mk +++ /dev/null @@ -1,11 +0,0 @@ -COMPONENT_ADD_INCLUDEDIRS := include - -COMPONENT_SRCDIRS := . - -LIB_FILES := $(shell ls $(COMPONENT_PATH)/lib*.a) - -LIBS := $(patsubst lib%.a,-l%,$(notdir $(LIB_FILES))) - -COMPONENT_ADD_LDFLAGS += -L$(COMPONENT_PATH)/ $(LIBS) - -ALL_LIB_FILES += $(LIB_FILES) diff --git a/audio_front_end/component.mk b/audio_front_end/component.mk deleted file mode 100644 index ef00b03..0000000 --- a/audio_front_end/component.mk +++ /dev/null @@ -1,11 +0,0 @@ -COMPONENT_ADD_INCLUDEDIRS := include - -COMPONENT_SRCDIRS := . - -LIB_FILES := $(shell ls $(COMPONENT_PATH)/lib*.a) - -LIBS := $(patsubst lib%.a,-l%,$(notdir $(LIB_FILES))) - -COMPONENT_ADD_LDFLAGS += -L$(COMPONENT_PATH)/ $(LIBS) - -ALL_LIB_FILES += $(LIB_FILES) diff --git a/acoustic_algorithm/README.md b/docs/acoustic_algorithm/README.md similarity index 100% rename from acoustic_algorithm/README.md rename to docs/acoustic_algorithm/README.md diff --git a/audio_front_end/README.md b/docs/audio_front_end/README.md similarity index 100% rename from audio_front_end/README.md rename to docs/audio_front_end/README.md diff --git a/audio_front_end/README_CN.md b/docs/audio_front_end/README_CN.md similarity index 100% rename from audio_front_end/README_CN.md rename to docs/audio_front_end/README_CN.md diff --git a/img/AFE_mode_0.png b/docs/img/AFE_mode_0.png similarity index 100% rename from img/AFE_mode_0.png rename to docs/img/AFE_mode_0.png diff --git a/img/AFE_mode_other.png b/docs/img/AFE_mode_other.png similarity index 100% rename from img/AFE_mode_other.png rename to docs/img/AFE_mode_other.png diff --git a/img/AFE_overview.png b/docs/img/AFE_overview.png similarity index 100% rename from img/AFE_overview.png rename to docs/img/AFE_overview.png diff --git a/img/AFE_workflow.png b/docs/img/AFE_workflow.png similarity index 100% rename from img/AFE_workflow.png rename to docs/img/AFE_workflow.png diff --git a/img/model_sel.png b/docs/img/model_sel.png similarity index 100% rename from img/model_sel.png rename to docs/img/model_sel.png diff --git a/img/multinet_workflow.png b/docs/img/multinet_workflow.png similarity index 100% rename from img/multinet_workflow.png rename to docs/img/multinet_workflow.png diff --git a/img/wakenet_workflow.png b/docs/img/wakenet_workflow.png similarity index 100% rename from img/wakenet_workflow.png rename to docs/img/wakenet_workflow.png diff --git a/img/word_sel.png b/docs/img/word_sel.png similarity index 100% rename from img/word_sel.png rename to docs/img/word_sel.png diff --git a/speech_command_recognition/README.md b/docs/speech_command_recognition/README.md similarity index 100% rename from speech_command_recognition/README.md rename to docs/speech_command_recognition/README.md diff --git a/speech_command_recognition/README_cn.md b/docs/speech_command_recognition/README_cn.md similarity index 100% rename from speech_command_recognition/README_cn.md rename to docs/speech_command_recognition/README_cn.md diff --git a/speech_command_recognition/tool/README b/docs/speech_command_recognition/tool/README similarity index 100% rename from speech_command_recognition/tool/README rename to docs/speech_command_recognition/tool/README diff --git a/speech_command_recognition/tool/multinet_g2p.py b/docs/speech_command_recognition/tool/multinet_g2p.py similarity index 100% rename from speech_command_recognition/tool/multinet_g2p.py rename to docs/speech_command_recognition/tool/multinet_g2p.py diff --git a/speech_command_recognition/tool/requirements b/docs/speech_command_recognition/tool/requirements similarity index 100% rename from speech_command_recognition/tool/requirements rename to docs/speech_command_recognition/tool/requirements diff --git a/wake_word_engine/ESP_Wake_Words_Customization.md b/docs/wake_word_engine/ESP_Wake_Words_Customization.md similarity index 100% rename from wake_word_engine/ESP_Wake_Words_Customization.md rename to docs/wake_word_engine/ESP_Wake_Words_Customization.md diff --git a/wake_word_engine/README.md b/docs/wake_word_engine/README.md similarity index 100% rename from wake_word_engine/README.md rename to docs/wake_word_engine/README.md diff --git a/wake_word_engine/README_cn.md b/docs/wake_word_engine/README_cn.md similarity index 100% rename from wake_word_engine/README_cn.md rename to docs/wake_word_engine/README_cn.md diff --git a/wake_word_engine/乐鑫语音唤醒词定制流程.md b/docs/wake_word_engine/乐鑫语音唤醒词定制流程.md similarity index 100% rename from wake_word_engine/乐鑫语音唤醒词定制流程.md rename to docs/wake_word_engine/乐鑫语音唤醒词定制流程.md diff --git a/lib/include/dl_lib.h b/include/dl_lib.h similarity index 100% rename from lib/include/dl_lib.h rename to include/dl_lib.h diff --git a/lib/include/dl_lib_coefgetter_if.h b/include/dl_lib_coefgetter_if.h similarity index 100% rename from lib/include/dl_lib_coefgetter_if.h rename to include/dl_lib_coefgetter_if.h diff --git a/lib/include/dl_lib_conv_queue.h b/include/dl_lib_conv_queue.h similarity index 100% rename from lib/include/dl_lib_conv_queue.h rename to include/dl_lib_conv_queue.h diff --git a/lib/include/dl_lib_convq8_queue.h b/include/dl_lib_convq8_queue.h similarity index 100% rename from lib/include/dl_lib_convq8_queue.h rename to include/dl_lib_convq8_queue.h diff --git a/lib/include/dl_lib_convq_queue.h b/include/dl_lib_convq_queue.h similarity index 100% rename from lib/include/dl_lib_convq_queue.h rename to include/dl_lib_convq_queue.h diff --git a/lib/include/dl_lib_matrix.h b/include/dl_lib_matrix.h similarity index 100% rename from lib/include/dl_lib_matrix.h rename to include/dl_lib_matrix.h diff --git a/lib/include/dl_lib_matrixq.h b/include/dl_lib_matrixq.h similarity index 100% rename from lib/include/dl_lib_matrixq.h rename to include/dl_lib_matrixq.h diff --git a/lib/include/dl_lib_matrixq8.h b/include/dl_lib_matrixq8.h similarity index 100% rename from lib/include/dl_lib_matrixq8.h rename to include/dl_lib_matrixq8.h diff --git a/acoustic_algorithm/include/esp_aec.h b/include/esp_aec.h similarity index 100% rename from acoustic_algorithm/include/esp_aec.h rename to include/esp_aec.h diff --git a/audio_front_end/include/esp_afe_sr_iface.h b/include/esp_afe_sr_iface.h similarity index 100% rename from audio_front_end/include/esp_afe_sr_iface.h rename to include/esp_afe_sr_iface.h diff --git a/audio_front_end/include/esp_afe_sr_models.h b/include/esp_afe_sr_models.h similarity index 100% rename from audio_front_end/include/esp_afe_sr_models.h rename to include/esp_afe_sr_models.h diff --git a/acoustic_algorithm/include/esp_agc.h b/include/esp_agc.h similarity index 100% rename from acoustic_algorithm/include/esp_agc.h rename to include/esp_agc.h diff --git a/acoustic_algorithm/include/esp_map.h b/include/esp_map.h similarity index 100% rename from acoustic_algorithm/include/esp_map.h rename to include/esp_map.h diff --git a/acoustic_algorithm/include/esp_mase.h b/include/esp_mase.h similarity index 100% rename from acoustic_algorithm/include/esp_mase.h rename to include/esp_mase.h diff --git a/speech_command_recognition/include/esp_mn_iface.h b/include/esp_mn_iface.h similarity index 100% rename from speech_command_recognition/include/esp_mn_iface.h rename to include/esp_mn_iface.h diff --git a/speech_command_recognition/include/esp_mn_models.h b/include/esp_mn_models.h similarity index 100% rename from speech_command_recognition/include/esp_mn_models.h rename to include/esp_mn_models.h diff --git a/acoustic_algorithm/include/esp_ns.h b/include/esp_ns.h similarity index 100% rename from acoustic_algorithm/include/esp_ns.h rename to include/esp_ns.h diff --git a/acoustic_algorithm/include/esp_vad.h b/include/esp_vad.h similarity index 100% rename from acoustic_algorithm/include/esp_vad.h rename to include/esp_vad.h diff --git a/wake_word_engine/include/esp_wn_iface.h b/include/esp_wn_iface.h similarity index 100% rename from wake_word_engine/include/esp_wn_iface.h rename to include/esp_wn_iface.h diff --git a/wake_word_engine/include/esp_wn_models.h b/include/esp_wn_models.h similarity index 100% rename from wake_word_engine/include/esp_wn_models.h rename to include/esp_wn_models.h diff --git a/speech_command_recognition/include/mn_process_commands.h b/include/mn_process_commands.h similarity index 100% rename from speech_command_recognition/include/mn_process_commands.h rename to include/mn_process_commands.h diff --git a/model/model_path.h b/include/model_path.h similarity index 100% rename from model/model_path.h rename to include/model_path.h diff --git a/speech_command_recognition/include/sr_flash.h b/include/sr_flash.h similarity index 100% rename from speech_command_recognition/include/sr_flash.h rename to include/sr_flash.h diff --git a/lib/component.mk b/lib/component.mk deleted file mode 100644 index ef00b03..0000000 --- a/lib/component.mk +++ /dev/null @@ -1,11 +0,0 @@ -COMPONENT_ADD_INCLUDEDIRS := include - -COMPONENT_SRCDIRS := . - -LIB_FILES := $(shell ls $(COMPONENT_PATH)/lib*.a) - -LIBS := $(patsubst lib%.a,-l%,$(notdir $(LIB_FILES))) - -COMPONENT_ADD_LDFLAGS += -L$(COMPONENT_PATH)/ $(LIBS) - -ALL_LIB_FILES += $(LIB_FILES) diff --git a/lib/libdl_lib_esp32.a b/lib/esp32/libdl_lib_esp32.a similarity index 100% rename from lib/libdl_lib_esp32.a rename to lib/esp32/libdl_lib_esp32.a diff --git a/lib/libc_speech_features.a b/lib/esp32s3/libc_speech_features.a similarity index 100% rename from lib/libc_speech_features.a rename to lib/esp32s3/libc_speech_features.a diff --git a/lib/libdl_lib_esp32s3.a b/lib/esp32s3/libdl_lib.a similarity index 100% rename from lib/libdl_lib_esp32s3.a rename to lib/esp32s3/libdl_lib.a diff --git a/audio_front_end/libesp_audio_front_end.a b/lib/esp32s3/libesp_audio_front_end.a similarity index 100% rename from audio_front_end/libesp_audio_front_end.a rename to lib/esp32s3/libesp_audio_front_end.a diff --git a/acoustic_algorithm/libesp_audio_processor.a b/lib/esp32s3/libesp_audio_processor.a similarity index 100% rename from acoustic_algorithm/libesp_audio_processor.a rename to lib/esp32s3/libesp_audio_processor.a diff --git a/lib/esp32s3/libhufzip.a b/lib/esp32s3/libhufzip.a new file mode 100644 index 0000000000000000000000000000000000000000..7e8aa2c842de8c7f55e11961dbab6be6015b4833 GIT binary patch literal 179000 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≪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