#pragma once #include #include #include #include "esp_err.h" typedef struct { uint32_t sample_rate; uint8_t channels; uint8_t bits_per_sample; int output_volume; float input_gain_db; } voice_audio_open_config_t; esp_err_t voice_audio_open(const voice_audio_open_config_t *cfg, char *err, size_t err_len); void voice_audio_close(void); bool voice_audio_is_open(void); esp_err_t voice_audio_read_pcm(int16_t *pcm, size_t samples, uint32_t timeout_ms, char *err, size_t err_len); esp_err_t voice_audio_write_pcm(const int16_t *pcm, size_t samples, uint32_t timeout_ms, char *err, size_t err_len);