A presentable voice assistant satellite

I have a question. If we use a Bluetooth speaker like the one in this build, why using audio output through amplifier (that may generate noises and headaches)? Can we use instead the bloototh connection (that is usually available in all ESP32 boards) to connect to the speaker itself for audio output? Hoping, by doing so, we can use the volume controls on the speaker without supplementary programming (I’m guessing), and remove the problematic amplifier from the build. Esp32 board will be used for wakeword, incoming audio through microphone and led lights. Can it be done?

I don’t believe this is currently possible. Most examples I’ve seen or used turn off Bluetooth when microwakeword is enabled. Someone in another thread said you can output audio to a media player, but it has to be defined in the ESPHome configuration and you may or may not have to allow the device to make HA service calls. Just be sure to enable it on the device after it’s added to HA. You would use one of the 2 services below

# In some trigger
on_...:
  # Simple
  - homeassistant.service:
      service: notify.html5
      data:
        message: Button was pressed
  # With templates and variables
  - homeassistant.service:
      service: notify.html5
      data:
        title: New Humidity
      data_template:
        message: The humidity is {{ my_variable }}%.
      variables:
        my_variable: |-
          return id(my_sensor).state;

I have had some time to look at this. And the microphone part is not possible, unless you have a device with headset_head_unit profile. PulseAudio does not support handsfree_head_unit profile, which most Bluetooth speaker would have, like mine. I could use the audio output of the speaker with the add-on, but unfortunately I couldn’t get the microphone work through Bluetooth.

If PulseAudio would have ofono as well, then it could work, but I guess, that is a different issue with HAOS.

Honestly, I wish I knew because on my Korvo-1 there is an annoying popping sound before playback. I believe it’s because there is a pin and if it detects something plugged into the 3.5mm jack it’s high and if not it’s low and uses the jat output to a non passive (powered ) speakers which nobody has gotten to.ork. S3 box is gone and this is decently priced.

It’s just super annoying but looking at alternatives the M5Stack CoreS3 which has the yaml out there for being a voice assistant. It also has several modules although.Im not sure how ESPHome would handle them as they have an RCA module with left and right channels. They also have one doe Ethernet. Problem is it can’t just be plug and play in ESPHome. They do have the code out there though and it’s essentially an S3 box made by m5stack but you can stack modules like batteries to Lora modules, only 2 that interested me are below but like I said, it won’t just be plug and play.

I doubt this will ever do audio over BT. It’s listening for the wake work ever 15ms or even higher by default and uses the PSRAM to hold on to what it heard just to see if it was triggered so listening for the wake word is it’s full time job. I guess not once your in the actual voice pipeline as it’s just STT and TTS but I’ve always gone by the S3 box examples and they disable BT once they connect to HA so it won’t take up resources (per comments in YAML). The thing is the below might just end in the same situation because outside the S3 boxes it seems hit or miss. I have read lots of people ha ing some audio issues of various degrees

And after typing all that out, that has audio issues also according some GitHub discussion. Try the below, it might work but I haven’t tried yet. I e watched a few of his videos and so if he said he has it working I don’t doubt him.

Honestly, I ended up spending 10 dollars and I am going to try this because while vice commands are nice, they certainly still have some issues. I’m sure they will get worked out over time but 8 dollars for physical keys to run anything would be nice to have around and you can do that with.a direct WiFi num pad, just need an available USB port on your HA server.

Ive moved on from these ESP32 options to the Wyoming Satellite. They are much better.

Oddly I just figured out how to do it but yeah, Wyoming satellite can actually run Openeakeword and some other stuff like Wyoming and piper on the pi. which was never ported to ESP32 and I honestly don’t think it has the power to. Just leaving this here for others in case they run into this. You also have to go to devices, then ESPHome, click configure on the voice assistant and check allow this device to make home assistant service calls. After that I unplugged the 3.5mm audio output. Problem solved.


Source

on_tts_end:
  - homeassistant.service:
      service: media_player.play_media
       data:
         entity_id: media_player.vlc_telnet  
         media_content_id: !lambda 'return x;'
         media_content_type: music
         announce: "true"