summaryrefslogtreecommitdiff
path: root/tests/use_case/kws_asr
diff options
context:
space:
mode:
Diffstat (limited to 'tests/use_case/kws_asr')
-rw-r--r--tests/use_case/kws_asr/InferenceTestMicroNetKws.cc23
-rw-r--r--tests/use_case/kws_asr/InferenceTestWav2Letter.cc22
-rw-r--r--tests/use_case/kws_asr/InitModels.cc29
-rw-r--r--tests/use_case/kws_asr/Wav2LetterPostprocessingTest.cc31
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;