From aa4bcb14d0cbee910331545dd2fc086b58c37170 Mon Sep 17 00:00:00 2001 From: Kshitij Sisodia Date: Fri, 6 May 2022 09:13:03 +0100 Subject: MLECO-3183: Refactoring application sources Platform agnostic application sources are moved into application api module with their own independent CMake projects. Changes for MLECO-3080 also included - they create CMake projects individial API's (again, platform agnostic) that dependent on the common logic. The API for KWS_API "joint" API has been removed and now the use case relies on individual KWS, and ASR API libraries. Change-Id: I1f7748dc767abb3904634a04e0991b74ac7b756d Signed-off-by: Kshitij Sisodia --- tests/use_case/asr/InferenceTestWav2Letter.cc | 23 +++++++++++++++--- tests/use_case/asr/Wav2LetterPostprocessingTest.cc | 27 +++++++++++++++++++--- 2 files changed, 44 insertions(+), 6 deletions(-) (limited to 'tests/use_case/asr') diff --git a/tests/use_case/asr/InferenceTestWav2Letter.cc b/tests/use_case/asr/InferenceTestWav2Letter.cc index 53c92ab..643f805 100644 --- a/tests/use_case/asr/InferenceTestWav2Letter.cc +++ b/tests/use_case/asr/InferenceTestWav2Letter.cc @@ -17,10 +17,21 @@ #include "TensorFlowLiteMicro.hpp" #include "Wav2LetterModel.hpp" #include "TestData_asr.hpp" +#include "BufAttributes.hpp" #include #include +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 asr */ +} /* namespace app */ +} /* namespace arm */ + using namespace test; bool RunInference(arm::app::Model& model, const int8_t vec[], const size_t copySz) @@ -58,7 +69,10 @@ TEST_CASE("Running random inference with TensorFlow Lite Micro and Wav2LetterMod 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)); @@ -96,11 +110,14 @@ 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(input_goldenFV, output_goldenFV, model); } } -} \ No newline at end of file +} diff --git a/tests/use_case/asr/Wav2LetterPostprocessingTest.cc b/tests/use_case/asr/Wav2LetterPostprocessingTest.cc index 11c4919..9c3d658 100644 --- a/tests/use_case/asr/Wav2LetterPostprocessingTest.cc +++ b/tests/use_case/asr/Wav2LetterPostprocessingTest.cc @@ -17,11 +17,23 @@ #include "Wav2LetterPostprocess.hpp" #include "Wav2LetterModel.hpp" #include "ClassificationResult.hpp" +#include "BufAttributes.hpp" #include #include #include +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 asr */ +} /* namespace app */ +} /* namespace arm */ + template static TfLiteTensor GetTestTensor( std::vector& shape, @@ -51,7 +63,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 dummyLabels = {"a", "b", "$"}; const uint32_t blankTokenIdx = 2; std::vector dummyResult; @@ -71,7 +86,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 dummyLabels = {"a", "b", "$"}; const uint32_t blankTokenIdx = 2; std::vector dummyResult; @@ -102,7 +120,10 @@ TEST_CASE("Postprocessing - erasing required elements") std::vector 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 dummyLabels = {"a", "b", "$"}; std::vector dummyResult; -- cgit v1.2.1