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!