aboutsummaryrefslogtreecommitdiff
path: root/samples/KeywordSpotting/cmake/unit_tests.cmake
diff options
context:
space:
mode:
authorGeorge Gekov <george.gekov@arm.com>2021-08-16 11:32:10 +0100
committerJim Flynn <jim.flynn@arm.com>2022-02-05 19:49:06 +0000
commit23c26277086c78704a17f0dae86da947816320c0 (patch)
tree88b02fd1fae3130256d059251788a7ef68d2831f /samples/KeywordSpotting/cmake/unit_tests.cmake
parent922b912fd2d462bac0809bac5669310ad1506310 (diff)
downloadarmnn-23c26277086c78704a17f0dae86da947816320c0.tar.gz
MLECO-2079 Adding the C++ KWS example
Signed-off-by: Eanna O Cathain <eanna.ocathain@arm.com> Change-Id: I81899bbfaada32f478c2e2fc6441eabb94d8d0fc
Diffstat (limited to 'samples/KeywordSpotting/cmake/unit_tests.cmake')
-rw-r--r--samples/KeywordSpotting/cmake/unit_tests.cmake65
1 files changed, 65 insertions, 0 deletions
diff --git a/samples/KeywordSpotting/cmake/unit_tests.cmake b/samples/KeywordSpotting/cmake/unit_tests.cmake
new file mode 100644
index 0000000000..97ba4d41b3
--- /dev/null
+++ b/samples/KeywordSpotting/cmake/unit_tests.cmake
@@ -0,0 +1,65 @@
+# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+
+# Function to download a file from the Arm Model Zoo
+function(download_file_from_modelzoo model_zoo_version file_sub_path download_path)
+ set(MODEL_ZOO_REPO "https://github.com/ARM-software/ML-zoo/raw")
+ string(JOIN "/" FILE_URL
+ ${MODEL_ZOO_REPO} ${model_zoo_version} ${file_sub_path})
+ message(STATUS "Downloading ${FILE_URL} to ${download_path}...")
+ file(DOWNLOAD ${FILE_URL} ${download_path}
+ STATUS DOWNLOAD_STATE)
+ list(GET DOWNLOAD_STATE 0 RET_VAL)
+ if(${RET_VAL})
+ list(GET DOWNLOAD_STATE 1 RET_MSG)
+ message(FATAL_ERROR "Download failed with error code: ${RET_VAL}; "
+ "Error message: ${RET_MSG}")
+ endif()
+endfunction()
+
+set(TEST_RESOURCES_DIR ${CMAKE_SOURCE_DIR}/test/resources)
+file(MAKE_DIRECTORY ${TEST_RESOURCES_DIR})
+add_definitions (-DTEST_RESOURCE_DIR="${TEST_RESOURCES_DIR}")
+set(TEST_TARGET_NAME "${CMAKE_PROJECT_NAME}-tests")
+
+file(GLOB TEST_SOURCES "test/*")
+file(GLOB TESTS_AUDIO_COMMON "../common/test/Audio/*")
+
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test/resources)
+include(../common/cmake/find_catch.cmake)
+
+add_executable("${TEST_TARGET_NAME}" ${COMMON_UTILS_SOURCES} ${COMMON_AUDIO_SOURCES} ${SOURCES} ${TEST_SOURCES} ${TESTS_AUDIO_COMMON})
+
+ExternalProject_Add(passport
+ URL https://raw.githubusercontent.com/Azure-Samples/cognitive-services-speech-sdk/master/sampledata/audiofiles/myVoiceIsMyPassportVerifyMe04.wav
+ DOWNLOAD_NO_EXTRACT 1
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ${CMAKE_COMMAND} -E copy <DOWNLOAD_DIR>/myVoiceIsMyPassportVerifyMe04.wav ${CMAKE_CURRENT_SOURCE_DIR}/test/resources
+ INSTALL_COMMAND ""
+ )
+
+add_dependencies(
+ "${TEST_TARGET_NAME}"
+ "passport"
+ "catch2-headers"
+)
+
+
+set(MODEL_FILENAME ds_cnn_clustered_int8.tflite)
+set(MODEL_RESOURCES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/test/resources)
+file(MAKE_DIRECTORY ${MODEL_RESOURCES_DIR})
+set(DEFAULT_MODEL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/test/resources/${MODEL_FILENAME})
+
+# Download the default model
+set(ZOO_COMMON_SUBPATH "models/keyword_spotting/ds_cnn_large/tflite_clustered_int8")
+set(ZOO_MODEL_SUBPATH "${ZOO_COMMON_SUBPATH}/${MODEL_FILENAME}")
+set(ZOO_MODEL_VERSION "68b5fbc77ed28e67b2efc915997ea4477c1d9d5b")
+
+download_file_from_modelzoo(${ZOO_MODEL_VERSION} ${ZOO_MODEL_SUBPATH} ${DEFAULT_MODEL_PATH})
+
+
+target_include_directories("${TEST_TARGET_NAME}" PUBLIC ${TEST_TPIP_INCLUDE}
+ ${ARMNN_INCLUDE_DIR}
+ ${DEPENDENCIES_DIR} ${TEST_RESOURCES_DIR} ${COMMON_INCLUDE_DIR})
+
+target_link_libraries("${TEST_TARGET_NAME}" PUBLIC ${ARMNN_LIBS} -lsndfile -lsamplerate) \ No newline at end of file