#ifndef WAKE_WORD_DETECT_H #define WAKE_WORD_DETECT_H #include #include #include #include "model_path.h" #include "esp_wn_iface.h" #include "esp_wn_models.h" #include #include #include #include #include #include #include "audio_codec.h" #include class WakeWordDetect { public: WakeWordDetect(); ~WakeWordDetect(); void Initialize(AudioCodec* codec); void Feed(const std::vector& data); void StartDetection(); void StopDetection(); bool IsDetectionRunning(); size_t GetFeedSize(); private: esp_wn_iface_t *wakenet_iface_ = nullptr; model_iface_data_t *wakenet_data_ = nullptr; srmodel_list_t *wakenet_model_ = nullptr; EventGroupHandle_t event_group_; AudioCodec* codec_ = nullptr; }; #endif