ESPHome 2025.5.0
Loading...
Searching...
No Matches
esphome::micro_wake_word::WakeWordModel Class Referencefinal

#include <streaming_model.h>

Inheritance diagram for esphome::micro_wake_word::WakeWordModel:
esphome::micro_wake_word::StreamingModel

Public Member Functions

 WakeWordModel (const std::string &id, const uint8_t *model_start, uint8_t default_probability_cutoff, size_t sliding_window_average_size, const std::string &wake_word, size_t tensor_arena_size, bool default_enabled, bool internal_only)
 Constructs a wake word model object.
 
void log_model_config () override
 
DetectionEvent determine_detected () override
 Checks for the wake word by comparing the mean probability in the sliding window with the probability cutoff.
 
const std::string & get_id () const
 
const std::string & get_wake_word () const
 
void add_trained_language (const std::string &language)
 
const std::vector< std::string > & get_trained_languages () const
 
void enable () override
 Enable the model and save to flash. The next performing_streaming_inference call will load it.
 
void disable () override
 Disable the model and save to flash. The next performing_streaming_inference call will unload it.
 
bool get_internal_only ()
 
- Public Member Functions inherited from esphome::micro_wake_word::StreamingModel
bool perform_streaming_inference (const int8_t features[PREPROCESSOR_FEATURE_SIZE])
 
void reset_probabilities ()
 Sets all recent_streaming_probabilities to 0 and resets the ignore window count.
 
void unload_model ()
 Destroys the TFLite interpreter and frees the tensor and variable arenas' memory.
 
bool is_enabled () const
 Return true if the model is enabled.
 
bool get_unprocessed_probability_status () const
 
uint8_t get_default_probability_cutoff () const
 
uint8_t get_probability_cutoff () const
 
void set_probability_cutoff (uint8_t probability_cutoff)
 

Protected Attributes

std::string id_
 
std::string wake_word_
 
std::vector< std::string > trained_languages_
 
bool internal_only_
 
ESPPreferenceObject pref_
 
- Protected Attributes inherited from esphome::micro_wake_word::StreamingModel
tflite::MicroMutableOpResolver< 20 > streaming_op_resolver_
 
bool loaded_ {false}
 
bool enabled_ {true}
 
bool unprocessed_probability_status_ {false}
 
uint8_t current_stride_step_ {0}
 
int16_t ignore_windows_ {-MIN_SLICES_BEFORE_DETECTION}
 
uint8_t default_probability_cutoff_
 
uint8_t probability_cutoff_
 
size_t sliding_window_size_
 
size_t last_n_index_ {0}
 
size_t tensor_arena_size_
 
std::vector< uint8_t > recent_streaming_probabilities_
 
const uint8_t * model_start_
 
uint8_t * tensor_arena_ {nullptr}
 
uint8_t * var_arena_ {nullptr}
 
std::unique_ptr< tflite::MicroInterpreter > interpreter_
 
tflite::MicroResourceVariables * mrv_ {nullptr}
 
tflite::MicroAllocator * ma_ {nullptr}
 

Additional Inherited Members

- Protected Member Functions inherited from esphome::micro_wake_word::StreamingModel
bool load_model_ ()
 Allocates tensor and variable arenas and sets up the model interpreter.
 
bool register_streaming_ops_ (tflite::MicroMutableOpResolver< 20 > &op_resolver)
 Returns true if successfully registered the streaming model's TensorFlow operations.
 

Detailed Description

Definition at line 93 of file streaming_model.h.

Constructor & Destructor Documentation

◆ WakeWordModel()

esphome::micro_wake_word::WakeWordModel::WakeWordModel ( const std::string & id,
const uint8_t * model_start,
uint8_t default_probability_cutoff,
size_t sliding_window_average_size,
const std::string & wake_word,
size_t tensor_arena_size,
bool default_enabled,
bool internal_only )

Constructs a wake word model object.

Parameters
id(std::string) identifier for this model
model_start(const uint8_t *) pointer to the start of the model's TFLite FlatBuffer
default_probability_cutoff(uint8_t) probability cutoff for acceping the wake word has been said
sliding_window_average_size(size_t) the length of the sliding window computing the mean rolling probability
wake_word(std::string) Friendly name of the wake word
tensor_arena_size(size_t) Size in bytes for allocating the tensor arena
default_enabled(bool) If true, it will be enabled by default on first boot
internal_only(bool) If true, the model will not be exposed to HomeAssistant as an available model

Definition at line 162 of file streaming_model.cpp.

Member Function Documentation

◆ add_trained_language()

void esphome::micro_wake_word::WakeWordModel::add_trained_language ( const std::string & language)
inline

Definition at line 119 of file streaming_model.h.

◆ determine_detected()

DetectionEvent esphome::micro_wake_word::WakeWordModel::determine_detected ( )
overridevirtual

Checks for the wake word by comparing the mean probability in the sliding window with the probability cutoff.

Returns
True if wake word is detected, false otherwise

Implements esphome::micro_wake_word::StreamingModel.

Definition at line 202 of file streaming_model.cpp.

◆ disable()

void esphome::micro_wake_word::WakeWordModel::disable ( )
overridevirtual

Disable the model and save to flash. The next performing_streaming_inference call will unload it.

Reimplemented from esphome::micro_wake_word::StreamingModel.

Definition at line 195 of file streaming_model.cpp.

◆ enable()

void esphome::micro_wake_word::WakeWordModel::enable ( )
overridevirtual

Enable the model and save to flash. The next performing_streaming_inference call will load it.

Reimplemented from esphome::micro_wake_word::StreamingModel.

Definition at line 188 of file streaming_model.cpp.

◆ get_id()

const std::string & esphome::micro_wake_word::WakeWordModel::get_id ( ) const
inline

Definition at line 116 of file streaming_model.h.

◆ get_internal_only()

bool esphome::micro_wake_word::WakeWordModel::get_internal_only ( )
inline

Definition at line 128 of file streaming_model.h.

◆ get_trained_languages()

const std::vector< std::string > & esphome::micro_wake_word::WakeWordModel::get_trained_languages ( ) const
inline

Definition at line 120 of file streaming_model.h.

◆ get_wake_word()

const std::string & esphome::micro_wake_word::WakeWordModel::get_wake_word ( ) const
inline

Definition at line 117 of file streaming_model.h.

◆ log_model_config()

void esphome::micro_wake_word::WakeWordModel::log_model_config ( )
overridevirtual

Implements esphome::micro_wake_word::StreamingModel.

Definition at line 13 of file streaming_model.cpp.

Field Documentation

◆ id_

std::string esphome::micro_wake_word::WakeWordModel::id_
protected

Definition at line 131 of file streaming_model.h.

◆ internal_only_

bool esphome::micro_wake_word::WakeWordModel::internal_only_
protected

Definition at line 135 of file streaming_model.h.

◆ pref_

ESPPreferenceObject esphome::micro_wake_word::WakeWordModel::pref_
protected

Definition at line 137 of file streaming_model.h.

◆ trained_languages_

std::vector<std::string> esphome::micro_wake_word::WakeWordModel::trained_languages_
protected

Definition at line 133 of file streaming_model.h.

◆ wake_word_

std::string esphome::micro_wake_word::WakeWordModel::wake_word_
protected

Definition at line 132 of file streaming_model.h.


The documentation for this class was generated from the following files: