Embed .mp3 or .wav into firmware for use with i2s media player?

I’ve got a esp32s3-zero based smart speaker, which I use with HAs voice assistant.
I’ve had it playing a short pip sound when it recognises the wake work. Like this:

- media_player.play_media: "http://192.168.5.11:8123/local/Voice_assistant/pip.mp3"

The files’s pulled from my HA installs WWW/Voice_assistant folder.

Is there a way to embed an audio file in the firmware and play it from there, so it doesnt have to pull it over my network?

I’ve had a search and found a couple of things that looked close, but nothing I could get working with media_player.

Thanks a lot

So… Why not mention the couple ways that you did find so that people aren’t suggesting the same ones or better yet, why not mention what you tried and what the problem was or the error displayed for whichever ones you tried and want to give up on, rather than correcting whatever the issue was and make it work.

If you had a search and found a couple things, I would expect that you found official Esphome documentation that specifically gives you instructions for taking .mp3 or .wav files and converting them to a format that can be read through Esphome and also can be stored on the esp devices themselves, instead of network streaming audio/files? Assuming that you did find that option, what was the problem you were having?

https://esphome.io/guides/audio_clips_for_i2s

You also have to manage your expectations too! If your using esp32 boards then you can’t expect them to handle everything with media player, wake word, voice, speaker, storing media files, and doing basic IO functions w/automations and everything else… You’re going to run into limititations and will have to pick and choose which things are necessary and which can be left out.

Not unreasonable suggestions but I made so little progress, and haven’t noted what lead to what, that I can’t properly lay out what I’d tried.
The best I think I got to was something that supported speaker but not media player.
I’m only hoping for a ‘this example should be relevant’ , or ‘this works for me’.

Following that link, I get part way… Including the .h doesn’t raise any issues.
If I try to play it like this though:

- media_player.play_media: !lambda return startup_raw;

…compiling shows me:
error: could not convert 'startup_raw' from 'std::vector<unsigned char>' to 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'}

Wrapping startup_raw in "s seems to stop it complaining, but I get no pip sound.
I dont see anything about it in debug logs once the esp’s booted

Well, I’m not sure how you are expecting anyone to help you if you don’t know any answers, don’t provide any parts of the config that’s necessary or relevant. So it supported Speaker but not Media Player? Can you explain to me why you can only use media_player or why you have to use it? What are you doing with media player that can’t be be done with Speaker/i2s Speaker and configuring a microphone?

I think I was adding what I found when I tried whats on the page you linked to as you replied.

I’ve tried all sorts of combinations of things to make a useful assistant mic/speaker, and my current setup with media_player is the only one that got me somewhere useful.
IIRC, I couldn’t send TTS notifications to it when using speaker and can when using media_player.

If it’s something that can’t be done with media_player, thatd be a useful thing to be sure of. I’d leave it as it was, playing from HAs www folder.

I’m not sure which bits might be useful to know, so here’s the lot (bar a few things common to most/all of my esphome devices that I broke out into seperate files):

substitutions:
  friendly_name: Jarvis2
  host_name: jarvis2

  log_level:      DEBUG          # NONE, ERROR, WARN, INFO, DEBUG (Default), VERBOSE, VERY_VERBOSE
  start_volume:   75%

  static_ip:      192.168.5.36
  static_gateway: 192.168.5.254
  static_subnet:  255.255.255.0
  static_dns:     192.168.5.2

  assist_pin:     GPIO13        # Button to toggle assist
  vol_up_pin:     GPIO12        # Button for Vol+
  vol_down_pin:   GPIO11        # Button for Vol-

  mic_ws_pin:     GPIO08        # Mic WS
  mic_ck_pin:     GPIO09        # Mic CK
  mic_din_pin:    GPIO07        # Mic SD/DA

  amp_din_pin:    GPIO04        # Amp DIN
  amp_bclk_pin:   GPIO05        # Amp BCLK
  amp_lrc_pin:    GPIO06        # Amp LRC

  rgb_led_pin:    GPIO21        # RGB LED pin, GPIO21 for onboard LED
  no_leds:        "1"           # Number of RGB LEDs, 1 for onboard LED
  led_brightness: 25%           # RGB LED brightness for simple on/off
  min_led_brightness: 20%       # Min LED brghtness for effects
  max_led_brightness: 40%       # Max LED brghtness for effects

  assist_mic_gain: 20dBFS       # 31dBFS # Assistant mic gain. Between 0dBFS and 31dBFS
  assist_noise_supression: "3"  # Assistant noise suppression. Between 0 and 4 inclusive
  assist_vol_multiplier: "1"    # "15" # Assistant volume multiplier. Must be larger than 0. Defaults to 1 (disabled)

  # Sounds
  # connected_sound:         "http://192.168.5.11:8123/local/Voice_assistant/jarvis_connected.mp3"
  # stop_listening_sound:    "http://192.168.5.11:8123/local/Voice_assistant/ill_stop_listening.mp3"
  # start_listening_sound:   "http://192.168.5.11:8123/local/Voice_assistant/im_listening.mp3"
  pip_sound:               "http://192.168.5.11:8123/local/Voice_assistant/pip.mp3"
  test_sound:              "http://192.168.5.11:8123/local/Voice_assistant/testing_1_2_3_testing.mp3"

esphome:
  name: $host_name
  friendly_name: $friendly_name
  platformio_options:
    board_build.flash_mode: dio
  includes:
    - pip.h
  on_boot:
    # - logger.log:
    #     level: ERROR
    #     format: "****Booted"
    - media_player.volume_set: $start_volume
    # - media_player.play_media: $pip_sound
    - media_player.play_media: !lambda return "pip";
    - light.turn_on:
        id: rgb_led
        brightness: $led_brightness
        blue: 0%
        red: 100%
        green: 100%
        # effect: pulse

esp32:
  board: esp32-s3-devkitc-1
  flash_size: 4MB
  variant: esp32s3
  framework:
    type: arduino

psram:
  mode: quad
  speed: 80MHz

packages:
  logger: !include common/logger.yaml
  api_ota: !include common/api_ota.yaml
  wifi: !include common/wifi.yaml
  web_server: !include common/web_server.yaml
  sensor: !include common/sensor.yaml
  binary_sensor: !include common/binary_sensor.yaml
  button: !include common/button.yaml
  text_sensors: !include common/text_sensor.yaml
  time: !include common/sync_time.yaml
  switch: !include common/switch.yaml

logger:                                 # Enable logging. https://esphome.io/components/logger.html
  level: $log_level 

wifi:                                   # WiFi connection details. Without domain:, defaults to .local. https://esphome.io/components/wifi.html
  # use_address: "192.168.5.103"
  manual_ip:
    static_ip: $static_ip
    gateway: $static_gateway
    subnet: $static_subnet
    dns1: $static_dns
  power_save_mode: HIGH                # NONE, LIGHT, HIGH

web_server:
  version: 3                           # Version to use. 1, 2 or 3

binary_sensor:
  - platform: gpio
    pin:
      number: $assist_pin
      mode:
        input: true
        pullup: true
    name: "Assist"
    filters:
      - invert:
    internal: true
    on_press:
      then:
        - light.turn_on:
            id: rgb_led
            brightness: $led_brightness
            blue: 100%
            red: 100%
            green: 0%
        - delay: 250ms
        - light.turn_off:
            id: rgb_led
        - if:
            condition:
              - voice_assistant.is_running
            then:
              - voice_assistant.stop
              - light.turn_on:
                  id: rgb_led
                  brightness: $led_brightness
                  blue: 0%
                  red: 100%
                  green: 100%
                  effect: pulse
              # - media_player.play_media: $pip_sound
            else:
              - voice_assistant.start_continuous
              - light.turn_off:
                  id: rgb_led
              # - media_player.play_media: $pip_sound
  - platform: gpio
    pin:
      number: $vol_up_pin
      mode:
        input: true
        pullup: true
    name: "Vol+"
    filters:
      - invert:
    internal: true
    on_press:
      - media_player.volume_up
      # - media_player.play_media: $pip_sound
      - light.turn_on:
          id: rgb_led
          brightness: $led_brightness
          blue: 100%
          red: 100%
          green: 0%
      - delay: 250ms

      - if:
          condition:
            - voice_assistant.is_running
          then:
            - light.turn_off:
                id: rgb_led
          else:
            - light.turn_on:
                id: rgb_led
                brightness: $led_brightness
                blue: 0%
                red: 100%
                green: 100%
                effect: pulse
  - platform: gpio
    pin:
      number: $vol_down_pin
      mode:
        input: true
        pullup: true
    name: "Vol-"
    filters:
      - invert:
    internal: true
    on_press:
      - media_player.volume_down
      # - media_player.play_media: $pip_sound
      - light.turn_on:
          id: rgb_led
          brightness: $led_brightness
          blue: 100%
          red: 100%
          green: 0%
      - delay: 250ms
      - if:
          condition:
            - voice_assistant.is_running
          then:
            - light.turn_off:
                id: rgb_led
          else:
            - light.turn_on:
                id: rgb_led
                brightness: $led_brightness
                blue: 0%
                red: 100%
                green: 100%
                effect: pulse

light:
  - platform: esp32_rmt_led_strip
    rgb_order: GRB
    pin: $rgb_led_pin
    num_leds: $no_leds
    rmt_channel: 0
    chipset: ws2812
    name: "RGB LED"
    id: "rgb_led"
    default_transition_length: 0ms
    effects:
      - pulse:
          min_brightness: $min_led_brightness
          max_brightness: $max_led_brightness
      - pulse:
          name: "Fast Pulse"
          transition_length: 0.5s
          update_interval: 0.5s
          min_brightness: $min_led_brightness
          max_brightness: $max_led_brightness
      - pulse:
          name: "Slow Pulse"
          # transition_length: 1s       # defaults to 1s
          update_interval: 2s
          min_brightness: $min_led_brightness
          max_brightness: $max_led_brightness
      - pulse:
          name: "Breathe"
          transition_length:
            on_length: 1s
            off_length: 500ms
          update_interval: 1.5s
          min_brightness: $min_led_brightness
          max_brightness: $led_brightness
      - random:
          name: Random
      - random:
          name: Random, custom timing
          transition_length: 500ms
          update_interval: 2s
      - strobe:
      - strobe:
          name: Strobe Effect, RGBW
          colors:
            - state: true
              brightness: $led_brightness
              red: 100%
              green: 0%
              blue: 0%
              duration: 1000ms
            - state: true
              brightness: $led_brightness
              red: 0%
              green: 100%
              blue: 0%
              duration: 1000ms
            - state: true
              brightness: $led_brightness
              red: 0%
              green: 0%
              blue: 100%
              duration: 1000ms
            - state: true
              brightness: $led_brightness
              red: 100%
              green: 100%
              blue: 100%
              duration: 1000ms
      - flicker:
      - flicker:
          name: Flicker Effect With Custom Values
          alpha: 95%
          intensity: 1.5%
      - lambda:
          name: Lambda
          update_interval: 1s
          lambda: |-
            static int state = 0;
            auto call = id(rgb_led).turn_on();
            // Transition of 1000ms = 1s
            call.set_transition_length(1000);
            if (state == 0) {
              call.set_rgb(1.0, 1.0, 1.0);
            } else if (state == 1) {
              call.set_rgb(1.0, 0.0, 1.0);
            } else if (state == 2) {
              call.set_rgb(0.0, 0.0, 1.0);
            } else {
              call.set_rgb(1.0, 0.0, 0.0);
            }
            call.perform();
            state += 1;
            if (state == 4)
              state = 0;              
      - addressable_rainbow:
      - addressable_color_wipe:
      - addressable_twinkle:
      - addressable_random_twinkle:

i2s_audio:
  - id: i2s_in
    i2s_lrclk_pin: $mic_ws_pin  # Mic WS
    i2s_bclk_pin: $mic_ck_pin   # Mic CK
  - id: i2s_out
    i2s_lrclk_pin: $amp_lrc_pin # Amp LRC
    i2s_bclk_pin: $amp_bclk_pin # Amp BCLK

microphone:
  - platform: i2s_audio
    id: mic_id
    i2s_audio_id: i2s_in
    adc_type: external
    sample_rate: 16000
    bits_per_sample: 16bit
    channel: left
    pdm: false
    i2s_din_pin: $mic_din_pin   # Mic SD/DA

media_player:
  - platform: i2s_audio
    name: Media Player
    dac_type: external
    i2s_audio_id: i2s_out
    i2s_dout_pin: $amp_din_pin  # Amp DIN
    mode: mono
    id: i2s_media
    icon: mdi:speaker-wireless
    # on_announcement:
    #   - voice_assistant.stop:
    # on_play:
    #   - voice_assistant.stop:
    # on_idle:
    #   - voice_assistant.start_continuous:                 
    # on_pause:
    #   - voice_assistant.start_continuous:

voice_assistant:
  microphone: mic_id
  media_player: i2s_media
  use_wake_word: true
  noise_suppression_level: $assist_noise_supression
  auto_gain: $assist_mic_gain
  volume_multiplier: $assist_vol_multiplier
  on_client_connected:
    # - logger.log:
    #     level: ERROR
    #     format: "****Client connected"
    - if:
        condition:
          switch.is_on: use_wake_word
        then:
          - if:
              condition:
                not:
                  - voice_assistant.is_running
              then:
                # - logger.log:
                #     level: ERROR
                #     format: "****Assistant turned on"
                - voice_assistant.stop
                - voice_assistant.start_continuous
                - light.turn_off:
                    id: rgb_led
        else:
          # - logger.log:
          #     level: ERROR
          #     format: "****Assistant turned off"
          - light.turn_on:
              id: rgb_led
              brightness: $led_brightness
              blue: 0%
              red: 100%
              green: 100%
              effect: pulse
          - voice_assistant.stop
  on_client_disconnected:
    # - logger.log:
    #     level: ERROR
    #     format: "****Client disconnected"
    - voice_assistant.stop
    - light.turn_on:
        id: rgb_led
        brightness: $led_brightness
        blue: 0%
        red: 100%
        green: 0%
        effect: none
  on_listening:
    # - logger.log:
    #     level: ERROR
    #     format: "****Listening"
    - light.turn_on:
        id: rgb_led
        brightness: $led_brightness
        blue: 0%
        red: 0%
        green: 100%
        effect: none
  on_stt_end:
    # - logger.log:
    #     level: ERROR
    #     format: "****SST end"
    - light.turn_on:
        id: rgb_led
        brightness: $led_brightness
        blue: 100%
        red: 0%
        green: 0%
        effect: none
  on_idle:
    # - logger.log:
    #     level: ERROR
    #     format: "****Assistant idle"
    - light.turn_off:
        id: rgb_led
  on_wake_word_detected:
    - media_player.play_media: $pip_sound

  # Can't use with media player, need speaker
  # on_tts_stream_start:
  #   - logger.log:
  #       level: ERROR
  #       format: "****TTS started"
  #   - light.turn_on:
  #       id: rgb_led
  #       brightness: $led_brightness
  #       blue: 100%
  #       red: 0%
  #       green: 0%
  # on_tts_stream_end:
  #   - logger.log:
  #       level: ERROR
  #       format: "****TTS ended"
  #   - light.turn_off:
  #       id: rgb_led

button:
  - platform: template
    name: Test sound
    id: test_sound
    icon: "mdi:speaker-play"
    disabled_by_default: true           # Shows entity in HA, but disabled by default
    on_press:
      - media_player.play_media: $test_sound

switch:                                 # Switches
  - platform: template
    name: Enable Assistant
    id: use_wake_word
    optimistic: true
    restore_mode: RESTORE_DEFAULT_ON
    icon: mdi:microphone-message
    on_turn_on:
      # - logger.log:
      #     level: ERROR
      #     format: "****Assist turned on"
      - if:
          condition:
            not:
              - voice_assistant.is_running
          then:
            - voice_assistant.start_continuous
      - light.turn_off:
          id: rgb_led
    on_turn_off:
    # - logger.log:
    #     level: ERROR
    #     format: "****Assist turned off"
    - voice_assistant.stop
    - light.turn_on:
        id: rgb_led
        brightness: $led_brightness
        blue: 0%
        red: 100%
        green: 100%
        effect: none


Do you have any extra esp32 boards you can use for testing configs instead of repeatedly editing and modifying your existing config with all the other unrelated stuff to the issue at hand?

Let’s go back to the process of converting .mp3/.wav files to Code that can be flashed into esphome.

You need to copy paste each step your doing to me because you have to do it correctly and it will let you proceed in the conversion process without throwing errors and then you’ll beat your brains out because it’s not working or throwing errors in Esphome!.. I was messing with this a couple months ago and took me 2 days to figure out where the issues were and finally get it to work…

I just need to make sure you’re doing the conversion part correct before we start looking for nonexistant yaml issues that it causes. The directions on documentation page could definately be a little clearer tool.

I can swap yaml files pretty easily for testing purposes.

I opened my existing .mp3 and exported it as shown on that page using audacity.
Used xxd for windows to produce a .h: xxd -i pip.wav pip.h
Swapped unsigned char pip[] = for std::vector<unsigned char> pip = in the first line of the .h
copied the file into esphomes folder over my network

This is the result:

std::vector<unsigned char> pip = {
  0x52, 0x49, 0x46, 0x46, 0x26, 0x05, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45,
  0x66, 0x6d, 0x74, 0x20, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
  0x80, 0x3e, 0x00, 0x00, 0x80, 0x3e, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00,
  0x64, 0x61, 0x74, 0x61, 0x02, 0x05, 0x00, 0x00, 0x80, 0x8b, 0x97, 0x9f,
  0xa0, 0x9c, 0x92, 0x84, 0x76, 0x6a, 0x61, 0x5e, 0x61, 0x6a, 0x76, 0x84,
  0x92, 0x9b, 0xa0, 0x9f, 0x98, 0x8d, 0x7f, 0x71, 0x66, 0x5f, 0x5f, 0x65,
  0x6f, 0x7d, 0x8b, 0x97, 0x9e, 0xa1, 0x9d, 0x93, 0x86, 0x78, 0x6b, 0x62,
  0x5e, 0x61, 0x69, 0x75, 0x83, 0x91, 0x9b, 0xa0, 0x9f, 0x99, 0x8e, 0x80,
  0x72, 0x66, 0x5f, 0x5e, 0x64, 0x6e, 0x7b, 0x89, 0x96, 0x9e, 0xa1, 0x9d,
  0x94, 0x88, 0x79, 0x6c, 0x63, 0x5e, 0x60, 0x68, 0x74, 0x82, 0x8f, 0x9a,
  0xa0, 0xa0, 0x9a, 0x8f, 0x81, 0x73, 0x67, 0x60, 0x5e, 0x63, 0x6d, 0x7a,
  0x88, 0x95, 0x9d, 0xa1, 0x9e, 0x96, 0x89, 0x7b, 0x6d, 0x63, 0x5e, 0x60,
  0x67, 0x72, 0x80, 0x8e, 0x99, 0xa0, 0xa0, 0x9b, 0x90, 0x83, 0x74, 0x68,
  0x60, 0x5e, 0x62, 0x6c, 0x79, 0x87, 0x94, 0x9d, 0xa1, 0x9e, 0x96, 0x8a,
  0x7c, 0x6e, 0x64, 0x5f, 0x5f, 0x66, 0x71, 0x7f, 0x8d, 0x99, 0xa0, 0xa1,
  0x9c, 0x91, 0x84, 0x76, 0x69, 0x61, 0x5e, 0x62, 0x6a, 0x77, 0x86, 0x93,
  0x9c, 0xa1, 0x9f, 0x97, 0x8c, 0x7d, 0x70, 0x65, 0x5f, 0x5f, 0x65, 0x70,
  0x7e, 0x8c, 0x98, 0x9f, 0xa1, 0x9c, 0x92, 0x85, 0x77, 0x6a, 0x61, 0x5e,
  0x61, 0x69, 0x76, 0x84, 0x92, 0x9c, 0xa1, 0x9f, 0x98, 0x8d, 0x7f, 0x71,
  0x66, 0x5f, 0x5f, 0x64, 0x6f, 0x7c, 0x8b, 0x97, 0x9f, 0xa1, 0x9d, 0x94,
  0x87, 0x78, 0x6b, 0x62, 0x5e, 0x60, 0x69, 0x75, 0x83, 0x90, 0x9b, 0xa0,
  0xa0, 0x99, 0x8e, 0x80, 0x72, 0x67, 0x60, 0x5e, 0x64, 0x6e, 0x7b, 0x89,
  0x96, 0x9e, 0xa1, 0x9d, 0x95, 0x88, 0x7a, 0x6c, 0x63, 0x5e, 0x60, 0x68,
  0x74, 0x82, 0x8f, 0x9a, 0xa0, 0xa0, 0x9a, 0x8f, 0x81, 0x73, 0x67, 0x60,
  0x5e, 0x63, 0x6d, 0x7a, 0x88, 0x95, 0x9e, 0xa1, 0x9e, 0x95, 0x89, 0x7b,
  0x6d, 0x63, 0x5e, 0x60, 0x67, 0x72, 0x80, 0x8e, 0x9a, 0xa0, 0xa0, 0x9b,
  0x90, 0x82, 0x74, 0x68, 0x60, 0x5e, 0x62, 0x6c, 0x79, 0x87, 0x94, 0x9e,
  0xa1, 0x9f, 0x96, 0x8a, 0x7b, 0x6e, 0x63, 0x5e, 0x5f, 0x66, 0x71, 0x80,
  0x8e, 0x99, 0xa0, 0xa1, 0x9c, 0x92, 0x84, 0x75, 0x68, 0x60, 0x5d, 0x61,
  0x6a, 0x77, 0x86, 0x93, 0x9d, 0xa2, 0xa0, 0x98, 0x8c, 0x7d, 0x6f, 0x64,
  0x5e, 0x5f, 0x65, 0x70, 0x7e, 0x8c, 0x98, 0x9f, 0xa1, 0x9c, 0x92, 0x85,
  0x76, 0x6a, 0x61, 0x5e, 0x61, 0x6a, 0x77, 0x85, 0x93, 0x9d, 0xa1, 0xa0,
  0x98, 0x8c, 0x7e, 0x70, 0x64, 0x5e, 0x5e, 0x64, 0x6f, 0x7d, 0x8c, 0x98,
  0xa0, 0xa2, 0x9e, 0x94, 0x86, 0x77, 0x69, 0x60, 0x5c, 0x5f, 0x67, 0x75,
  0x84, 0x92, 0x9d, 0xa3, 0xa2, 0x9b, 0x8f, 0x80, 0x71, 0x64, 0x5d, 0x5b,
  0x61, 0x6c, 0x7a, 0x8a, 0x97, 0xa0, 0xa4, 0xa0, 0x97, 0x8a, 0x7a, 0x6c,
  0x61, 0x5c, 0x5d, 0x65, 0x71, 0x80, 0x8f, 0x9b, 0xa2, 0xa2, 0x9c, 0x91,
  0x82, 0x73, 0x66, 0x5e, 0x5c, 0x60, 0x6b, 0x79, 0x88, 0x96, 0x9f, 0xa3,
  0xa1, 0x98, 0x8b, 0x7b, 0x6d, 0x61, 0x5b, 0x5c, 0x63, 0x70, 0x7f, 0x8f,
  0x9b, 0xa3, 0xa4, 0x9f, 0x93, 0x84, 0x75, 0x67, 0x5d, 0x5a, 0x5e, 0x68,
  0x76, 0x86, 0x94, 0x9f, 0xa4, 0xa2, 0x9a, 0x8d, 0x7e, 0x6f, 0x63, 0x5c,
  0x5c, 0x62, 0x6e, 0x7d, 0x8c, 0x99, 0xa1, 0xa3, 0x9f, 0x94, 0x86, 0x77,
  0x69, 0x5f, 0x5c, 0x5f, 0x68, 0x75, 0x84, 0x93, 0x9e, 0xa3, 0xa2, 0x9b,
  0x8e, 0x7f, 0x70, 0x64, 0x5c, 0x5b, 0x61, 0x6b, 0x7a, 0x8a, 0x98, 0xa1,
  0xa5, 0xa1, 0x98, 0x8a, 0x7a, 0x6b, 0x60, 0x5b, 0x5c, 0x64, 0x71, 0x80,
  0x8f, 0x9c, 0xa3, 0xa4, 0x9e, 0x92, 0x84, 0x74, 0x67, 0x5e, 0x5c, 0x5f,
  0x69, 0x77, 0x86, 0x94, 0x9e, 0xa3, 0xa1, 0x99, 0x8c, 0x7d, 0x6f, 0x63,
  0x5d, 0x5e, 0x64, 0x6f, 0x7e, 0x8c, 0x99, 0xa0, 0xa2, 0x9d, 0x93, 0x85,
  0x76, 0x69, 0x61, 0x5e, 0x61, 0x6a, 0x76, 0x85, 0x93, 0x9d, 0xa2, 0xa0,
  0x98, 0x8c, 0x7e, 0x6f, 0x64, 0x5e, 0x5e, 0x65, 0x70, 0x7e, 0x8c, 0x98,
  0xa0, 0xa2, 0x9e, 0x94, 0x87, 0x78, 0x6b, 0x61, 0x5d, 0x5f, 0x68, 0x74,
  0x83, 0x91, 0x9b, 0xa1, 0xa0, 0x9a, 0x8f, 0x81, 0x73, 0x68, 0x61, 0x60,
  0x65, 0x6e, 0x7b, 0x89, 0x95, 0x9d, 0x9f, 0x9c, 0x93, 0x87, 0x7a, 0x6e,
  0x65, 0x61, 0x63, 0x69, 0x74, 0x81, 0x8e, 0x98, 0x9e, 0x9e, 0x99, 0x8f,
  0x83, 0x76, 0x6a, 0x63, 0x61, 0x64, 0x6d, 0x79, 0x86, 0x92, 0x9a, 0x9d,
  0x9b, 0x94, 0x89, 0x7d, 0x72, 0x69, 0x64, 0x64, 0x6a, 0x73, 0x7f, 0x8b,
  0x95, 0x9b, 0x9c, 0x97, 0x8e, 0x82, 0x76, 0x6c, 0x65, 0x64, 0x67, 0x6f,
  0x7b, 0x87, 0x92, 0x99, 0x9c, 0x99, 0x92, 0x87, 0x7a, 0x6f, 0x66, 0x63,
  0x64, 0x6b, 0x76, 0x82, 0x8e, 0x97, 0x9c, 0x9c, 0x96, 0x8c, 0x80, 0x74,
  0x6a, 0x64, 0x62, 0x67, 0x70, 0x7c, 0x88, 0x93, 0x9a, 0x9d, 0x99, 0x91,
  0x86, 0x7a, 0x6f, 0x67, 0x63, 0x65, 0x6b, 0x76, 0x82, 0x8e, 0x97, 0x9c,
  0x9b, 0x95, 0x8c, 0x80, 0x74, 0x6a, 0x64, 0x64, 0x68, 0x71, 0x7d, 0x89,
  0x93, 0x9a, 0x9b, 0x98, 0x90, 0x85, 0x78, 0x6e, 0x66, 0x62, 0x64, 0x6b,
  0x76, 0x82, 0x8e, 0x97, 0x9c, 0x9c, 0x96, 0x8c, 0x7f, 0x73, 0x69, 0x63,
  0x62, 0x67, 0x71, 0x7d, 0x8a, 0x95, 0x9c, 0x9e, 0x9a, 0x92, 0x86, 0x79,
  0x6d, 0x64, 0x61, 0x63, 0x6a, 0x75, 0x82, 0x8e, 0x98, 0x9d, 0x9d, 0x97,
  0x8d, 0x80, 0x73, 0x68, 0x61, 0x5f, 0x64, 0x6d, 0x7a, 0x88, 0x94, 0x9c,
  0xa0, 0x9d, 0x95, 0x89, 0x7b, 0x6e, 0x64, 0x60, 0x61, 0x68, 0x74, 0x81,
  0x8e, 0x99, 0x9e, 0x9e, 0x99, 0x8e, 0x81, 0x74, 0x68, 0x61, 0x5f, 0x63,
  0x6c, 0x79, 0x87, 0x94, 0x9c, 0xa0, 0x9e, 0x96, 0x8a, 0x7c, 0x6e, 0x65,
  0x60, 0x61, 0x67, 0x73, 0x80, 0x8e, 0x98, 0x9f, 0x9f, 0x99, 0x8f, 0x82,
  0x74, 0x69, 0x61, 0x60, 0x64, 0x6d, 0x79, 0x87, 0x93, 0x9c, 0x9f, 0x9d,
  0x95, 0x89, 0x7c, 0x6f, 0x65, 0x60, 0x61, 0x67, 0x72, 0x7f, 0x8c, 0x97,
  0x9e, 0x9f, 0x9b, 0x92, 0x86, 0x79, 0x6d, 0x64, 0x61, 0x63, 0x6a, 0x76,
  0x83, 0x90, 0x99, 0x9e, 0x9d, 0x97, 0x8c, 0x7f, 0x73, 0x68, 0x62, 0x62,
  0x66, 0x70, 0x7c, 0x88, 0x93, 0x9b, 0x9d, 0x9a, 0x92, 0x86, 0x7a, 0x6e,
  0x66, 0x63, 0x65, 0x6c, 0x76, 0x83, 0x8f, 0x98, 0x9d, 0x9c, 0x96, 0x8c,
  0x80, 0x73, 0x69, 0x63, 0x62, 0x67, 0x6f, 0x7b, 0x87, 0x92, 0x99, 0x9c,
  0x99, 0x91, 0x86, 0x7a, 0x6f, 0x66, 0x63, 0x64, 0x6b, 0x75, 0x81, 0x8d,
  0x96, 0x9b, 0x9b, 0x96, 0x8d, 0x81, 0x76, 0x6d, 0x67, 0x67, 0x6a, 0x72,
  0x7c, 0x87, 0x91, 0x97, 0x99, 0x96, 0x8f, 0x84, 0x79, 0x6e, 0x67, 0x64,
  0x66, 0x6d, 0x77, 0x83, 0x8e, 0x96, 0x9b, 0x9b, 0x95, 0x8c, 0x80, 0x74,
  0x6a, 0x65, 0x64, 0x69, 0x71, 0x7c, 0x88, 0x92, 0x99, 0x9b, 0x98, 0x91,
  0x87, 0x7c, 0x72, 0x6a, 0x65, 0x66, 0x6b, 0x73, 0x7e, 0x88, 0x91, 0x97,
  0x99, 0x96, 0x8f, 0x85, 0x7a, 0x70, 0x69, 0x66, 0x68, 0x6e, 0x77, 0x82,
  0x8d, 0x95, 0x98, 0x98, 0x92, 0x89, 0x7e, 0x74, 0x6c, 0x67, 0x68, 0x6c,
  0x74, 0x7e, 0x89, 0x91, 0x97, 0x98, 0x94, 0x8d, 0x83, 0x78, 0x6e, 0x68,
  0x67, 0x6a, 0x71, 0x7b, 0x85, 0x8f, 0x96, 0x98, 0x96, 0x90, 0x87, 0x7c,
  0x72, 0x6a, 0x66, 0x67, 0x6c, 0x75, 0x81, 0x8c, 0x95, 0x9a, 0x9a, 0x95,
  0x8c, 0x81, 0x75, 0x6c, 0x66, 0x65, 0x68, 0x71, 0x7c, 0x87, 0x91, 0x98,
  0x9b, 0x98, 0x91, 0x86, 0x7a, 0x6f, 0x67, 0x64, 0x66, 0x6c, 0x76, 0x82,
  0x8d, 0x97, 0x9c, 0x9c, 0x97, 0x8d, 0x81, 0x75, 0x6a, 0x63, 0x62, 0x67,
  0x70, 0x7c, 0x89, 0x94, 0x9c, 0x9e, 0x9b, 0x93, 0x87, 0x79, 0x6d, 0x64,
  0x5f, 0x61, 0x68, 0x73, 0x80, 0x8e, 0x99, 0x9f, 0xa0, 0x9b, 0x91, 0x84,
  0x76, 0x69, 0x61, 0x5d, 0x60, 0x69, 0x76, 0x85, 0x93, 0x9e, 0xa3, 0xa1,
  0x9a, 0x8e, 0x80, 0x71, 0x65, 0x5e, 0x5d, 0x62, 0x6c, 0x7a, 0x8a, 0x97,
  0xa0, 0xa3, 0xa0, 0x97, 0x89, 0x7a, 0x6c, 0x61, 0x5c, 0x5e, 0x66, 0x72,
  0x81, 0x90, 0x9c, 0xa2, 0xa2, 0x9b, 0x90, 0x81, 0x73, 0x66, 0x5f, 0x5d,
  0x61, 0x6b, 0x79, 0x87, 0x95, 0x9e, 0xa2, 0x9f, 0x96, 0x89, 0x7a, 0x6c,
  0x61, 0x5c, 0x5e, 0x66, 0x73, 0x83, 0x92, 0x9e, 0xa5, 0xa5, 0x9e, 0x91,
  0x80, 0x70, 0x62, 0x5a, 0x59, 0x5e, 0x69, 0x79, 0x8a, 0x99, 0xa3, 0xa7,
  0xa4, 0x9a, 0x8b, 0x7a, 0x6a, 0x5d, 0x57, 0x58, 0x60, 0x6e, 0x7f, 0x90,
  0x9e, 0xa6, 0xa7, 0xa1, 0x95, 0x85, 0x75, 0x66, 0x5c, 0x58, 0x5b, 0x65,
  0x74, 0x85, 0x95, 0xa1, 0xa6, 0xa5, 0x9d, 0x8f, 0x7e, 0x6e, 0x62, 0x5a,
  0x5a, 0x60, 0x6d, 0x7d, 0x8d, 0x9b, 0xa3, 0xa5, 0xa0, 0x95, 0x86, 0x76,
  0x67, 0x5d, 0x5a, 0x5e, 0x67, 0x75, 0x85, 0x94, 0x9f, 0xa4, 0xa3, 0x9b,
  0x8f, 0x7f, 0x6f, 0x62, 0x5b, 0x5a, 0x61, 0x6d, 0x7d, 0x8d, 0x9a, 0xa3,
  0xa5, 0xa1, 0x96, 0x87, 0x77, 0x68, 0x5e, 0x5a, 0x5d, 0x66, 0x74, 0x84,
  0x93, 0x9f, 0xa5, 0xa4, 0x9c, 0x90, 0x7f, 0x6f, 0x61, 0x59, 0x58, 0x5f,
  0x6b, 0x7b, 0x8d, 0x9c, 0xa6, 0xa9, 0xa4, 0x98, 0x88, 0x76, 0x66, 0x59,
  0x54, 0x57, 0x62, 0x71, 0x84, 0x87
};
unsigned int pip_wav_len = 1326;

It doesnt seem to make any difference if I use the exact same names as in the example you gave. I still get the message about not being able to convert from ‘std::vector’ to ‘std::__cxx11::string’, and no message but also no sound if I try !lambda return "startup_raw"

Can you see anything I might have fallen foul of?

Did you get this going with speaker or media_player?
If media_player, that would tell me its at least possible.

Can you send me you audio file that your trying to use?

Did you go through the settings in Audacity to use the specifications they say to use? Mono, 16kHz, unsigned 8bit PCM?

I use Linux and i had a hard time finding those configuration options Audacity for Linux but, i eventually found them. I do know that they arent the default settings or werent on mine.

I honestly dont remember which i used. I only had some older esp32 wroom32 boards around and thats what i was using and just adding a “Ding Dong” door bell sound clip and a default esphome setup, it was crashing my memory and i had to remove things like OTA and couldnt use web_server… Once i realized that, i put that project off to the side.

Speaking of which, im not sure of the extent you’ll potentially have issues once you do get it and you may want to have a planB and dig out of your closet or order one if you dont have any but, a DF-Player is probably your better option overall because this method still wont have memory for more than a couple sound clips anyway.

There aren’t many settings to go through, just the export options as shown in the link you gave.

It’s just a quick pip noise so I know it’s caught the wakeword and I can start asking for something.

I’m out at the moment, and can’t see an easy way to attach or link to it, but can once I’m not on my phone.

I haven’t stripped anything out of my current config yet, but might give it a try.
Everything keeps running after it should be making a noise though, it’s not falling over (like it has after I was asking too much in various ways before).

It’s not a huge issue though, it would just be nice.
Tbh this smart speakers already been way more trouble than it’s really worth. I’ve had it working great at various points, then some update or other wrecked it and meant I had to figure out what still works using trial and error (because examples/documentation just don’t seem to).
It’s been a long hard slog to get to my current config, that’s the only setup I’ve found that covers the basics now. I might be done fighting it.

I’ve started looking at the way the recently released hardware (I forget it’s name) works, but haven’t turned that into a working config for my own just yet.

I’ve still got my original question though… Is it possible to do this with media_player and if so how?
(I wont vary from my current media_player setup without some other good reason. I’ve tried other options that just aren’t useful to me in a variety of ways)

The file I’m trying to use:
.mp3
.wav

I’ve gone back to a config that uses speaker, hoping to prove my .h was OK.
I notice I don’t have to wrap the name with "s, so there is some difference with how media_player and speaker handle it.
I still can’t get it to pip though, and there’s still nothing in its logs about it.
Tried a few different mp3s but I get nothing with any of them.

This works, kind of:

substitutions:
  friendly_name: Jarvis2
  host_name: jarvis2

  log_level:      DEBUG          # NONE, ERROR, WARN, INFO, DEBUG (Default), VERBOSE, VERY_VERBOSE
  start_volume:   75%

  static_ip:      192.168.5.36
  static_gateway: 192.168.5.254
  static_subnet:  255.255.255.0
  static_dns:     192.168.5.2

  assist_pin:     GPIO13        # Button to toggle assist
  vol_up_pin:     GPIO12        # Button for Vol+
  vol_down_pin:   GPIO11        # Button for Vol-

  mic_ws_pin:     GPIO08        # Mic WS
  mic_ck_pin:     GPIO09        # Mic CK
  mic_din_pin:    GPIO07        # Mic SD/DA

  amp_din_pin:    GPIO04        # Amp DIN
  amp_bclk_pin:   GPIO05        # Amp BCLK
  amp_lrc_pin:    GPIO06        # Amp LRC

  rgb_led_pin:    GPIO21        # RGB LED pin, GPIO21 for onboard LED
  no_leds:        "1"           # Number of RGB LEDs, 1 for onboard LED
  led_brightness: 25%           # RGB LED brightness for simple on/off
  min_led_brightness: 20%       # Min LED brghtness for effects
  max_led_brightness: 40%       # Max LED brghtness for effects

  assist_mic_gain: 10dBFS       # 31dBFS # Assistant mic gain. Between 0dBFS and 31dBFS
  assist_noise_supression: "3"  # Assistant noise suppression. Between 0 and 4 inclusive
  assist_vol_multiplier: "1"    # "15" # Assistant volume multiplier. Must be larger than 0. Defaults to 1 (disabled)

esphome:
  name: $host_name
  friendly_name: $friendly_name
  platformio_options:
    board_build.flash_mode: dio
  includes:
    - pip.h
  on_boot:
    - priority: -100.0
      then:
      - logger.log:
          level: ERROR
          format: "****Booted"

esp32:
  board: esp32-s3-devkitc-1
  flash_size: 4MB
  variant: esp32s3
  framework:
    type: esp-idf

psram:
  mode: quad
  speed: 80MHz

packages:
  logger: !include common/logger.yaml
  api_ota: !include common/api_ota.yaml
  wifi: !include common/wifi.yaml

logger:                                 # Enable logging. https://esphome.io/components/logger.html
  level: $log_level 

wifi:                                   # WiFi connection details. Without domain:, defaults to .local. https://esphome.io/components/wifi.html
  # use_address: "192.168.5.103"
  manual_ip:
    static_ip: $static_ip
    gateway: $static_gateway
    subnet: $static_subnet
    dns1: $static_dns
  # power_save_mode: HIGH                # NONE, LIGHT, HIGH

i2s_audio:
  - id: i2s_in
    i2s_lrclk_pin: $mic_ws_pin  # Mic WS
    i2s_bclk_pin: $mic_ck_pin   # Mic CK
  - id: i2s_out
    i2s_lrclk_pin: $amp_lrc_pin # Amp LRC
    i2s_bclk_pin: $amp_bclk_pin # Amp BCLK

microphone:
  - platform: i2s_audio
    id: mic_id
    i2s_audio_id: i2s_in
    adc_type: external
    sample_rate: 16000
    bits_per_sample: 16bit
    channel: left
    pdm: false
    i2s_din_pin: $mic_din_pin   # Mic SD/DA

speaker:
  - platform: i2s_audio
    id: i2s_speaker
    i2s_audio_id: i2s_out
    dac_type: external
    channel: left
    i2s_dout_pin: $amp_din_pin  # Amp DIN#
    # bits_per_sample: 16bit

button:
  - platform: template
    name: Test sound
    id: test_sound
    icon: "mdi:speaker-play"
    # disabled_by_default: true           # Shows entity in HA, but disabled by default
    on_press:
      - speaker.play:
          id: i2s_speaker
          data: !lambda return pip_wav;

pip.h:

std::vector<unsigned char> pip_wav = {
  0x52, 0x49, 0x46, 0x46, 0xd4, 0x0d, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45,
  0x66, 0x6d, 0x74, 0x20, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
  0x80, 0x3e, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00,
  0x64, 0x61, 0x74, 0x61, 0xb0, 0x0d, 0x00, 0x00, 0x8b, 0x03, 0x64, 0x24,
  0xe5, 0x4c, 0x0f, 0x44, 0xef, 0x18, 0x8a, 0xf5, 0x98, 0xcb, 0x36, 0xaf,
  0x90, 0xc9, 0xfa, 0xf3, 0xe7, 0x16, 0xc3, 0x42, 0xdb, 0x4d, 0x17, 0x27,
  0xa8, 0x00, 0xc5, 0xda, 0x8c, 0xb2, 0x8e, 0xbb, 0x9f, 0xe7, 0x77, 0x0a,
  0xc3, 0x34, 0x7d, 0x51, 0x61, 0x36, 0xaf, 0x0b, 0xf1, 0xe8, 0x14, 0xbd,
  0x3b, 0xb2, 0x15, 0xd9, 0x95, 0xff, 0x8b, 0x25, 0xef, 0x4c, 0xdd, 0x43,
  0x5e, 0x18, 0x28, 0xf5, 0x18, 0xcb, 0x4b, 0xaf, 0x13, 0xca, 0x5b, 0xf4,
  0x74, 0x17, 0x05, 0x43, 0x6b, 0x4d, 0x90, 0x26, 0x55, 0x00, 0x1c, 0xda,
  0xb8, 0xb2, 0x37, 0xbc, 0x08, 0xe8, 0xe1, 0x0a, 0x58, 0x35, 0x81, 0x51,
  0xcc, 0x35, 0x42, 0x0b, 0x8b, 0xe8, 0x66, 0xbc, 0x10, 0xb2, 0xb9, 0xd9,
  0xed, 0xff, 0x0c, 0x26, 0x65, 0x4d, 0x9d, 0x43, 0xd1, 0x17, 0xca, 0xf4,
  0x8f, 0xca, 0x3b, 0xaf, 0x84, 0xca, 0xd3, 0xf4, 0xe3, 0x17, 0x6c, 0x43,
  0x14, 0x4d, 0x13, 0x26, 0x7f, 0x00, 0xc7, 0xda, 0x50, 0xb3, 0xe3, 0xbb,
  0x51, 0xe7, 0x7d, 0x0a, 0x9f, 0x34, 0xe1, 0x50, 0x53, 0x36, 0xdd, 0x0b,
  0x08, 0xe9, 0x00, 0xbd, 0x0a, 0xb2, 0x11, 0xd9, 0x79, 0xff, 0x51, 0x25,
  0xc1, 0x4d, 0x85, 0x44, 0x31, 0x18, 0x6f, 0xf5, 0x1b, 0xcb, 0xc8, 0xae,
  0xc7, 0xc9, 0x67, 0xf4, 0x3c, 0x17, 0xf7, 0x42, 0x90, 0x4d, 0xc7, 0x26,
  0x53, 0x00, 0x49, 0xda, 0x0c, 0xb3, 0x51, 0xbc, 0xbd, 0xe7, 0xf7, 0x0a,
  0x12, 0x35, 0xb9, 0x50, 0xc8, 0x35, 0x84, 0x0b, 0x72, 0xe8, 0xc9, 0xbc,
  0x8e, 0xb2, 0x9b, 0xd9, 0xc8, 0xff, 0xff, 0x25, 0x8a, 0x4d, 0xc5, 0x43,
  0xcd, 0x17, 0x04, 0xf5, 0x87, 0xca, 0x2b, 0xae, 0x51, 0xca, 0xdd, 0xf4,
  0x9b, 0x17, 0x9d, 0x43, 0xa0, 0x4d, 0x35, 0x26, 0xf0, 0xff, 0xcb, 0xd9,
  0xac, 0xb2, 0x99, 0xbc, 0x47, 0xe8, 0x57, 0x0b, 0x9a, 0x35, 0xaf, 0x50,
  0x54, 0x35, 0x10, 0x0b, 0xfe, 0xe7, 0x68, 0xbc, 0x09, 0xb3, 0xf1, 0xd9,
  0x55, 0xff, 0x6d, 0x25, 0xcc, 0x4c, 0x0b, 0x44, 0x82, 0x18, 0x71, 0xf5,
  0x31, 0xcb, 0xf9, 0xae, 0xc6, 0xc9, 0x4f, 0xf4, 0x0a, 0x17, 0x3a, 0x43,
  0x25, 0x4e, 0xbb, 0x26, 0x75, 0x00, 0x7e, 0xda, 0x74, 0xb2, 0xbb, 0xbb,
  0xde, 0xe7, 0xbb, 0x0a, 0x02, 0x35, 0x02, 0x51, 0x0f, 0x36, 0x82, 0x0b,
  0x9a, 0xe8, 0xf8, 0xbc, 0x9a, 0xb2, 0x5f, 0xd9, 0xc4, 0xff, 0xe3, 0x25,
  0x01, 0x4d, 0x8d, 0x43, 0x1b, 0x18, 0xf5, 0xf4, 0xbe, 0xca, 0x37, 0xaf,
  0x5e, 0xca, 0x9d, 0xf4, 0xa6, 0x17, 0x6e, 0x43, 0x82, 0x4d, 0x3c, 0x26,
  0x17, 0x00, 0xec, 0xd9, 0x29, 0xb2, 0x3b, 0xbc, 0x5b, 0xe8, 0x1a, 0x0b,
  0x97, 0x35, 0x81, 0x51, 0x8d, 0x35, 0x0b, 0x0b, 0x34, 0xe8, 0x67, 0xbc,
  0x99, 0xb2, 0xef, 0xd9, 0x26, 0x00, 0x64, 0x26, 0x4b, 0x4d, 0x38, 0x43,
  0x9d, 0x17, 0x88, 0xf4, 0x42, 0xca, 0x51, 0xaf, 0xdd, 0xca, 0x06, 0xf5,
  0x26, 0x18, 0xbe, 0x43, 0xf9, 0x4c, 0xdb, 0x25, 0x93, 0x00, 0x6c, 0xda,
  0x0a, 0xb3, 0x01, 0xbc, 0xaf, 0xe7, 0x9f, 0x0a, 0x00, 0x35, 0x37, 0x51,
  0x22, 0x36, 0x86, 0x0b, 0xe7, 0xe8, 0x88, 0xbc, 0xa3, 0xb1, 0x73, 0xd9,
  0xa2, 0xff, 0xb2, 0x25, 0x63, 0x4d, 0x06, 0x44, 0x12, 0x18, 0x1a, 0xf5,
  0xe5, 0xca, 0x1e, 0xaf, 0x26, 0xca, 0x8c, 0xf4, 0x96, 0x17, 0x1b, 0x43,
  0x48, 0x4d, 0x76, 0x26, 0x28, 0x00, 0xef, 0xd9, 0xed, 0xb2, 0x8b, 0xbc,
  0x11, 0xe8, 0x1c, 0x0b, 0x76, 0x35, 0xe0, 0x50, 0x84, 0x35, 0x3a, 0x0b,
  0x49, 0xe8, 0x54, 0xbc, 0x66, 0xb2, 0xe9, 0xd9, 0x0f, 0x00, 0x26, 0x26,
  0x27, 0x4e, 0xd6, 0x43, 0x72, 0x17, 0xd0, 0xf4, 0x44, 0xca, 0xca, 0xae,
  0x96, 0xca, 0x0f, 0xf5, 0xf3, 0x17, 0xa8, 0x43, 0x2d, 0x4d, 0xf5, 0x25,
  0xbb, 0xff, 0x73, 0xd9, 0xb2, 0xb2, 0xf2, 0xbc, 0x85, 0xe8, 0x8f, 0x0b,
  0xee, 0x35, 0xb0, 0x50, 0x00, 0x35, 0xd4, 0x0a, 0xc6, 0xe7, 0x07, 0xbc,
  0x12, 0xb3, 0x0d, 0xda, 0x60, 0xff, 0xc3, 0x25, 0x23, 0x4d, 0xfc, 0x43,
  0x21, 0x18, 0x4c, 0xf5, 0xdb, 0xca, 0x80, 0xae, 0xff, 0xc9, 0x96, 0xf4,
  0x44, 0x17, 0x70, 0x43, 0x07, 0x4e, 0x7d, 0x26, 0x38, 0x00, 0x28, 0xda,
  0xb6, 0xb2, 0x37, 0xbc, 0xff, 0xe7, 0x0e, 0x0b, 0x3b, 0x35, 0xc8, 0x50,
  0xac, 0x35, 0x5b, 0x0b, 0x46, 0xe8, 0xc6, 0xbc, 0xd0, 0xb2, 0xb3, 0xd9,
  0xef, 0xff, 0x39, 0x26, 0x34, 0x4d, 0x60, 0x43, 0xc3, 0x17, 0xcf, 0xf4,
  0x5e, 0xca, 0xf7, 0xae, 0x99, 0xca, 0xf2, 0xf4, 0xc4, 0x17, 0xec, 0x43,
  0xc3, 0x4d, 0xe5, 0x25, 0xdf, 0xff, 0xa9, 0xd9, 0x0f, 0xb2, 0x6c, 0xbc,
  0x98, 0xe8, 0x61, 0x0b, 0xd0, 0x35, 0x08, 0x51, 0x39, 0x35, 0xe1, 0x0a,
  0xdc, 0xe7, 0x4d, 0xbc, 0xfa, 0xb2, 0x34, 0xda, 0x5a, 0x00, 0xb9, 0x26,
  0x5d, 0x4d, 0xe6, 0x42, 0x5b, 0x17, 0x55, 0xf4, 0xe7, 0xc9, 0x41, 0xaf,
  0x25, 0xcb, 0x4d, 0xf5, 0x54, 0x18, 0x2d, 0x44, 0x01, 0x4d, 0xc0, 0x25,
  0x84, 0x00, 0x20, 0xda, 0x9d, 0xb2, 0x07, 0xbc, 0x09, 0xe8, 0xd1, 0x0a,
  0x45, 0x35, 0xd3, 0x51, 0xe6, 0x35, 0x4c, 0x0b, 0x91, 0xe8, 0x94, 0xbc,
  0x41, 0xb2, 0x9d, 0xd9, 0xe5, 0xff, 0x02, 0x26, 0x3c, 0x4d, 0x91, 0x43,
  0xea, 0x17, 0xce, 0xf4, 0xa1, 0xca, 0x48, 0xaf, 0x82, 0xca, 0xbb, 0xf4,
  0xe0, 0x17, 0x5e, 0x43, 0x23, 0x4d, 0x22, 0x26, 0xf8, 0xff, 0xa2, 0xd9,
  0xa2, 0xb2, 0xaf, 0xbc, 0x6b, 0xe8, 0x42, 0x0b, 0xd3, 0x35, 0x38, 0x51,
  0x4f, 0x35, 0xe4, 0x0a, 0x29, 0xe8, 0xd8, 0xbb, 0x06, 0xb2, 0x48, 0xda,
  0x3a, 0x00, 0x85, 0x26, 0xc6, 0x4d, 0x5a, 0x43, 0x52, 0x17, 0x7a, 0xf4,
  0x11, 0xca, 0x20, 0xaf, 0xf6, 0xca, 0x32, 0xf5, 0x50, 0x18, 0xc9, 0x43,
  0xe2, 0x4c, 0xa8, 0x25, 0x8c, 0xff, 0x1e, 0xd9, 0x8d, 0xb2, 0x37, 0xbd,
  0xcd, 0xe8, 0xc1, 0x0b, 0x46, 0x36, 0xdd, 0x50, 0xb6, 0x34, 0x90, 0x0a,
  0x97, 0xe7, 0x96, 0xbb, 0xea, 0xb2, 0x11, 0xda, 0x9b, 0xff, 0xf7, 0x25,
  0xab, 0x4d, 0x02, 0x44, 0xc5, 0x17, 0x1a, 0xf5, 0x98, 0xca, 0x81, 0xae,
  0x3f, 0xca, 0xca, 0xf4, 0x9d, 0x17, 0x70, 0x43, 0x7c, 0x4d, 0x4b, 0x26,
  0xfa, 0xff, 0xd6, 0xd9, 0xc8, 0xb2, 0xa2, 0xbc, 0x30, 0xe8, 0x52, 0x0b,
  0x85, 0x35, 0xb6, 0x50, 0x51, 0x35, 0x29, 0x0b, 0x01, 0xe8, 0x77, 0xbc,
  0xe0, 0xb2, 0x0b, 0xda, 0x22, 0x00, 0x7c, 0x26, 0x9a, 0x4d, 0x3f, 0x43,
  0x71, 0x17, 0xa0, 0xf4, 0x0c, 0xca, 0x7d, 0xae, 0xd6, 0xca, 0x36, 0xf5,
  0x03, 0x18, 0x1d, 0x44, 0xa5, 0x4d, 0xa6, 0x25, 0xa4, 0xff, 0x52, 0xd9,
  0x57, 0xb2, 0xe0, 0xbc, 0xc0, 0xe8, 0xae, 0x0b, 0x11, 0x36, 0xc1, 0x50,
  0xe0, 0x34, 0xb2, 0x0a, 0x8e, 0xe7, 0x17, 0xbc, 0x38, 0xb3, 0x80, 0xda,
  0x8d, 0x00, 0x08, 0x27, 0x96, 0x4d, 0xaf, 0x42, 0x0a, 0x17, 0x2b, 0xf4,
  0x89, 0xc9, 0x01, 0xaf, 0x64, 0xcb, 0x9d, 0xf5, 0x76, 0x18, 0xac, 0x44,
  0x3a, 0x4d, 0xc0, 0x25, 0x42, 0x00, 0xf8, 0xd9, 0x00, 0xb2, 0xf5, 0xbb,
  0x65, 0xe8, 0x02, 0x0b, 0x8b, 0x35, 0x34, 0x51, 0xa1, 0x35, 0x18, 0x0b,
  0x3d, 0xe8, 0x82, 0xbc, 0xbc, 0xb2, 0xd4, 0xd9, 0x22, 0x00, 0x54, 0x26,
  0x3c, 0x4d, 0x32, 0x43, 0xb1, 0x17, 0x93, 0xf4, 0x4f, 0xca, 0x46, 0xaf,
  0xd7, 0xca, 0xf5, 0xf4, 0x1c, 0x18, 0xb9, 0x43, 0x26, 0x4d, 0xcb, 0x25,
  0xc1, 0xff, 0x67, 0xd9, 0x29, 0xb2, 0xbf, 0xbc, 0xc2, 0xe8, 0x73, 0x0b,
  0x1b, 0x36, 0xd4, 0x51, 0x0d, 0x35, 0xac, 0x0a, 0xd4, 0xe7, 0xe5, 0xbb,
  0xa7, 0xb2, 0x6e, 0xda, 0x80, 0x00, 0xd3, 0x26, 0x9e, 0x4d, 0xe2, 0x42,
  0x30, 0x17, 0x28, 0xf4, 0xd2, 0xc9, 0x49, 0xaf, 0x54, 0xcb, 0x60, 0xf5,
  0x9b, 0x18, 0x09, 0x44, 0xbd, 0x4c, 0x53, 0x25, 0x5b, 0xff, 0xd5, 0xd8,
  0x3b, 0xb2, 0x67, 0xbd, 0x1d, 0xe9, 0xed, 0x0b, 0xa2, 0x36, 0x34, 0x51,
  0x7c, 0x34, 0x40, 0x0a, 0x70, 0xe7, 0x24, 0xbb, 0x6f, 0xb2, 0x2a, 0xda,
  0xdd, 0xff, 0x37, 0x26, 0xc7, 0x4d, 0xcf, 0x43, 0x8a, 0x17, 0xd2, 0xf4,
  0x5d, 0xca, 0xfd, 0xae, 0x8f, 0xca, 0xf9, 0xf4, 0xf3, 0x17, 0x89, 0x43,
  0x1d, 0x4d, 0x03, 0x26, 0xca, 0xff, 0x7f, 0xd9, 0xb6, 0xb2, 0xf4, 0xbc,
  0x72, 0xe8, 0x86, 0x0b, 0xdf, 0x35, 0xc8, 0x50, 0x06, 0x35, 0xe7, 0x0a,
  0xcf, 0xe7, 0x0b, 0xbc, 0xd0, 0xb2, 0x5c, 0xda, 0x60, 0x00, 0xb0, 0x26,
  0x21, 0x4e, 0x43, 0x43, 0x14, 0x17, 0x70, 0xf4, 0xc6, 0xc9, 0x84, 0xae,
  0x12, 0xcb, 0x6d, 0xf5, 0x5b, 0x18, 0x19, 0x44, 0x1d, 0x4d, 0x73, 0x25,
  0x65, 0xff, 0x02, 0xd9, 0x69, 0xb2, 0x51, 0xbd, 0xe9, 0xe8, 0xf9, 0x0b,
  0x55, 0x36, 0xb1, 0x50, 0x80, 0x34, 0x86, 0x0a, 0x44, 0xe7, 0xcc, 0xbb,
  0x48, 0xb3, 0xda, 0xda, 0xbb, 0x00, 0x52, 0x27, 0xf4, 0x4d, 0x93, 0x42,
  0xb4, 0x16, 0xfd, 0xf3, 0x38, 0xc9, 0x81, 0xae, 0xaf, 0xcb, 0xd1, 0xf5,
  0xcb, 0x18, 0xb8, 0x44, 0x81, 0x4d, 0xf3, 0x25, 0xe9, 0xff, 0xb3, 0xd9,
  0x51, 0xb2, 0x7b, 0xbc, 0x7c, 0xe8, 0x60, 0x0b, 0xba, 0x35, 0xe1, 0x50,
  0x3f, 0x35, 0xf4, 0x0a, 0xe3, 0xe7, 0x5f, 0xbc, 0x06, 0xb3, 0x23, 0xda,
  0x4f, 0x00, 0xaa, 0x26, 0x61, 0x4d, 0xef, 0x42, 0x66, 0x17, 0x65, 0xf4,
  0xf0, 0xc9, 0x20, 0xaf, 0x19, 0xcb, 0x42, 0xf5, 0x42, 0x18, 0x32, 0x44,
  0x49, 0x4d, 0x7c, 0x25, 0x7d, 0xff, 0x3e, 0xd9, 0x8a, 0xb1, 0xb5, 0xbc,
  0x17, 0xe9, 0xad, 0x0b, 0x59, 0x36, 0x35, 0x51, 0xca, 0x34, 0x78, 0x0a,
  0x7d, 0xe7, 0xda, 0xbb, 0x1f, 0xb3, 0xa7, 0xda, 0xbb, 0x00, 0x24, 0x27,
  0x9e, 0x4d, 0x82, 0x42, 0xf7, 0x16, 0xed, 0xf3, 0x7d, 0xc9, 0x4e, 0xaf,
  0xa7, 0xcb, 0x98, 0xf5, 0xda, 0x18, 0x62, 0x44, 0xbf, 0x4c, 0xfa, 0x24,
  0x28, 0xff, 0x93, 0xd8, 0xca, 0xb1, 0x73, 0xbd, 0x7a, 0xe9, 0x19, 0x0c,
  0xee, 0x36, 0xd0, 0x51, 0x32, 0x34, 0x11, 0x0a, 0x0e, 0xe7, 0x48, 0xbb,
  0xd3, 0xb2, 0x20, 0xda, 0x3a, 0x00, 0x76, 0x26, 0x95, 0x4d, 0x48, 0x43,
  0x71, 0x17, 0x78, 0xf4, 0x28, 0xca, 0x39, 0xaf, 0xf0, 0xca, 0x23, 0xf5,
  0x43, 0x18, 0xbe, 0x43, 0xe4, 0x4c, 0xb0, 0x25, 0x9f, 0xff, 0x29, 0xd9,
  0x81, 0xb2, 0x28, 0xbd, 0xc3, 0xe8, 0xb2, 0x0b, 0x3b, 0x36, 0x09, 0x51,
  0xc7, 0x34, 0x96, 0x0a, 0xae, 0xe7, 0x8e, 0xbb, 0x90, 0xb2, 0xb2, 0xda,
  0x9b, 0x00, 0xf0, 0x26, 0x3e, 0x4e, 0x0c, 0x43, 0xdc, 0x16, 0x25, 0xf4,
  0x91, 0xc9, 0xfd, 0xae, 0x64, 0xcb, 0x9a, 0xf5, 0xb3, 0x18, 0x2f, 0x44,
  0xbc, 0x4c, 0x2e, 0x25, 0x33, 0xff, 0xaa, 0xd8, 0x5c, 0xb2, 0x9f, 0xbd,
  0x2e, 0xe9, 0x2c, 0x0c, 0xae, 0x36, 0xc4, 0x50, 0x32, 0x34, 0x45, 0x0a,
  0x10, 0xe7, 0x64, 0xbb, 0x36, 0xb3, 0x2e, 0xdb, 0xf8, 0x00, 0x85, 0x27,
  0x81, 0x4e, 0x8b, 0x42, 0x5f, 0x16, 0xc6, 0xf3, 0xfa, 0xc8, 0x85, 0xae,
  0xeb, 0xcb, 0x0c, 0xf6, 0x1d, 0x19, 0xb7, 0x44, 0x41, 0x4d, 0xcb, 0x25,
  0xa5, 0xff, 0x61, 0xd9, 0x7d, 0xb2, 0xee, 0xbc, 0xa6, 0xe8, 0xa9, 0x0b,
  0x00, 0x36, 0xb3, 0x50, 0xe4, 0x34, 0xc7, 0x0a, 0x94, 0xe7, 0x22, 0xbc,
  0x29, 0xb3, 0x7a, 0xda, 0x7b, 0x00, 0xfc, 0x26, 0xa6, 0x4d, 0xcd, 0x42,
  0x0c, 0x17, 0x3f, 0xf4, 0x91, 0xc9, 0xcb, 0xae, 0x4e, 0xcb, 0x99, 0xf5,
  0x62, 0x18, 0xac, 0x44, 0xac, 0x4d, 0x17, 0x25, 0x56, 0xff, 0xdc, 0xd8,
  0xf0, 0xb1, 0x30, 0xbd, 0x33, 0xe9, 0x08, 0x0c, 0x88, 0x36, 0xde, 0x50,
  0x6b, 0x34, 0x54, 0x0a, 0x22, 0xe7, 0xb9, 0xbb, 0x6a, 0xb3, 0xf6, 0xda,
  0xe7, 0x00, 0x7f, 0x27, 0xba, 0x4d, 0x42, 0x42, 0xab, 0x16, 0xbf, 0xf3,
  0x22, 0xc9, 0x24, 0xaf, 0xef, 0xcb, 0xe1, 0xf5, 0x03, 0x19, 0xd9, 0x44,
  0xe3, 0x4c, 0xa7, 0x24, 0xe8, 0xfe, 0x66, 0xd8, 0x2c, 0xb1, 0x6b, 0xbd,
  0xd1, 0xe9, 0x51, 0x0c, 0x2b, 0x37, 0x2d, 0x51, 0xf4, 0x33, 0xda, 0x09,
  0xb8, 0xe6, 0x41, 0xbb, 0xfe, 0xb2, 0x52, 0xda, 0x75, 0x00, 0xce, 0x26,
  0x78, 0x4d, 0xe4, 0x42, 0x3c, 0x17, 0x39, 0xf4, 0xd9, 0xc9, 0x51, 0xaf,
  0x48, 0xcb, 0x54, 0xf5, 0x8b, 0x18, 0x0b, 0x44, 0xd2, 0x4c, 0x58, 0x25,
  0x6e, 0xff, 0xe0, 0xd8, 0x27, 0xb2, 0x3c, 0xbd, 0x23, 0xe9, 0xd4, 0x0b,
  0x99, 0x36, 0x7a, 0x51, 0x8f, 0x34, 0x4d, 0x0a, 0x71, 0xe7, 0x60, 0xbb,
  0xaa, 0xb2, 0xf7, 0xda, 0xd2, 0x00, 0x47, 0x27, 0xf6, 0x4d, 0x94, 0x42,
  0xbb, 0x16, 0xd0, 0xf3, 0x59, 0xc9, 0x3d, 0xaf, 0xc5, 0xcb, 0xc0, 0xf5,
  0x08, 0x19, 0x61, 0x44, 0x7f, 0x4c, 0xdf, 0x24, 0x04, 0xff, 0x57, 0xd8,
  0x27, 0xb2, 0xd5, 0xbd, 0x7f, 0xe9, 0x55, 0x0c, 0x10, 0x37, 0xfd, 0x50,
  0xf7, 0x33, 0xf2, 0x09, 0xef, 0xe6, 0xe6, 0xba, 0xf7, 0xb2, 0x8b, 0xdb,
  0x2a, 0x01, 0xce, 0x27, 0x92, 0x4e, 0x5f, 0x42, 0x1c, 0x16, 0x85, 0xf3,
  0xbd, 0xc8, 0x08, 0xaf, 0x35, 0xcc, 0x40, 0xf6, 0x6b, 0x19, 0xe6, 0x44,
  0x25, 0x4d, 0x79, 0x25, 0x7b, 0xff, 0x03, 0xd9, 0x85, 0xb2, 0x4a, 0xbd,
  0xdf, 0xe8, 0xe7, 0x0b, 0x4f, 0x36, 0xb5, 0x50, 0x8d, 0x34, 0x90, 0x0a,
  0x56, 0xe7, 0xc8, 0xbb, 0x25, 0xb3, 0xd6, 0xda, 0xab, 0x00, 0x40, 0x27,
  0x17, 0x4e, 0xc0, 0x42, 0xb1, 0x16, 0x12, 0xf4, 0x45, 0xc9, 0x31, 0xae,
  0x94, 0xcb, 0xcc, 0xf5, 0xbc, 0x18, 0x9a, 0x44, 0x0a, 0x4d, 0xf7, 0x24,
  0x0a, 0xff, 0x91, 0xd8, 0x1c, 0xb2, 0xa2, 0xbd, 0x5e, 0xe9, 0x51, 0x0c,
  0xcb, 0x36, 0xb1, 0x50, 0x0f, 0x34, 0x27, 0x0a, 0xd5, 0xe6, 0x7b, 0xbb,
  0x8d, 0xb3, 0x50, 0xdb, 0x11, 0x01, 0xd2, 0x27, 0x00, 0x4e, 0x1c, 0x42,
  0x51, 0x16, 0x9c, 0xf3, 0xbe, 0xc8, 0xd3, 0xae, 0x25, 0xcc, 0x38, 0xf6,
  0x21, 0x19, 0x5a, 0x45, 0x3c, 0x4d, 0x47, 0x24, 0xbc, 0xfe, 0x08, 0xd8,
  0x97, 0xb1, 0xdf, 0xbd, 0xf3, 0xe9, 0xa8, 0x0c, 0x5d, 0x37, 0xce, 0x50,
  0x9e, 0x33, 0xab, 0x09, 0x6b, 0xe6, 0x08, 0xbb, 0x02, 0xb3, 0xab, 0xda,
  0xa0, 0x00, 0x26, 0x27, 0x89, 0x4d, 0x90, 0x42, 0xfd, 0x16, 0x02, 0xf4,
  0x82, 0xc9, 0x3d, 0xaf, 0x98, 0xcb, 0x92, 0xf5, 0xc2, 0x18, 0x70, 0x44,
  0xe6, 0x4c, 0x05, 0x25, 0x2e, 0xff, 0xb2, 0xd8, 0x96, 0xb1, 0x45, 0xbd,
  0x76, 0xe9, 0x0d, 0x0c, 0xd5, 0x36, 0x7d, 0x51, 0x48, 0x34, 0x1d, 0x0a,
  0x16, 0xe7, 0x66, 0xbb, 0x36, 0xb3, 0x25, 0xdb, 0x12, 0x01, 0x9b, 0x27,
  0xdb, 0x4d, 0x2d, 0x42, 0x88, 0x16, 0x8e, 0xf3, 0x0e, 0xc9, 0x56, 0xaf,
  0x1d, 0xcc, 0xf2, 0xf5, 0x4f, 0x19, 0xad, 0x44, 0x6c, 0x4c, 0x87, 0x24,
  0xd4, 0xfe, 0x0d, 0xd8, 0xcc, 0xb1, 0xee, 0xbd, 0xdd, 0xe9, 0x79, 0x0c,
  0x6c, 0x37, 0x71, 0x51, 0xb7, 0x33, 0xaf, 0x09, 0xaf, 0xe6, 0xba, 0xba,
  0x12, 0xb3, 0xce, 0xdb, 0x64, 0x01, 0x23, 0x28, 0x49, 0x4e, 0xe6, 0x41,
  0xfd, 0x15, 0x2c, 0xf3, 0x8b, 0xc8, 0x47, 0xaf, 0x99, 0xcc, 0x5f, 0xf6,
  0xd0, 0x19, 0xd2, 0x44, 0xaa, 0x4c, 0x3f, 0x25, 0x3f, 0xff, 0xb7, 0xd8,
  0x5b, 0xb2, 0x94, 0xbd, 0x24, 0xe9, 0x19, 0x0c, 0xaa, 0x36, 0xde, 0x50,
  0x46, 0x34, 0x48, 0x0a, 0x2b, 0xe7, 0x53, 0xbb, 0x02, 0xb3, 0x23, 0xdb,
  0xf5, 0x00, 0x61, 0x27, 0xc0, 0x4e, 0xc0, 0x42, 0x61, 0x16, 0xd4, 0xf3,
  0x0e, 0xc9, 0xcc, 0xae, 0xd9, 0xcb, 0x00, 0xf6, 0x11, 0x19, 0xa6, 0x44,
  0x91, 0x4c, 0xbc, 0x24, 0xd3, 0xfe, 0x3b, 0xd8, 0x23, 0xb2, 0xfe, 0xbd,
  0x99, 0xe9, 0x8c, 0x0c, 0x1d, 0x37, 0xb0, 0x50, 0xb6, 0x33, 0xf4, 0x09,
  0x92, 0xe6, 0x23, 0xbb, 0x8f, 0xb3, 0xa7, 0xdb, 0x44, 0x01, 0x14, 0x28,
  0x72, 0x4e, 0x0c, 0x42, 0xf7, 0x15, 0x6e, 0xf3, 0x71, 0xc8, 0x3a, 0xae,
  0x6e, 0xcc, 0x69, 0xf6, 0x7f, 0x19, 0x3f, 0x45, 0xa1, 0x4c, 0x21, 0x24,
  0x75, 0xfe, 0xba, 0xd7, 0xc7, 0xb1, 0x53, 0xbe, 0x17, 0xea, 0xf8, 0x0c,
  0x99, 0x37, 0xa6, 0x50, 0x3b, 0x33, 0x88, 0x09, 0x0a, 0xe6, 0x0d, 0xbb,
  0x6c, 0xb3, 0xec, 0xda, 0xd6, 0x00, 0x74, 0x27, 0xc3, 0x4d, 0x57, 0x42,
  0xae, 0x16, 0xd6, 0xf3, 0x25, 0xc9, 0xfd, 0xae, 0xd8, 0xcb, 0xe2, 0xf5,
  0xe4, 0x18, 0xee, 0x44, 0x24, 0x4d, 0xab, 0x24, 0xf9, 0xfe, 0x6c, 0xd8,
  0x80, 0xb1, 0x77, 0xbd, 0xb3, 0xe9, 0x54, 0x0c, 0x0d, 0x37, 0xfd, 0x50,
  0xfc, 0x33, 0xee, 0x09, 0xbf, 0xe6, 0x4f, 0xbb, 0x9a, 0xb3, 0x68, 0xdb,
  0x46, 0x01, 0xf0, 0x27, 0xea, 0x4d, 0xd9, 0x41, 0x4a, 0x16, 0x55, 0xf3,
  0xb8, 0xc8, 0x44, 0xaf, 0x6b, 0xcc, 0x35, 0xf6, 0x7e, 0x19, 0x1b, 0x45,
  0x78, 0x4c, 0x34, 0x24, 0x98, 0xfe, 0xd9, 0xd7, 0x3d, 0xb1, 0xfd, 0xbd,
  0x2c, 0xea, 0xb6, 0x0c, 0xa5, 0x37, 0x70, 0x51, 0x76, 0x33, 0x79, 0x09,
  0x58, 0xe6, 0xc1, 0xba, 0x9e, 0xb3, 0xfc, 0xdb, 0xa6, 0x01, 0x73, 0x28,
  0x2d, 0x4e, 0x7f, 0x41, 0xc9, 0x15, 0xee, 0xf2, 0x3a, 0xc8, 0x68, 0xaf,
  0xed, 0xcc, 0x91, 0xf6, 0x20, 0x1a, 0xc2, 0x44, 0x7b, 0x4c, 0xee, 0x24,
  0x0f, 0xff, 0x69, 0xd8, 0x10, 0xb2, 0xbc, 0xbd, 0x7d, 0xe9, 0x3f, 0x0c,
  0x0a, 0x37, 0x32, 0x51, 0x0e, 0x34, 0xf3, 0x09, 0x0d, 0xe7, 0xd3, 0xba,
  0xa4, 0xb2, 0x8a, 0xdb, 0x18, 0x01, 0xc9, 0x27, 0x4d, 0x4e, 0x52, 0x42,
  0x39, 0x16, 0x83, 0xf3, 0xd7, 0xc8, 0x2e, 0xaf, 0x2e, 0xcc, 0x2b, 0xf6,
  0x68, 0x19, 0xc9, 0x44, 0x26, 0x4c, 0x45, 0x23, 0xb5, 0xfe, 0x15, 0xd9,
  0xe0, 0xb2, 0x65, 0xbf, 0xa8, 0xea, 0xf2, 0x0b, 0x58, 0x36, 0xfa, 0x4f,
  0x3b, 0x32, 0x4d, 0x09, 0x7f, 0xe7, 0xab, 0xbb, 0x60, 0xb4, 0x1f, 0xdd,
  0x69, 0x01, 0x08, 0x27, 0x33, 0x4e, 0xf8, 0x40, 0xb5, 0x14, 0xc3, 0xf3,
  0x6e, 0xc9, 0xac, 0xaf, 0xe3, 0xcd, 0x31, 0xf7, 0xe6, 0x18, 0x30, 0x44,
  0x49, 0x4b, 0xb1, 0x22, 0x1e, 0xfe, 0x89, 0xd8, 0xc1, 0xb2, 0xb9, 0xbf,
  0x3e, 0xeb, 0x8e, 0x0c, 0xcd, 0x36, 0xbc, 0x4f, 0xb8, 0x31, 0x09, 0x09,
  0xf8, 0xe6, 0x57, 0xbc, 0x7a, 0xb4, 0x5f, 0xdc, 0xcf, 0x00, 0x84, 0x26,
  0x45, 0x4d, 0x1d, 0x41, 0x79, 0x15, 0x53, 0xf4, 0xfe, 0xc9, 0x5b, 0xaf,
  0x4e, 0xcd, 0xa1, 0xf6, 0x23, 0x18, 0x0f, 0x44, 0x23, 0x4c, 0x35, 0x23,
  0xbd, 0xfe, 0x3f, 0xd9, 0xb9, 0xb2, 0xf3, 0xbe, 0xdf, 0xea, 0x31, 0x0c,
  0x17, 0x36, 0xd8, 0x4f, 0x82, 0x32, 0x01, 0x09, 0x51, 0xe7, 0x32, 0xbc,
  0xbd, 0xb4, 0xe1, 0xdc, 0x0e, 0x01, 0x1a, 0x27, 0x39, 0x4d, 0x8a, 0x40,
  0x22, 0x15, 0xf6, 0xf3, 0x76, 0xc9, 0xe6, 0xaf, 0xe0, 0xcd, 0xe8, 0xf6,
  0x94, 0x18, 0x93, 0x44, 0xc7, 0x4b, 0xaf, 0x22, 0x77, 0xfe, 0xc9, 0xd8,
  0x0a, 0xb2, 0x41, 0xbf, 0x60, 0xeb, 0x72, 0x0c, 0xa7, 0x36, 0x1e, 0x50,
  0xf4, 0x31, 0xb3, 0x08, 0xe5, 0xe6, 0xc6, 0xbb, 0xe4, 0xb4, 0x6f, 0xdd,
  0x0d, 0x02, 0x9a, 0x27, 0x54, 0x4d, 0x11, 0x40, 0xc6, 0x14, 0x97, 0xf3,
  0xf9, 0xc8, 0x3b, 0xb0, 0x6d, 0xce, 0x22, 0xf7, 0x27, 0x19, 0xde, 0x43,
  0x8a, 0x4b, 0x75, 0x23, 0x08, 0xff, 0x61, 0xd9, 0x7a, 0xb2, 0xe8, 0xbe,
  0xba, 0xea, 0xcb, 0x0b, 0x28, 0x36, 0xf6, 0x50, 0x93, 0x32, 0x3a, 0x09,
  0xab, 0xe7, 0xfb, 0xbb, 0x29, 0xb4, 0xdc, 0xdc, 0x75, 0x01, 0xe4, 0x26,
  0x38, 0x4d, 0xd4, 0x40, 0x0a, 0x15, 0x9d, 0xf3, 0xcf, 0xc9, 0x2e, 0xb0,
  0xbf, 0xcd, 0xc9, 0xf6, 0xbd, 0x18, 0xfb, 0x43, 0x2e, 0x4b, 0xf6, 0x22,
  0xcd, 0xfe, 0xc1, 0xd8, 0x9f, 0xb2, 0x85, 0xbf, 0x12, 0xeb, 0x24, 0x0c,
  0xb8, 0x36, 0x4c, 0x50, 0x01, 0x32, 0xe8, 0x08, 0x55, 0xe7, 0x30, 0xbb,
  0x04, 0xb4, 0x86, 0xdd, 0xa5, 0x01, 0x6d, 0x27, 0xbd, 0x4d, 0x8f, 0x40,
  0x83, 0x14, 0x61, 0xf3, 0x39, 0xc9, 0x14, 0xb0, 0x2e, 0xce, 0x73, 0xf7,
  0x45, 0x19, 0x4f, 0x44, 0xf7, 0x4a, 0x6f, 0x22, 0x2f, 0xfe, 0x34, 0xd8,
  0x9a, 0xb2, 0x0c, 0xc0, 0x69, 0xeb, 0x84, 0x0c, 0x39, 0x37, 0xd7, 0x4f,
  0x7a, 0x31, 0x9d, 0x08, 0xfd, 0xe6, 0x1b, 0xbc, 0x5a, 0xb4, 0xbf, 0xdc,
  0x1b, 0x01, 0xbb, 0x26, 0xce, 0x4d, 0x19, 0x41, 0x18, 0x15, 0x0b, 0xf4,
  0xc3, 0xc9, 0x5e, 0xaf, 0x8b, 0xcd, 0xea, 0xf6, 0x85, 0x18, 0x03, 0x44,
  0x9b, 0x4b, 0x03, 0x23, 0x69, 0xfe, 0xeb, 0xd8, 0xd5, 0xb2, 0x5c, 0xbf,
  0x11, 0xeb, 0x92, 0x0c, 0x52, 0x36, 0xd1, 0x4f, 0x08, 0x32, 0x5f, 0x09,
  0x42, 0xe7, 0xcf, 0xbb, 0xe0, 0xb4, 0x31, 0xdd, 0x5d, 0x01, 0x5b, 0x27,
  0x9a, 0x4d, 0x6b, 0x40, 0xc0, 0x14, 0xba, 0xf3, 0x24, 0xc9, 0x6e, 0xaf,
  0x22, 0xce, 0x3b, 0xf7, 0xe0, 0x18, 0xb8, 0x44, 0xb1, 0x4b, 0x64, 0x22,
  0x2d, 0xfe, 0x6b, 0xd8, 0x64, 0xb2, 0xa8, 0xbf, 0x96, 0xeb, 0xd0, 0x0c,
  0xe3, 0x36, 0xce, 0x4f, 0xa6, 0x31, 0x70, 0x08, 0x8e, 0xe6, 0x92, 0xbb,
  0x2b, 0xb5, 0xaf, 0xdd, 0x9f, 0x01, 0xf2, 0x27, 0x87, 0x4d, 0xd8, 0x3f,
  0x6c, 0x14, 0x5a, 0xf3, 0x9f, 0xc8, 0xff, 0xaf, 0xac, 0xce, 0x8e, 0xf7,
  0x21, 0x19, 0x21, 0x44, 0xbf, 0x4b, 0x16, 0x23, 0xb7, 0xfe, 0x32, 0xd9,
  0xe0, 0xb1, 0xdb, 0xbe, 0x1e, 0xeb, 0x15, 0x0c, 0x5e, 0x36, 0x57, 0x50,
  0x53, 0x32, 0xf5, 0x08, 0x4a, 0xe7, 0xf7, 0xbb, 0x9f, 0xb4, 0x15, 0xdd,
  0xc6, 0x01, 0x38, 0x27, 0x35, 0x4d, 0x6a, 0x40, 0xf9, 0x14, 0x90, 0xf3,
  0x71, 0xc9, 0x35, 0xb0, 0x1d, 0xce, 0xca, 0xf6, 0xdf, 0x18, 0x5e, 0x44,
  0x28, 0x4b, 0x9c, 0x22, 0x81, 0xfe, 0x85, 0xd8, 0x28, 0xb2, 0x9c, 0xbf,
  0x71, 0xeb, 0x65, 0x0c, 0x02, 0x37, 0xe3, 0x50, 0xbd, 0x31, 0x9f, 0x08,
  0xf2, 0xe6, 0x4f, 0xbb, 0x9e, 0xb4, 0xab, 0xdd, 0x05, 0x02, 0xb9, 0x27,
  0x8a, 0x4d, 0x21, 0x40, 0x52, 0x14, 0x01, 0xf3, 0xfe, 0xc8, 0x3f, 0xb0,
  0x93, 0xce, 0x63, 0xf7, 0x7a, 0x19, 0x9f, 0x44, 0xbc, 0x4a, 0x28, 0x22,
  0x3e, 0xfe, 0xe9, 0xd7, 0x4f, 0xb2, 0x3c, 0xc0, 0xc4, 0xeb, 0xc3, 0x0c,
  0x8d, 0x37, 0x33, 0x50, 0x36, 0x31, 0x3b, 0x08, 0x18, 0xe7, 0xb7, 0xbb,
  0x0b, 0xb4, 0x28, 0xdd, 0x5f, 0x01, 0x05, 0x27, 0xde, 0x4d, 0xee, 0x40,
  0xcd, 0x14, 0xb6, 0xf3, 0x8c, 0xc9, 0xe0, 0xaf, 0xd3, 0xcd, 0x2c, 0xf7,
  0xe7, 0x18, 0x14, 0x44, 0x35, 0x4b, 0xc7, 0x22, 0x17, 0xfe, 0x9d, 0xd8,
  0xbc, 0xb2, 0xc6, 0xbf, 0x09, 0xeb, 0x45, 0x0c, 0xd0, 0x36, 0xcc, 0x4f,
  0xc6, 0x31, 0x03, 0x09, 0x0d, 0xe7, 0x66, 0xbb, 0xd1, 0xb4, 0x8a, 0xdd,
  0xad, 0x01, 0x91, 0x27, 0x24, 0x4e, 0x63, 0x40, 0x5e, 0x14, 0x75, 0xf3,
  0xe7, 0xc8, 0x75, 0xaf, 0x5e, 0xce, 0x84, 0xf7, 0x43, 0x19, 0xa6, 0x44,
  0x2c, 0x4b, 0x31, 0x22, 0xda, 0xfd, 0x15, 0xd8, 0x87, 0xb2, 0x0a, 0xc0,
  0xcf, 0xeb, 0x28, 0x0d, 0x29, 0x37, 0xb8, 0x4f, 0x3b, 0x31, 0xc1, 0x08,
  0x87, 0xe6, 0x29, 0xbb, 0x53, 0xb5, 0x02, 0xde, 0xe8, 0x01, 0x38, 0x28,
  0xe4, 0x4d, 0xba, 0x3f, 0x06, 0x14, 0x23, 0xf3, 0x46, 0xc8, 0x92, 0xaf,
  0xe2, 0xce, 0xfc, 0xf7, 0xfe, 0x18, 0x8c, 0x44, 0x26, 0x4c, 0xa6, 0x22,
  0x83, 0xfe, 0xc7, 0xd8, 0x58, 0xb2, 0x44, 0xbf, 0x4f, 0xeb, 0x79, 0x0c,
  0x90, 0x36, 0xf4, 0x4f, 0x02, 0x32, 0xba, 0x08, 0xe5, 0xe6, 0xdb, 0xbb,
  0xef, 0xb4, 0x59, 0xdd, 0xb1, 0x01, 0x94, 0x27, 0x54, 0x4d, 0x1e, 0x40,
  0xc9, 0x14, 0x9d, 0xf3, 0x03, 0xc9, 0x1d, 0xb0, 0x59, 0xce, 0x30, 0xf7,
  0x06, 0x19, 0xda, 0x44, 0x44, 0x4b, 0x49, 0x22, 0x2c, 0xfe, 0x4f, 0xd8,
  0xd4, 0xb1, 0xbd, 0xbf, 0xbd, 0xeb, 0xc2, 0x0c, 0x25, 0x37, 0xf1, 0x4f,
  0x77, 0x31, 0x62, 0x08, 0x86, 0xe6, 0x5b, 0xbb, 0x07, 0xb5, 0xef, 0xdd,
  0x4d, 0x02, 0x14, 0x28, 0x81, 0x4d, 0xb7, 0x3f, 0x45, 0x14, 0xed, 0xf2,
  0xa6, 0xc8, 0x45, 0xb0, 0xf4, 0xce, 0x5d, 0xf7, 0xa9, 0x19, 0xcd, 0x44,
  0x73, 0x4a, 0xe8, 0x21, 0xe4, 0xfd, 0xae, 0xd7, 0x22, 0xb2, 0x75, 0xc0,
  0x14, 0xec, 0x10, 0x0d, 0xca, 0x37, 0x72, 0x50, 0xed, 0x30, 0x01, 0x08,
  0x0a, 0xe7, 0xaf, 0xbb, 0x70, 0xb4, 0x5f, 0xdd, 0xaf, 0x01, 0x67, 0x27,
  0x4a, 0x4d, 0x4e, 0x40, 0xb8, 0x14, 0x3a, 0xf3, 0x7b, 0xc9, 0xca, 0xb0,
  0x2d, 0xce, 0x58, 0xf7, 0x64, 0x19, 0xe5, 0x43, 0x72, 0x4a, 0x99, 0x22,
  0x83, 0xfe, 0x35, 0xd8, 0x12, 0xb3, 0x53, 0xc0, 0x40, 0xeb, 0x9a, 0x0c,
  0x14, 0x37, 0x70, 0x4f, 0x60, 0x31, 0xc0, 0x08, 0xbe, 0xe6, 0x2f, 0xbb,
  0x2a, 0xb5, 0xdb, 0xdd, 0xfa, 0x01, 0xda, 0x27, 0x92, 0x4d, 0x0d, 0x40,
  0x33, 0x14, 0xf9, 0xf2, 0xf1, 0xc8, 0x8a, 0xb0, 0xab, 0xce, 0xb6, 0xf7,
  0xc1, 0x19, 0x51, 0x44, 0x46, 0x4a, 0x18, 0x22, 0x78, 0xfd, 0xc6, 0xd7,
  0xf5, 0xb2, 0xcb, 0xc0, 0x92, 0xeb, 0x08, 0x0d, 0x7c, 0x37, 0x20, 0x4f,
  0xd7, 0x30, 0x87, 0x08, 0x25, 0xe6, 0x63, 0xbb, 0xee, 0xb5, 0x35, 0xde,
  0x2f, 0x02, 0x31, 0x25, 0x06, 0x43, 0x62, 0x32, 0x9a, 0x0e, 0x30, 0xf7,
  0xcb, 0xdd, 0x6d, 0xd4, 0x55, 0xe8, 0x82, 0xfc, 0x07, 0x09, 0x97, 0x14,
  0x46, 0x12, 0x03, 0x06, 0x72, 0xff, 0xf9, 0xfd
};
unsigned int pip_wav_len = 3548;

If I click the button in HA once I see it in the ESPs logs but hear no sound.
If I click the button in HA twice pretty quickly I get the same log entries and a single pip sound.
I can’t get it to pip reliably when I either click the button in HA once or by triggering it any other way I can think of though.