From 23c26277086c78704a17f0dae86da947816320c0 Mon Sep 17 00:00:00 2001 From: George Gekov Date: Mon, 16 Aug 2021 11:32:10 +0100 Subject: MLECO-2079 Adding the C++ KWS example Signed-off-by: Eanna O Cathain Change-Id: I81899bbfaada32f478c2e2fc6441eabb94d8d0fc --- samples/common/include/Audio/AudioCapture.hpp | 57 +++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 samples/common/include/Audio/AudioCapture.hpp (limited to 'samples/common/include/Audio/AudioCapture.hpp') diff --git a/samples/common/include/Audio/AudioCapture.hpp b/samples/common/include/Audio/AudioCapture.hpp new file mode 100644 index 0000000000..898bf911f4 --- /dev/null +++ b/samples/common/include/Audio/AudioCapture.hpp @@ -0,0 +1,57 @@ +// +// Copyright © 2021 Arm Ltd and Contributors. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include +#include +#include +#include +#include + +#include "SlidingWindow.hpp" + +namespace audio +{ + +/** +* @brief Class used to capture the audio data loaded from file, and to provide a method of + * extracting correctly positioned and appropriately sized audio windows +* +*/ + class AudioCapture + { + public: + + SlidingWindow m_window; + + /** + * @brief Default constructor + */ + AudioCapture() = default; + + /** + * @brief Function to load the audio data captured from the + * input file to memory. + */ + static std::vector LoadAudioFile(std::string filePath); + + /** + * @brief Function to initialize the sliding window. This will set its position in memory, its + * window size and its stride. + */ + void InitSlidingWindow(float* data, size_t dataSize, int minSamples, size_t stride); + + /** + * Checks whether there is another block of audio in memory to read + */ + bool HasNext(); + + /** + * Retrieves the next block of audio if its available + */ + std::vector Next(); + }; +} // namespace audio \ No newline at end of file -- cgit v1.2.1