if(IDF_TARGET STREQUAL "esp32") set(COMPONENT_ADD_INCLUDEDIRS src/include esp-tts/esp_tts_chinese/include include/esp32 ) set(COMPONENT_SRCS src/model_path.c src/esp_mn_speech_commands.c src/esp_process_sdkconfig.c ) set(COMPONENT_REQUIRES json spiffs ) register_component() target_link_libraries(${COMPONENT_TARGET} "-L ${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32") target_link_libraries(${COMPONENT_TARGET} "-L ${CMAKE_CURRENT_SOURCE_DIR}/esp-tts/esp_tts_chinese/esp32") IF (IDF_VERSION_MAJOR GREATER 3) add_prebuilt_library(esp_audio_processor "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32/libesp_audio_processor.a" PRIV_REQUIRES ${COMPONENT_NAME}) add_prebuilt_library(wakenet "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32/libwakenet.a" PRIV_REQUIRES ${COMPONENT_NAME}) add_prebuilt_library(multinet "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32/libmultinet.a" PRIV_REQUIRES ${COMPONENT_NAME}) add_prebuilt_library(esp_audio_front_end "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32/libesp_audio_front_end.a" PRIV_REQUIRES ${COMPONENT_NAME}) ENDIF (IDF_VERSION_MAJOR GREATER 3) target_link_libraries(${COMPONENT_TARGET} "-Wl,--start-group" multinet dl_lib c_speech_features wakeword_model multinet2_ch esp_audio_processor esp_audio_front_end esp_tts_chinese voice_set_xiaole wakenet "-Wl,--end-group") elseif(${IDF_TARGET} STREQUAL "esp32s3") set(COMPONENT_ADD_INCLUDEDIRS src/include esp-tts/esp_tts_chinese/include include/esp32s3 ) set(COMPONENT_SRCS src/model_path.c src/esp_mn_speech_commands.c src/esp_process_sdkconfig.c ) set(COMPONENT_REQUIRES json spiffs ) register_component() target_link_libraries(${COMPONENT_TARGET} "-L ${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32s3") target_link_libraries(${COMPONENT_TARGET} "-L ${CMAKE_CURRENT_SOURCE_DIR}/esp-tts/esp_tts_chinese/esp32s3") add_prebuilt_library(esp_audio_processor "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32s3/libesp_audio_processor.a" PRIV_REQUIRES ${COMPONENT_NAME}) add_prebuilt_library(wakenet "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32s3/libwakenet.a" PRIV_REQUIRES ${COMPONENT_NAME}) add_prebuilt_library(multinet "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32s3/libmultinet.a" PRIV_REQUIRES ${COMPONENT_NAME}) add_prebuilt_library(esp_audio_front_end "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32s3/libesp_audio_front_end.a" PRIV_REQUIRES ${COMPONENT_NAME}) add_prebuilt_library(hufzip "${CMAKE_CURRENT_SOURCE_DIR}/lib/esp32s3/libhufzip.a" PRIV_REQUIRES ${COMPONENT_NAME}) idf_component_get_property(esp_dsp_lib espressif__esp-dsp COMPONENT_LIB) target_link_libraries(${COMPONENT_TARGET} "-Wl,--start-group" hufzip dl_lib fst c_speech_features $ esp_audio_front_end esp_audio_processor multinet esp_tts_chinese voice_set_xiaole wakenet "-Wl,--end-group") set(MVMODEL_EXE ${COMPONENT_PATH}/model/movemodel.py) idf_build_get_property(build_dir BUILD_DIR) set(image_file ${build_dir}/srmodels/srmodels.bin) add_custom_command( OUTPUT ${image_file} COMMENT "Move and Pack models..." COMMAND python ${MVMODEL_EXE} -d1 ${PROJECT_DIR} -d2 ${COMPONENT_PATH} -d3 ${build_dir} DEPENDS ${PROJECT_DIR}/sdkconfig VERBATIM) add_custom_target(srmodels_bin ALL DEPENDS ${image_file}) add_dependencies(flash srmodels_bin) partition_table_get_partition_info(size "--partition-name model" "size") partition_table_get_partition_info(offset "--partition-name model" "offset") if("${size}" AND "${offset}") # add_dependencies(model-flash srmodels_bin) # esptool_py_flash_to_partition(model-flash "model" "${image_file}") esptool_py_flash_to_partition(flash "model" "${image_file}") else() set(message "Failed to find model in partition table file" "Please add a line(Name=model, Size>recommended size in log) to the partition file.") endif() elseif(${IDF_TARGET} STREQUAL "esp32s2") set(COMPONENT_ADD_INCLUDEDIRS esp-tts/esp_tts_chinese/include ) register_component() target_link_libraries(${COMPONENT_TARGET} INTERFACE "-L ${CMAKE_CURRENT_SOURCE_DIR}/esp-tts/esp_tts_chinese/esp32s2") target_link_libraries(${COMPONENT_TARGET} INTERFACE "-Wl,--start-group" esp_tts_chinese voice_set_xiaole "-Wl,--end-group") elseif(${IDF_TARGET} STREQUAL "esp32c3") set(COMPONENT_ADD_INCLUDEDIRS esp-tts/esp_tts_chinese/include ) register_component() target_link_libraries(${COMPONENT_TARGET} INTERFACE "-L ${CMAKE_CURRENT_SOURCE_DIR}/esp-tts/esp_tts_chinese/esp32c3") target_link_libraries(${COMPONENT_TARGET} INTERFACE "-Wl,--start-group" esp_tts_chinese voice_set_xiaole "-Wl,--end-group") endif()