aboutsummaryrefslogtreecommitdiff
path: root/samples/common/test/Audio/AudioCaptureTest.cpp
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/common/test/Audio/AudioCaptureTest.cpp
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/common/test/Audio/AudioCaptureTest.cpp')
-rw-r--r--samples/common/test/Audio/AudioCaptureTest.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/samples/common/test/Audio/AudioCaptureTest.cpp b/samples/common/test/Audio/AudioCaptureTest.cpp
new file mode 100644
index 0000000000..b8ea7b285c
--- /dev/null
+++ b/samples/common/test/Audio/AudioCaptureTest.cpp
@@ -0,0 +1,61 @@
+//
+// Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#define CATCH_CONFIG_MAIN
+#include <catch.hpp>
+#include <limits>
+
+#include "AudioCapture.hpp"
+
+TEST_CASE("Test capture of audio file")
+{
+ std::string testResources = TEST_RESOURCE_DIR;
+ REQUIRE(testResources != "");
+ std::string file = testResources + "/" + "myVoiceIsMyPassportVerifyMe04.wav";
+ audio::AudioCapture capture;
+ std::vector<float> audioData = capture.LoadAudioFile(file);
+ capture.InitSlidingWindow(audioData.data(), audioData.size(), 47712, 16000);
+
+ std::vector<float> firstAudioBlock = capture.Next();
+ float actual1 = firstAudioBlock.at(0);
+ float actual2 = firstAudioBlock.at(47000);
+ CHECK(std::to_string(actual1) == "0.000352");
+ CHECK(std::to_string(actual2) == "-0.056441");
+ CHECK(firstAudioBlock.size() == 47712);
+
+ CHECK(capture.HasNext() == true);
+
+ std::vector<float> secondAudioBlock = capture.Next();
+ float actual3 = secondAudioBlock.at(0);
+ float actual4 = secondAudioBlock.at(47000);
+ CHECK(std::to_string(actual3) == "0.102077");
+ CHECK(std::to_string(actual4) == "0.000194");
+ CHECK(capture.HasNext() == true);
+
+ std::vector<float> thirdAudioBlock = capture.Next();
+ float actual5 = thirdAudioBlock.at(0);
+ float actual6 = thirdAudioBlock.at(33500);
+ float actual7 = thirdAudioBlock.at(33600);
+ CHECK(std::to_string(actual5) == "-0.076416");
+ CHECK(std::to_string(actual6) == "-0.000275");
+ CHECK(std::to_string(actual7) == "0.000000");
+ CHECK(capture.HasNext() == false);
+}
+
+TEST_CASE("Test sliding window of audio capture")
+{
+ std::string testResources = TEST_RESOURCE_DIR;
+ REQUIRE(testResources != "");
+ std::string file = testResources + "/" + "myVoiceIsMyPassportVerifyMe04.wav";
+ audio::AudioCapture capture;
+ std::vector<float> audioData = capture.LoadAudioFile(file);
+ capture.InitSlidingWindow(audioData.data(), audioData.size(), 47712, 16000);
+ capture.Next();
+ capture.Next();
+
+ CHECK(capture.HasNext() == true);
+ capture.Next();
+ CHECK(capture.HasNext() == false);
+}