wake_word.h 690 B

12345678910111213141516171819202122232425
  1. #ifndef WAKE_WORD_H
  2. #define WAKE_WORD_H
  3. #include <string>
  4. #include <vector>
  5. #include <functional>
  6. #include "audio_codec.h"
  7. class WakeWord {
  8. public:
  9. virtual ~WakeWord() = default;
  10. virtual bool Initialize(AudioCodec* codec) = 0;
  11. virtual void Feed(const std::vector<int16_t>& data) = 0;
  12. virtual void OnWakeWordDetected(std::function<void(const std::string& wake_word)> callback) = 0;
  13. virtual void Start() = 0;
  14. virtual void Stop() = 0;
  15. virtual size_t GetFeedSize() = 0;
  16. virtual void EncodeWakeWordData() = 0;
  17. virtual bool GetWakeWordOpus(std::vector<uint8_t>& opus) = 0;
  18. virtual const std::string& GetLastDetectedWakeWord() const = 0;
  19. };
  20. #endif