diff options
Diffstat (limited to 'tests/use_case/kws_asr')
-rw-r--r-- | tests/use_case/kws_asr/InferenceTestMicroNetKws.cc | 23 | ||||
-rw-r--r-- | tests/use_case/kws_asr/InferenceTestWav2Letter.cc | 22 | ||||
-rw-r--r-- | tests/use_case/kws_asr/InitModels.cc | 29 | ||||
-rw-r--r-- | tests/use_case/kws_asr/Wav2LetterPostprocessingTest.cc | 31 |
4 files changed, 94 insertions, 11 deletions
diff --git a/tests/use_case/kws_asr/InferenceTestMicroNetKws.cc b/tests/use_case/kws_asr/InferenceTestMicroNetKws.cc index a493021..4ba4693 100644 --- a/tests/use_case/kws_asr/InferenceTestMicroNetKws.cc +++ b/tests/use_case/kws_asr/InferenceTestMicroNetKws.cc @@ -17,10 +17,21 @@ #include "MicroNetKwsModel.hpp" #include "TestData_kws.hpp" #include "TensorFlowLiteMicro.hpp" +#include "BufAttributes.hpp" #include <catch.hpp> #include <random> +namespace arm { + namespace app { + static uint8_t tensorArena[ACTIVATION_BUF_SZ] ACTIVATION_BUF_ATTRIBUTE; + namespace kws { + extern uint8_t* GetModelPointer(); + extern size_t GetModelLen(); + } + } /* namespace app */ +} /* namespace arm */ + namespace test { namespace kws { @@ -75,7 +86,10 @@ TEST_CASE("Running random inference with Tflu and MicroNetKwsModel Int8", "[Micr arm::app::MicroNetKwsModel model{}; REQUIRE_FALSE(model.IsInited()); - REQUIRE(model.Init()); + REQUIRE(model.Init(arm::app::tensorArena, + sizeof(arm::app::tensorArena), + arm::app::kws::GetModelPointer(), + arm::app::kws::GetModelLen())); REQUIRE(model.IsInited()); REQUIRE(RunInferenceRandom(model)); @@ -91,7 +105,10 @@ TEST_CASE("Running inference with Tflu and MicroNetKwsModel Int8", "[MicroNetKws arm::app::MicroNetKwsModel model{}; REQUIRE_FALSE(model.IsInited()); - REQUIRE(model.Init()); + REQUIRE(model.Init(arm::app::tensorArena, + sizeof(arm::app::tensorArena), + arm::app::kws::GetModelPointer(), + arm::app::kws::GetModelLen())); REQUIRE(model.IsInited()); TestInference<int8_t>(input_goldenFV, output_goldenFV, model); @@ -101,4 +118,4 @@ TEST_CASE("Running inference with Tflu and MicroNetKwsModel Int8", "[MicroNetKws } } //namespace -} //namespace
\ No newline at end of file +} //namespace diff --git a/tests/use_case/kws_asr/InferenceTestWav2Letter.cc b/tests/use_case/kws_asr/InferenceTestWav2Letter.cc index 1c5f20a..5d30211 100644 --- a/tests/use_case/kws_asr/InferenceTestWav2Letter.cc +++ b/tests/use_case/kws_asr/InferenceTestWav2Letter.cc @@ -17,10 +17,22 @@ #include "TensorFlowLiteMicro.hpp" #include "Wav2LetterModel.hpp" #include "TestData_asr.hpp" +#include "BufAttributes.hpp" #include <catch.hpp> #include <random> +namespace arm { + namespace app { + static uint8_t tensorArena[ACTIVATION_BUF_SZ] ACTIVATION_BUF_ATTRIBUTE; + + namespace asr { + extern uint8_t* GetModelPointer(); + extern size_t GetModelLen(); + } + } /* namespace app */ +} /* namespace arm */ + namespace test { namespace asr { @@ -59,7 +71,10 @@ TEST_CASE("Running random inference with Tflu and Wav2LetterModel Int8", "[Wav2L arm::app::Wav2LetterModel model{}; REQUIRE_FALSE(model.IsInited()); - REQUIRE(model.Init()); + REQUIRE(model.Init(arm::app::tensorArena, + sizeof(arm::app::tensorArena), + arm::app::asr::GetModelPointer(), + arm::app::asr::GetModelLen())); REQUIRE(model.IsInited()); REQUIRE(RunInferenceRandom(model)); @@ -98,7 +113,10 @@ TEST_CASE("Running inference with Tflu and Wav2LetterModel Int8", "[Wav2Letter]" arm::app::Wav2LetterModel model{}; REQUIRE_FALSE(model.IsInited()); - REQUIRE(model.Init()); + REQUIRE(model.Init(arm::app::tensorArena, + sizeof(arm::app::tensorArena), + arm::app::asr::GetModelPointer(), + arm::app::asr::GetModelLen())); REQUIRE(model.IsInited()); TestInference<int8_t>(input_goldenFV, output_goldenFV, model); diff --git a/tests/use_case/kws_asr/InitModels.cc b/tests/use_case/kws_asr/InitModels.cc index 97aa092..85841a3 100644 --- a/tests/use_case/kws_asr/InitModels.cc +++ b/tests/use_case/kws_asr/InitModels.cc @@ -16,9 +16,25 @@ */ #include "MicroNetKwsModel.hpp" #include "Wav2LetterModel.hpp" +#include "BufAttributes.hpp" #include <catch.hpp> +namespace arm { + namespace app { + static uint8_t tensorArena[ACTIVATION_BUF_SZ] ACTIVATION_BUF_ATTRIBUTE; + + namespace asr { + extern uint8_t* GetModelPointer(); + extern size_t GetModelLen(); + } + namespace kws { + extern uint8_t* GetModelPointer(); + extern size_t GetModelLen(); + } + } /* namespace app */ +} /* namespace arm */ + /* Skip this test, Wav2LetterModel if not Vela optimized but only from ML-zoo will fail. */ TEST_CASE("Init two Models", "[.]") { @@ -35,13 +51,20 @@ TEST_CASE("Init two Models", "[.]") //arm::app::Wav2LetterModel model2; /* model2. */ /* Load/initialise the first model. */ - REQUIRE(model1.Init()); + REQUIRE(model1.Init(arm::app::tensorArena, + sizeof(arm::app::tensorArena), + arm::app::kws::GetModelPointer(), + arm::app::kws::GetModelLen())); /* Allocator instance should have been created. */ REQUIRE(nullptr != model1.GetAllocator()); /* Load the second model using the same allocator as model 1. */ - REQUIRE(model2.Init(model1.GetAllocator())); + REQUIRE(model2.Init(arm::app::tensorArena, + sizeof(arm::app::tensorArena), + arm::app::asr::GetModelPointer(), + arm::app::asr::GetModelLen(), + model1.GetAllocator())); /* Make sure they point to the same allocator object. */ REQUIRE(model1.GetAllocator() == model2.GetAllocator()); @@ -49,4 +72,4 @@ TEST_CASE("Init two Models", "[.]") /* Both models should report being initialised. */ REQUIRE(true == model1.IsInited()); REQUIRE(true == model2.IsInited()); -}
\ No newline at end of file +} diff --git a/tests/use_case/kws_asr/Wav2LetterPostprocessingTest.cc b/tests/use_case/kws_asr/Wav2LetterPostprocessingTest.cc index e343b66..d2071ea 100644 --- a/tests/use_case/kws_asr/Wav2LetterPostprocessingTest.cc +++ b/tests/use_case/kws_asr/Wav2LetterPostprocessingTest.cc @@ -17,11 +17,27 @@ #include "Wav2LetterPostprocess.hpp" #include "Wav2LetterModel.hpp" #include "ClassificationResult.hpp" +#include "BufAttributes.hpp" #include <algorithm> #include <catch.hpp> #include <limits> +namespace arm { + namespace app { + static uint8_t tensorArena[ACTIVATION_BUF_SZ] ACTIVATION_BUF_ATTRIBUTE; + + namespace asr { + extern uint8_t* GetModelPointer(); + extern size_t GetModelLen(); + } + namespace kws { + extern uint8_t* GetModelPointer(); + extern size_t GetModelLen(); + } + } /* namespace app */ +} /* namespace arm */ + template <typename T> static TfLiteTensor GetTestTensor( std::vector<int>& shape, @@ -51,7 +67,10 @@ TEST_CASE("Checking return value") const uint32_t outputCtxLen = 5; arm::app::AsrClassifier classifier; arm::app::Wav2LetterModel model; - model.Init(); + model.Init(arm::app::tensorArena, + sizeof(arm::app::tensorArena), + arm::app::asr::GetModelPointer(), + arm::app::asr::GetModelLen()); std::vector<std::string> dummyLabels = {"a", "b", "$"}; const uint32_t blankTokenIdx = 2; std::vector<arm::app::ClassificationResult> dummyResult; @@ -71,7 +90,10 @@ TEST_CASE("Checking return value") const uint32_t outputCtxLen = 5; arm::app::AsrClassifier classifier; arm::app::Wav2LetterModel model; - model.Init(); + model.Init(arm::app::tensorArena, + sizeof(arm::app::tensorArena), + arm::app::asr::GetModelPointer(), + arm::app::asr::GetModelLen()); std::vector<std::string> dummyLabels = {"a", "b", "$"}; const uint32_t blankTokenIdx = 2; std::vector<arm::app::ClassificationResult> dummyResult; @@ -102,7 +124,10 @@ TEST_CASE("Postprocessing - erasing required elements") std::vector<int> tensorShape = {1, 1, nRows, nCols}; arm::app::AsrClassifier classifier; arm::app::Wav2LetterModel model; - model.Init(); + model.Init(arm::app::tensorArena, + sizeof(arm::app::tensorArena), + arm::app::asr::GetModelPointer(), + arm::app::asr::GetModelLen()); std::vector<std::string> dummyLabels = {"a", "b", "$"}; std::vector<arm::app::ClassificationResult> dummyResult; |