audio_processor.h 859 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef AUDIO_PROCESSOR_H
  2. #define AUDIO_PROCESSOR_H
  3. #include <esp_afe_sr_models.h>
  4. #include <freertos/FreeRTOS.h>
  5. #include <freertos/task.h>
  6. #include <freertos/event_groups.h>
  7. #include <string>
  8. #include <vector>
  9. #include <functional>
  10. class AudioProcessor {
  11. public:
  12. AudioProcessor();
  13. ~AudioProcessor();
  14. void Initialize(int channels, bool reference);
  15. void Input(const std::vector<int16_t>& data);
  16. void Start();
  17. void Stop();
  18. bool IsRunning();
  19. void OnOutput(std::function<void(std::vector<int16_t>&& data)> callback);
  20. private:
  21. EventGroupHandle_t event_group_ = nullptr;
  22. esp_afe_sr_data_t* afe_communication_data_ = nullptr;
  23. std::vector<int16_t> input_buffer_;
  24. std::function<void(std::vector<int16_t>&& data)> output_callback_;
  25. int channels_;
  26. bool reference_;
  27. void AudioProcessorTask();
  28. };
  29. #endif