ESPHome 2025.5.0
Loading...
Searching...
No Matches
esphome::i2s_audio::I2SAudioMicrophone Class Reference

#include <i2s_audio_microphone.h>

Inheritance diagram for esphome::i2s_audio::I2SAudioMicrophone:
esphome::i2s_audio::I2SAudioIn esphome::microphone::Microphone esphome::Component esphome::i2s_audio::I2SAudioBase esphome::Parented< I2SAudioComponent >

Public Member Functions

void setup () override
 
void start () override
 
void stop () override
 
void loop () override
 
void set_correct_dc_offset (bool correct_dc_offset)
 
void set_din_pin (int8_t pin)
 
void set_din_pin (int8_t pin)
 
void set_pdm (bool pdm)
 
void set_adc_channel (adc1_channel_t channel)
 
- Public Member Functions inherited from esphome::i2s_audio::I2SAudioBase
void set_i2s_mode (i2s_mode_t mode)
 
void set_channel (i2s_channel_fmt_t channel)
 
void set_bits_per_sample (i2s_bits_per_sample_t bits_per_sample)
 
void set_bits_per_channel (i2s_bits_per_chan_t bits_per_channel)
 
void set_i2s_role (i2s_role_t role)
 
void set_slot_mode (i2s_slot_mode_t slot_mode)
 
void set_std_slot_mask (i2s_std_slot_mask_t std_slot_mask)
 
void set_slot_bit_width (i2s_slot_bit_width_t slot_bit_width)
 
void set_sample_rate (uint32_t sample_rate)
 
void set_use_apll (uint32_t use_apll)
 
void set_mclk_multiple (i2s_mclk_multiple_t mclk_multiple)
 
- Public Member Functions inherited from esphome::Parented< I2SAudioComponent >
 Parented ()
 
 Parented (I2SAudioComponent *parent)
 
I2SAudioComponent * get_parent () const
 Get the parent of this object.
 
void set_parent (I2SAudioComponent *parent)
 Set the parent of this object.
 
- Public Member Functions inherited from esphome::microphone::Microphone
void add_data_callback (std::function< void(const std::vector< uint8_t > &)> &&data_callback)
 
bool is_running () const
 
bool is_stopped () const
 
void set_mute_state (bool is_muted)
 
bool get_mute_state ()
 
audio::AudioStreamInfo get_audio_stream_info ()
 
- Public Member Functions inherited from esphome::Component
virtual void dump_config ()
 
virtual float get_setup_priority () const
 priority of setup().
 
float get_actual_setup_priority () const
 
void set_setup_priority (float priority)
 
virtual float get_loop_priority () const
 priority of loop().
 
void call ()
 
virtual void on_shutdown ()
 
virtual void on_safe_shutdown ()
 
uint32_t get_component_state () const
 
virtual void mark_failed ()
 Mark this component as failed.
 
void mark_failed (const char *message)
 
bool is_failed () const
 
bool is_ready () const
 
virtual bool can_proceed ()
 
bool status_has_warning () const
 
bool status_has_error () const
 
void status_set_warning (const char *message="unspecified")
 
void status_set_error (const char *message="unspecified")
 
void status_clear_warning ()
 
void status_clear_error ()
 
void status_momentary_warning (const std::string &name, uint32_t length=5000)
 
void status_momentary_error (const std::string &name, uint32_t length=5000)
 
bool has_overridden_loop () const
 
void set_component_source (const char *source)
 Set where this component was loaded from for some debug messages.
 
const char * get_component_source () const
 Get the integration where this component was declared as a string.
 
bool should_warn_of_blocking (uint32_t blocking_time)
 

Protected Member Functions

bool start_driver_ ()
 
void stop_driver_ ()
 
void fix_dc_offset_ (std::vector< uint8_t > &data)
 Attempts to correct a microphone DC offset; e.g., a microphones silent level is offset from 0.
 
size_t read_ (uint8_t *buf, size_t len, TickType_t ticks_to_wait)
 
void configure_stream_settings_ ()
 Sets the Microphone audio_stream_info_ member variable to the configured I2S settings.
 
- Protected Member Functions inherited from esphome::microphone::Microphone
std::vector< uint8_t > silence_audio_ (std::vector< uint8_t > data)
 
- Protected Member Functions inherited from esphome::Component
virtual void call_loop ()
 
virtual void call_setup ()
 
virtual void call_dump_config ()
 
void set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a unique name.
 
void set_interval (uint32_t interval, std::function< void()> &&f)
 
bool cancel_interval (const std::string &name)
 Cancel an interval function.
 
void set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 Set an retry function with a unique name.
 
void set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 
bool cancel_retry (const std::string &name)
 Cancel a retry function.
 
void set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a unique name.
 
void set_timeout (uint32_t timeout, std::function< void()> &&f)
 
bool cancel_timeout (const std::string &name)
 Cancel a timeout function.
 
void defer (const std::string &name, std::function< void()> &&f)
 Defer a callback to the next loop() call.
 
void defer (std::function< void()> &&f)
 Defer a callback to the next loop() call.
 
bool cancel_defer (const std::string &name)
 Cancel a defer callback using the specified name, name must not be empty.
 

Static Protected Member Functions

static void mic_task (void *params)
 

Protected Attributes

SemaphoreHandle_t active_listeners_semaphore_ {nullptr}
 
EventGroupHandle_t event_group_ {nullptr}
 
TaskHandle_t task_handle_ {nullptr}
 
int8_t din_pin_ {I2S_PIN_NO_CHANGE}
 
adc1_channel_t adc_channel_ {ADC1_CHANNEL_MAX}
 
bool adc_ {false}
 
gpio_num_t din_pin_ {I2S_GPIO_UNUSED}
 
i2s_chan_handle_t rx_handle_
 
bool pdm_ {false}
 
bool correct_dc_offset_
 
int32_t dc_offset_ {0}
 
- Protected Attributes inherited from esphome::i2s_audio::I2SAudioBase
i2s_mode_t i2s_mode_ {}
 
i2s_channel_fmt_t channel_
 
i2s_bits_per_sample_t bits_per_sample_
 
i2s_bits_per_chan_t bits_per_channel_
 
i2s_role_t i2s_role_ {}
 
i2s_slot_mode_t slot_mode_
 
i2s_std_slot_mask_t std_slot_mask_
 
i2s_slot_bit_width_t slot_bit_width_
 
uint32_t sample_rate_
 
bool use_apll_
 
i2s_mclk_multiple_t mclk_multiple_
 
- Protected Attributes inherited from esphome::Parented< I2SAudioComponent >
I2SAudioComponent * parent_
 
- Protected Attributes inherited from esphome::microphone::Microphone
State state_ {STATE_STOPPED}
 
bool mute_state_ {false}
 
audio::AudioStreamInfo audio_stream_info_
 
CallbackManager< void(const std::vector< uint8_t > &)> data_callbacks_ {}
 
- Protected Attributes inherited from esphome::Component
uint32_t component_state_ {0x0000}
 State of this component.
 
float setup_priority_override_ {NAN}
 
const char * component_source_ {nullptr}
 
uint32_t warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_MS}
 
std::string error_message_ {}
 

Detailed Description

Definition at line 18 of file i2s_audio_microphone.h.

Member Function Documentation

◆ configure_stream_settings_()

void esphome::i2s_audio::I2SAudioMicrophone::configure_stream_settings_ ( )
protected

Sets the Microphone audio_stream_info_ member variable to the configured I2S settings.

Definition at line 82 of file i2s_audio_microphone.cpp.

◆ fix_dc_offset_()

void esphome::i2s_audio::I2SAudioMicrophone::fix_dc_offset_ ( std::vector< uint8_t > & data)
protected

Attempts to correct a microphone DC offset; e.g., a microphones silent level is offset from 0.

Applies a correction offset that is updated using an exponential moving average for all samples away from 0.

Parameters
data

Definition at line 395 of file i2s_audio_microphone.cpp.

◆ loop()

void esphome::i2s_audio::I2SAudioMicrophone::loop ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 451 of file i2s_audio_microphone.cpp.

◆ mic_task()

void esphome::i2s_audio::I2SAudioMicrophone::mic_task ( void * params)
staticprotected

Definition at line 350 of file i2s_audio_microphone.cpp.

◆ read_()

size_t esphome::i2s_audio::I2SAudioMicrophone::read_ ( uint8_t * buf,
size_t len,
TickType_t ticks_to_wait )
protected

Definition at line 418 of file i2s_audio_microphone.cpp.

◆ set_adc_channel()

void esphome::i2s_audio::I2SAudioMicrophone::set_adc_channel ( adc1_channel_t channel)
inline

Definition at line 38 of file i2s_audio_microphone.h.

◆ set_correct_dc_offset()

void esphome::i2s_audio::I2SAudioMicrophone::set_correct_dc_offset ( bool correct_dc_offset)
inline

Definition at line 26 of file i2s_audio_microphone.h.

◆ set_din_pin() [1/2]

void esphome::i2s_audio::I2SAudioMicrophone::set_din_pin ( int8_t pin)
inline

Definition at line 29 of file i2s_audio_microphone.h.

◆ set_din_pin() [2/2]

void esphome::i2s_audio::I2SAudioMicrophone::set_din_pin ( int8_t pin)
inline

Definition at line 31 of file i2s_audio_microphone.h.

◆ set_pdm()

void esphome::i2s_audio::I2SAudioMicrophone::set_pdm ( bool pdm)
inline

Definition at line 34 of file i2s_audio_microphone.h.

◆ setup()

void esphome::i2s_audio::I2SAudioMicrophone::setup ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 42 of file i2s_audio_microphone.cpp.

◆ start()

void esphome::i2s_audio::I2SAudioMicrophone::start ( )
overridevirtual

Implements esphome::microphone::Microphone.

Definition at line 119 of file i2s_audio_microphone.cpp.

◆ start_driver_()

bool esphome::i2s_audio::I2SAudioMicrophone::start_driver_ ( )
protected

Definition at line 126 of file i2s_audio_microphone.cpp.

◆ stop()

void esphome::i2s_audio::I2SAudioMicrophone::stop ( )
overridevirtual

Implements esphome::microphone::Microphone.

Definition at line 298 of file i2s_audio_microphone.cpp.

◆ stop_driver_()

void esphome::i2s_audio::I2SAudioMicrophone::stop_driver_ ( )
protected

Definition at line 305 of file i2s_audio_microphone.cpp.

Field Documentation

◆ active_listeners_semaphore_

SemaphoreHandle_t esphome::i2s_audio::I2SAudioMicrophone::active_listeners_semaphore_ {nullptr}
protected

Definition at line 61 of file i2s_audio_microphone.h.

◆ adc_

bool esphome::i2s_audio::I2SAudioMicrophone::adc_ {false}
protected

Definition at line 70 of file i2s_audio_microphone.h.

◆ adc_channel_

adc1_channel_t esphome::i2s_audio::I2SAudioMicrophone::adc_channel_ {ADC1_CHANNEL_MAX}
protected

Definition at line 69 of file i2s_audio_microphone.h.

◆ correct_dc_offset_

bool esphome::i2s_audio::I2SAudioMicrophone::correct_dc_offset_
protected

Definition at line 78 of file i2s_audio_microphone.h.

◆ dc_offset_

int32_t esphome::i2s_audio::I2SAudioMicrophone::dc_offset_ {0}
protected

Definition at line 79 of file i2s_audio_microphone.h.

◆ din_pin_ [1/2]

int8_t esphome::i2s_audio::I2SAudioMicrophone::din_pin_ {I2S_PIN_NO_CHANGE}
protected

Definition at line 67 of file i2s_audio_microphone.h.

◆ din_pin_ [2/2]

gpio_num_t esphome::i2s_audio::I2SAudioMicrophone::din_pin_ {I2S_GPIO_UNUSED}
protected

Definition at line 73 of file i2s_audio_microphone.h.

◆ event_group_

EventGroupHandle_t esphome::i2s_audio::I2SAudioMicrophone::event_group_ {nullptr}
protected

Definition at line 62 of file i2s_audio_microphone.h.

◆ pdm_

bool esphome::i2s_audio::I2SAudioMicrophone::pdm_ {false}
protected

Definition at line 76 of file i2s_audio_microphone.h.

◆ rx_handle_

i2s_chan_handle_t esphome::i2s_audio::I2SAudioMicrophone::rx_handle_
protected

Definition at line 74 of file i2s_audio_microphone.h.

◆ task_handle_

TaskHandle_t esphome::i2s_audio::I2SAudioMicrophone::task_handle_ {nullptr}
protected

Definition at line 64 of file i2s_audio_microphone.h.


The documentation for this class was generated from the following files: