George Gekov | 23c2627 | 2021-08-16 11:32:10 +0100 | [diff] [blame] | 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 |
| 5 | function(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() |
| 18 | endfunction() |
| 19 | |
| 20 | set(TEST_RESOURCES_DIR ${CMAKE_SOURCE_DIR}/test/resources) |
| 21 | file(MAKE_DIRECTORY ${TEST_RESOURCES_DIR}) |
| 22 | add_definitions (-DTEST_RESOURCE_DIR="${TEST_RESOURCES_DIR}") |
| 23 | set(TEST_TARGET_NAME "${CMAKE_PROJECT_NAME}-tests") |
| 24 | |
| 25 | file(GLOB TEST_SOURCES "test/*") |
| 26 | file(GLOB TESTS_AUDIO_COMMON "../common/test/Audio/*") |
| 27 | |
| 28 | file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test/resources) |
| 29 | include(../common/cmake/find_catch.cmake) |
| 30 | |
| 31 | add_executable("${TEST_TARGET_NAME}" ${COMMON_UTILS_SOURCES} ${COMMON_AUDIO_SOURCES} ${SOURCES} ${TEST_SOURCES} ${TESTS_AUDIO_COMMON}) |
| 32 | |
| 33 | ExternalProject_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 | |
| 41 | add_dependencies( |
| 42 | "${TEST_TARGET_NAME}" |
| 43 | "passport" |
| 44 | "catch2-headers" |
| 45 | ) |
| 46 | |
| 47 | |
| 48 | set(MODEL_FILENAME ds_cnn_clustered_int8.tflite) |
| 49 | set(MODEL_RESOURCES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/test/resources) |
| 50 | file(MAKE_DIRECTORY ${MODEL_RESOURCES_DIR}) |
| 51 | set(DEFAULT_MODEL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/test/resources/${MODEL_FILENAME}) |
| 52 | |
| 53 | # Download the default model |
| 54 | set(ZOO_COMMON_SUBPATH "models/keyword_spotting/ds_cnn_large/tflite_clustered_int8") |
| 55 | set(ZOO_MODEL_SUBPATH "${ZOO_COMMON_SUBPATH}/${MODEL_FILENAME}") |
| 56 | set(ZOO_MODEL_VERSION "68b5fbc77ed28e67b2efc915997ea4477c1d9d5b") |
| 57 | |
| 58 | download_file_from_modelzoo(${ZOO_MODEL_VERSION} ${ZOO_MODEL_SUBPATH} ${DEFAULT_MODEL_PATH}) |
| 59 | |
| 60 | |
| 61 | target_include_directories("${TEST_TARGET_NAME}" PUBLIC ${TEST_TPIP_INCLUDE} |
| 62 | ${ARMNN_INCLUDE_DIR} |
| 63 | ${DEPENDENCIES_DIR} ${TEST_RESOURCES_DIR} ${COMMON_INCLUDE_DIR}) |
| 64 | |
| 65 | target_link_libraries("${TEST_TARGET_NAME}" PUBLIC ${ARMNN_LIBS} -lsndfile -lsamplerate) |