1# Copyright © 2021 Arm Ltd and Contributors. All rights reserved. 2# SPDX-License-Identifier: MIT 3 4# Function to download a file from the Arm Model Zoo 5function(download_file_from_modelzoo model_zoo_version file_sub_path download_path) 6 set(MODEL_ZOO_REPO "https://github.com/ARM-software/ML-zoo/raw") 7 string(JOIN "/" FILE_URL 8 ${MODEL_ZOO_REPO} ${model_zoo_version} ${file_sub_path}) 9 message(STATUS "Downloading ${FILE_URL} to ${download_path}...") 10 file(DOWNLOAD ${FILE_URL} ${download_path} 11 STATUS DOWNLOAD_STATE) 12 list(GET DOWNLOAD_STATE 0 RET_VAL) 13 if(${RET_VAL}) 14 list(GET DOWNLOAD_STATE 1 RET_MSG) 15 message(FATAL_ERROR "Download failed with error code: ${RET_VAL}; " 16 "Error message: ${RET_MSG}") 17 endif() 18endfunction() 19 20set(TEST_RESOURCES_DIR ${CMAKE_SOURCE_DIR}/test/resources) 21file(MAKE_DIRECTORY ${TEST_RESOURCES_DIR}) 22add_definitions (-DTEST_RESOURCE_DIR="${TEST_RESOURCES_DIR}") 23set(TEST_TARGET_NAME "${CMAKE_PROJECT_NAME}-tests") 24 25file(GLOB TEST_SOURCES "test/*") 26file(GLOB TESTS_AUDIO_COMMON "../common/test/Audio/*") 27 28file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test/resources) 29include(../common/cmake/find_catch.cmake) 30 31add_executable("${TEST_TARGET_NAME}" ${COMMON_UTILS_SOURCES} ${COMMON_AUDIO_SOURCES} ${SOURCES} ${TEST_SOURCES} ${TESTS_AUDIO_COMMON}) 32 33ExternalProject_Add(passport 34 URL https://raw.githubusercontent.com/Azure-Samples/cognitive-services-speech-sdk/master/sampledata/audiofiles/myVoiceIsMyPassportVerifyMe04.wav 35 DOWNLOAD_NO_EXTRACT 1 36 CONFIGURE_COMMAND "" 37 BUILD_COMMAND ${CMAKE_COMMAND} -E copy <DOWNLOAD_DIR>/myVoiceIsMyPassportVerifyMe04.wav ${CMAKE_CURRENT_SOURCE_DIR}/test/resources 38 INSTALL_COMMAND "" 39 ) 40 41add_dependencies( 42 "${TEST_TARGET_NAME}" 43 "passport" 44 "catch2-headers" 45) 46 47 48set(MODEL_FILENAME ds_cnn_clustered_int8.tflite) 49set(MODEL_RESOURCES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/test/resources) 50file(MAKE_DIRECTORY ${MODEL_RESOURCES_DIR}) 51set(DEFAULT_MODEL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/test/resources/${MODEL_FILENAME}) 52 53# Download the default model 54set(ZOO_COMMON_SUBPATH "models/keyword_spotting/ds_cnn_large/tflite_clustered_int8") 55set(ZOO_MODEL_SUBPATH "${ZOO_COMMON_SUBPATH}/${MODEL_FILENAME}") 56set(ZOO_MODEL_VERSION "68b5fbc77ed28e67b2efc915997ea4477c1d9d5b") 57 58download_file_from_modelzoo(${ZOO_MODEL_VERSION} ${ZOO_MODEL_SUBPATH} ${DEFAULT_MODEL_PATH}) 59 60 61target_include_directories("${TEST_TARGET_NAME}" PUBLIC ${TEST_TPIP_INCLUDE} 62 ${ARMNN_INCLUDE_DIR} 63 ${DEPENDENCIES_DIR} ${TEST_RESOURCES_DIR} ${COMMON_INCLUDE_DIR}) 64 65target_link_libraries("${TEST_TARGET_NAME}" PUBLIC ${ARMNN_LIBS} -lsndfile -lsamplerate)