Wyoming-satellite as tts output?

I have setup a wyoming satellite and got it to communicate with HA. But I am curious…

If i have things like “washer is done” or something to that effect, how can i sent TTS to that satellite? It’s not showing up as a media_player… so not sure how or if this is even possible. This seems like a feature that is needed and hopefully in the works already since this is what we can do with alexa’s and google homes ect.

Anyone have any thoughts? Maybe I missed something in the setup?

2 Likes

@synesthesiam Do you know if this is possible or I have missed something?

This is coming :slightly_smiling_face:

All that’s left to do is give HA the ability to tell the satellite to run a specific portion of a pipeline. This would let you announce something on a satellite with the pipeline’s configured voice.

As for a general purpose media player, I think that it may be better to use a separate program. The problem, of course, is that you then need pulseaudio to avoid conflicts with the audio output device :confused:

2 Likes

Awesome!! I don’t need it to be a full media player, but a TTS endpoint would be perfect. I have a couple sound bars in the house that have a VA input which is slick since it just ducks the audio of whatever your actual source is to let you hear the voice assistant. I can play music on those other devices, but that TTS is what Im after :slight_smile:

Thanks!

Any idea when this is coming?

2 Likes

it would be interested to, would be nice if it can work with notifications. I would like to send Notifications to the TSS and output on the Wyoming-satellite .

2 Likes

@synesthesiam is there any eta on tihs? I have been playing with the wyoming satellites and seems to be doing pretty well, just wondering if i should switch from the rhasspy nodes, or if i should load rhasspy3 if they are going to be compatible with HA?

Anyone seen any update on this? I have 6 rhasspy satellites I could convert over to wyoming satellites, but I have voice notifications for stuff that go to them that I can’t reproduce with wyoming satellites yet.

I use music assistant + snapcast for TTS on my Wyoming satellites for now. Works well.

just use the snapcast media player as your output? I have been looking at the snapcast thing myself and that could be the answer :slight_smile:

I am also planning upgrade from Rhasspy to Voice Assist - so trying to match the functionality. To make matters worse all my automations are in Node-RED.

In HA, the Wyoming Voice Assist satellite (in my case a RasPi running Wyoming-satellite) and Piper are devices in HA with entities - but apparently no services. Thus we have only the options of the built-in intents which operate on exposed entities; or of using a HA Automation to do limited processing before returning a simple fixed response within the Automation.

Exposing a device_id is only of minimal usefulness if we cannot send a response back to the originating device_id after performing our own processing. Currently I ask Voice Assist “what is the weather ?” to be told “done” before Node-RED looks up the forecast and prepares the message to be spoken - except that there is no satellite to send the TTS message to !

I have found several threads asking how to send a response to a voice satellite. @synesthesiam, any chance the priority on this could be bumped up a notch or two ?


As for media player … it seems logical that these work together … especially to subtract the signal going out the speakers from the signal coming in the microphone (is that called echo cancellation).

Or maybe to physically separate the microphone (input) part of the system from the output (speaker) and instead for Piper to use a media_player device for the speaker.

You can use Chime TTS for this. Its what I have been using fro awhile now with my Wyoming Satellite.
I have snapcast and Pulseaudio set up on it also though…

On my system my AndroidTV is my only media_player; and Developer Tools > Services shows under TTS service only: TTS.clear_cache, TTS.cloud_say and TTS.speak.

With TTS.speak i can choose Entity of Piper … but then it wants a media_player - but wyoming-satellite doesn’t expose one

@synesthesiam can you please expose a media_player interface for the wyoming-satellite speaker.

Alternatively take the speaker out of wyoming-satellite and use generic media_player instead (which may or may not be physically part of the same device as the microphone).

Sorry Rich, i misunderstood. I have now installed the Chime TTS component through HACS, and it seems great. thanks for your advice.

1 Like

Any ETA on this? I just set up a RPi4 + MIC+ v2 HAT and it works great, but I want to make “announcements” (TTS) directly to it without using the voice pipeline.

Today, I can do that with, for example Sonos, by generating the TTS audio and then using the media_player_entity_id to broadcast the message through Sonos, but it doesn’t appear that this can be done with Wyoming Satellite?

Here’s what I want to be able to do that I seemingly can’t:

# Service call YAML:
service: tts.speak
target:
  entity_id: tts.piper
data_template:
  media_player_entity_id:
    - media_player.? # Where is my Wyoming Satellite?
                     # Or can we have a "tts.my_wyoming_device"?
  message: "{{ msg }}"

Anyone gotten this to work yet?

I just installed Chime TTS. And I have a Wyoming-Satellite working.

I do not understand how I can send TTS messages to my Wyoming Satellite. There is not a word about that in the Chime TTS documentation. It assumes media_player targets which is exactly what we do not have

I think the missing part here is that rich has some stuff installed in addition to wyoming satellite. (snapcast and pulseaudio). That enables a media player entity on the wyoming satellite.

I personally would love to see wyoming satellite natively expose a mediaplayer device.

3 Likes

@synesthesiam is there a big problem with this, or have you got side-tracked having fun with AI ?

I am happy to use a general purpose media player - my problem is deciding which to choose from :wink:
I have tried MPD which mostly coexists OK with Voice Assist (until they both try to output at the same time). Squeezelite seems better as a music player - but totally blocked Voice Assist :frowning:

Your instructions use aplay and arecord, so I assumed to stick with ALSA for the media-player. Can ALSA and PulseAudio use the same speaker concurrently ? I still have lots to learn.

2 Likes

I tried different solutions for TTS while we wait for the obvious solution which is to let the satellite software provide it.

I tried first the Music Assistant/Snapserver/Snapclient solution for tts. That sucks. There is a 60 seconds time out from you transmit a tts message and till you can send another. And they queue up. That is no good.

Then I tried mpd. I could not make that work properly either.

I tried vlc. It is surprisingly easy to make that work and I just let the local vlc talk directly on the alsa layer. Yes, if you talk to the satellite and then get a message you loose some audio. That rarely happens. But vlc clients are not in sync so you have nasty echoes when you have 5 clients in the house.

I ended up with Squeezelite and also let us a Logitech Media Service (which has a new name now still with L). That works well. The TTS has a 2 second time out. That is perfect. And if you create a permanent group of all the satellites then they are in sync 90% of the times. That is better than Alexa Media Player does.

ONE THING. I do not use my clients for Music. I love music too much to listen to music from a crappy little Jabra mono box. I keep my Squeezeclient for music in a separate group from the Wyoming Satellite boxes. So I only need to worry about conflicts between Wyoming voice responses and the rare TTS messages. I can live with that

I’ve not experienced a 60 second delay using music assistant/snapcast for TTS. I can run them back to back without issue.