the script is using an input_boolean to flip so that one announcement is done at a time, that's why I have the "jarvis_announcement_wait" boolean
it uses "input_number.jarvis_<<room>>_volume to be able to adjust the volume per room for the announcements
it uses a little "ding" sound prior to the announcement
it uses piper and with trial end error I figured out how many word per minute "ryan" is speaking so that the script ends exactly at the time when the tts announcement has finished in case there are multiple announcements to be made per room
This is really cool, nice work. I'll have to take a look at using this method, right now I've got a hacky Sonos API with Google translate tts giving me announcements.. this looks way more straightforward and useable
the proposed solution above has only a delay after the chime if the tts to generate is very long and hasn't been generated in the past. Then, you hear "ding" ... pause pause pause pause ... announcement. but this comes all down to the processing power where you host your piper docker/engine/addon