TinyTrainable
 
Loading...
Searching...
No Matches
InputSpeech.h
Go to the documentation of this file.
1
3
4#ifndef INPUT_SPEECH_H
5#define INPUT_SPEECH_H
6
8#include <Arduino.h>
9
11#include "TinyTrainable.h"
12
14#include "Input.h"
15
17// https://www.arduino.cc/en/Reference/PDM/
18#include <PDM.h>
19
21#include <TensorFlowLite.h>
22
23// #include <tensorflow/lite/micro/micro_error_reporter.h>
24#include <tensorflow/lite/micro/micro_interpreter.h>
25#include <tensorflow/lite/micro/micro_mutable_op_resolver.h>
26#include <tensorflow/lite/schema/schema_generated.h>
27// #include <tensorflow/lite/version.h>
28
30#include "../tensorflow_speech/audio_provider.h"
31#include "../tensorflow_speech/command_responder.h"
32#include "../tensorflow_speech/feature_provider.h"
33#include "../tensorflow_speech/main_functions.h"
34#include "../tensorflow_speech/micro_features_micro_model_settings.h"
35#include "../tensorflow_speech/micro_features_model.h"
36#include "../tensorflow_speech/recognize_commands.h"
37
40class InputSpeech : public Input {
41public:
44
45 virtual void setupInstrument(bool serialDebugging) override;
46 virtual void setupSpeechModel(String sounds[3],
47 const unsigned char *model = nullptr) override;
48 virtual void identify() override;
49
50private:
51 // TFLite setup
52 const int NUM_SOUNDS = 3;
53 String _sounds[3];
54
55 // variables for TensorFlow Lite
56 tflite::ErrorReporter *error_reporter = nullptr;
57 const tflite::Model *model = nullptr;
58 tflite::MicroInterpreter *interpreter = nullptr;
59 TfLiteTensor *model_input = nullptr;
62 int32_t previous_time = 0;
63
64 // area memory for input, output, and intermediate arrays
65 static constexpr int kTensorArenaSize = 10 * 1024;
68 int8_t *model_input_buffer = nullptr;
69};
70
71#endif
Input base class.
Arduino library for Tiny Trainable Instruments.
Definition: feature_provider.h:28
Input base class.
Definition: Input.h:15
InputSpeech inherits from Input.
Definition: InputSpeech.h:40
int8_t * model_input_buffer
Definition: InputSpeech.h:68
int32_t previous_time
Definition: InputSpeech.h:62
tflite::ErrorReporter * error_reporter
Definition: InputSpeech.h:56
tflite::MicroInterpreter * interpreter
Definition: InputSpeech.h:58
InputSpeech()
constructor
Definition: InputSpeech.cpp:10
const tflite::Model * model
Definition: InputSpeech.h:57
static constexpr int kTensorArenaSize
Definition: InputSpeech.h:65
uint8_t tensor_arena[kTensorArenaSize]
Definition: InputSpeech.h:66
RecognizeCommands * recognizer
Definition: InputSpeech.h:61
const int NUM_SOUNDS
Definition: InputSpeech.h:52
String _sounds[3]
Definition: InputSpeech.h:53
virtual void identify() override
Definition: InputSpeech.cpp:98
FeatureProvider * feature_provider
Definition: InputSpeech.h:60
TfLiteTensor * model_input
Definition: InputSpeech.h:59
virtual void setupInstrument(bool serialDebugging) override
Definition: InputSpeech.cpp:16
int8_t feature_buffer[kFeatureElementCount]
Definition: InputSpeech.h:67
virtual void setupSpeechModel(String sounds[3], const unsigned char *model=nullptr) override
Definition: InputSpeech.cpp:28
Definition: recognize_commands.h:115
constexpr int kFeatureElementCount
Definition: micro_features_micro_model_settings.h:32