ESPHome 2026.8.1
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 with compile-time model data.
 
 WakeWordModel (const std::string &id, std::shared_ptr< ModelData > model_data, uint8_t default_probability_cutoff, size_t sliding_window_average_size, const std::string &wake_word, std::vector< std::string > trained_languages, size_t tensor_arena_size)
 Constructs a wake word model object with a runtime-downloaded model.
 
 ~WakeWordModel () override
 
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
virtual ~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 has_model_data () const
 Return true if the model has usable data. A model without it can never be loaded or run.
 
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::shared_ptr< ModelDatamodel_data_
 
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 tensor_arena_size_probed_ {false}
 
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_ {nullptr}
 
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.
 
size_t probe_arena_size_ ()
 Probes the actual required tensor arena size by trial allocation.
 
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 106 of file streaming_model.h.

Constructor & Destructor Documentation

◆ WakeWordModel() [1/2]

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 with compile-time model data.

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 258 of file streaming_model.cpp.

◆ WakeWordModel() [2/2]

esphome::micro_wake_word::WakeWordModel::WakeWordModel ( const std::string & id,
std::shared_ptr< ModelData > model_data,
uint8_t default_probability_cutoff,
size_t sliding_window_average_size,
const std::string & wake_word,
std::vector< std::string > trained_languages,
size_t tensor_arena_size )

Constructs a wake word model object with a runtime-downloaded model.

Parameters
id(std::string) identifier for this model
model_data(std::shared_ptr<ModelData>) owning handle to the downloaded model buffer; must be valid
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
trained_languages(std::vector<std::string>) Languages the model was trained on
tensor_arena_size(size_t) Size in bytes for allocating the tensor arena

Definition at line 284 of file streaming_model.cpp.

◆ ~WakeWordModel()

esphome::micro_wake_word::WakeWordModel::~WakeWordModel ( )
inlineoverride

Definition at line 137 of file streaming_model.h.

Member Function Documentation

◆ add_trained_language()

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

Definition at line 149 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 333 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 326 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 319 of file streaming_model.cpp.

◆ get_id()

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

Definition at line 146 of file streaming_model.h.

◆ get_internal_only()

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

Definition at line 158 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 150 of file streaming_model.h.

◆ get_wake_word()

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

Definition at line 147 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 12 of file streaming_model.cpp.

Field Documentation

◆ id_

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

Definition at line 165 of file streaming_model.h.

◆ internal_only_

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

Definition at line 169 of file streaming_model.h.

◆ model_data_

std::shared_ptr<ModelData> esphome::micro_wake_word::WakeWordModel::model_data_
protected

Definition at line 163 of file streaming_model.h.

◆ pref_

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

Definition at line 171 of file streaming_model.h.

◆ trained_languages_

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

Definition at line 167 of file streaming_model.h.

◆ wake_word_

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

Definition at line 166 of file streaming_model.h.


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