[TTS] create `tts.say` to unify speech commands tts.google_say, tts.cloud_say, etc

When an automation runs a Text-To-Speech service it currently requires “tts.google_translate_say”, “tts.cloud_say”, “tts.picotts_say”, etc. If a user needs to change to a different TTS engine, they have to manually update each and every automation (!!).
Let’s agree on a standard service_name that encapsulates all, i.e. just “tts.say”. This would have many benefits:

  • It would dissuade from tacky solutions like i.e. manually overwriting service_name: google_say to globally swap that TTS engine (when setting Nabu Cloud, picotts, etc).

  • Shared automations and documentation would become unified and vendor agnostic, all referring to tts.say instead of its many, ever increasing variants.

  • Currently, when there is more than one TTS engine enabled, HASS chooses alphabetically. Having a unified name would allow users to specify which engine they really want to use. Thus resolving issue: Nabu Casa default tts change

  • It would make it possible to smoothly fall back to other TTS services when their connection is down. This also relates to the awesome advances in Nabu Casa Cloud TTS, which are providing the community with a selection of high quality voices. However, it won’t work when the connection is down. A unified tts.say option would allow to have a local TTS fallback upon network problems, improving reliability and user experience in the long run

Existing functionality would remain untouched. Most people don’t need to define voice properties at every service call - but they could still do it, as the specific TTS service names would remain unchanged.

A standard “tts.say” would just be very useful, platform agnostic and robust. Vote! :smiley:

Seems like this could easily be done via a blueprint

The idea is to facilitate sharing blueprints and any sort of yaml that uses TTS.

With the current scheme, and the ever-increasing number of TTS engines available, blueprints/automations are only going to get more fragmented.

Hence the proposal to unify this command at a system level ^^

Then you have my backing!

1 Like

Which TTS are you guys using? Google stopped for me a year or so ago and I started using Reverso, now that stopped with the error:
Platform error tts.reversotts - No module named ‘pyttsreverso’

No idea what’s going on

The HACS guys commented about Reverso:
“They are publishing stuff not reflected in the repo (and you should NOT use that at all!),”
I like reverso so hopefully a new release will sort it in the near future

Solved!

Get the module from here:

and copy it into the reversotts folder under custom_components. It all works now.

Hope this helps someone!?