#ifndef WAKE_WORD_H #define WAKE_WORD_H #include #include #include #include "audio_codec.h" class WakeWord { public: virtual ~WakeWord() = default; virtual void Initialize(AudioCodec* codec) = 0; virtual void Feed(const std::vector& data) = 0; virtual void OnWakeWordDetected(std::function callback) = 0; virtual void StartDetection() = 0; virtual void StopDetection() = 0; virtual bool IsDetectionRunning() = 0; virtual size_t GetFeedSize() = 0; virtual void EncodeWakeWordData() = 0; virtual bool GetWakeWordOpus(std::vector& opus) = 0; virtual const std::string& GetLastDetectedWakeWord() const = 0; }; #endif