Voice assistant on ESP32 WROOM Dev. Board

🧩 Syntax:
esphome:
  name: esphome-web-f1d734
  friendly_name: wroom32

esp32:
  board: esp32dev
  framework:
    type: arduino

external_components:
  - source: github://pr#4775
    components: [adc, i2s_audio, microphone]
    refresh: 0s

logger:

api:
  encryption:
    key: "gZD5pY+6PnlZiI012s2HwSHF4TWZ/NwRQD+Lq50uzSU="

ota:

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  ap:
    ssid: "Esphome-Web-F1D734"
    password: "8qrKcUO9erk0"

captive_portal:
    
i2s_audio:
  - id: i2s_out
    i2s_lrclk_pin: GPIO26
    i2s_bclk_pin: GPIO27
  - id: i2s_in
    i2s_lrclk_pin: GPIO19
    i2s_bclk_pin: GPIO18

media_player:
  - platform: i2s_audio
    id: media_out
    name: Notifier
    dac_type: external
    i2s_audio_id: i2s_out
    i2s_dout_pin: GPIO14
    mode: mono

microphone:
  - platform: i2s_audio
    adc_type: external
    pdm: false
    id: mic_i2s
    i2s_audio_id: i2s_in
    i2s_din_pin: GPIO23

voice_assistant:
  microphone: mic_i2s
  on_tts_end:
    then:
    - media_player.play_media:
        media_url: !lambda |-
          return x;

binary_sensor:    
  - platform: gpio
    pin: 
      number: GPIO05
      inverted: true
      mode:
        input: true
        pullup: true
    name: Assist Button
    on_press:
      - voice_assistant.start:
    on_release:
      - voice_assistant.stop: