rhasspy / wyoming-satellite

Remote voice satellite using Wyoming protocol
MIT License
702 stars 104 forks source link

[Request] Ability for Satellite to be a TTS target / media_player entity #194

Open qJake opened 4 months ago

qJake commented 4 months ago

Feature

In conjunction with the Wyoming Integration over at home-assistant/core, add support for a Wyoming Satellite to be a media_player. It has speakers. after all. šŸ™‚

Use Cases

The primary use for media player functionality would be as a target entity for tts.say service calls.

Satellites should be able to be targeted as media players for TTS commands that originate from Home Assistant.

Or, put more simply, I should be able to announce stuff from Home Assistant using TTS, and use my Satellites as target speakers.

Secondary use cases may include playing sound effects from Home Assistant, as well as streaming music - though if music cannot be streamed due to technical limitations or it would be too difficult to implement, I'd personally be okay with just TTS output.

Potential Hurdles

The satellite (I believe?) takes exclusive control over the audio output device, so it would need to handle multiple playback scenarios internally.

For example, if the Satellite is responding to a voice command, and a TTS announcement is immediately triggered from Home Assistant, what should happen? Ideally, the announcement would be queued after the voice response, but interrupting the output may be easier.

andzejsp commented 3 months ago

Also, i would prefer to have the media player separate, so that whatever is playing on the device/pc keeps playing unless you issue command to stop. Like what we have if i run a movie in VLC and open web browser with youtube all the media are playing at the same time. So the satellite should act accordingly, and be just another stream of audio piped to the same audio sink what the pc is configured to use. Also there should be volume control for the satellite to control how loud the TTS or any other media thats comming from HA