Does anyone know how to change TTS voices?
My current setup is fire tab running fully kiosk with kiosk DTH and bigtalker2. Right now big talker sends to DTH as synthesis rather than music. The music side appears to have many choices to choose from but it doesn’t work with kiosk DTH. I’m not finding any settings in DTH or big talker that allow me to change TTS voices. Help please.
Hi Tom,
You can change the TTS voice in the code of the BigTalker 2.0 SmartApp (add extra ones). For selecting the TTS voice you need to go into the Configure Defaults menu, and then Select voice.
You can add extra ones if you wish by changing this part of the code:
state.supportedVoices = ["Ivy(en-us)","Joanna(en-us)","Joey(en-us)","Justin(en-us)","Kendra(en-us)","Kimberly(en-us)","Salli(en-us)","Amy(en-gb)","Brian(en-gb)","Emma(en-gb)","Miguel(es-us)","Penelope(es-us)"]
To find other languages, search for the Amazon Polly languages:
Oh, sorry. That works only for the mediaPlayer. The synthesis device creates its own TTS. You should have options in the DTH or in the code of the DTH.
I will tag @joshua_lyon.
Joshua, do you know how to change the speak() functions language? I cannot get to the classic SmartThings documentation, as it throws a 403 error.
Thanks for the reply. I only see options on the media player side of bigtalker. I’m just not sure if the TTS is regulated by DTH or the fire tab in this scenario and where to change that. Do you know if it’s possible to run big talker in both modes at the same time? I’d like to start exploring asst relay to send to my home hubs (but still want it going to the tablets running DTH).
speak()
officially just accepts a phrase to speak. Different device handlers may have different ways of changing the language, inflection, voice, etc so I’d recommend checking directly in the DTH Release Thread.
Also note that the FKB Controller DTH has support for playing media files, so one option would be to pre-render your desired TTS messages and save them to the device as noted in the thread above.
Thanks @joshua_lyon!
@Tom_Hughes, looking at the Fully Kiosk Browser documentation, there is an option to change locale and TTS engine.
https://www.ozerov.de/fully-kiosk-browser/
Use TTS and Multimedia
// Text to speech
/?cmd=textToSpeech&text=[text]&password=[pass]
/?cmd=textToSpeech&text=[text]&locale=[locale]&password=[pass]
/?cmd=textToSpeech&text=[text]&locale=[locale]&engine=[engine]&password=[pass]
/?cmd=textToSpeech&text=[text]&locale=[locale]&engine=[engine]&password=[pass]&queue=[0|1] // ver. 1.38+
/?cmd=stopTextToSpeech // ver. 1.38+
// Sounds and volume
/?cmd=setAudioVolume&level=[0-100]&stream=[1-10]&password=[pass]
/?cmd=playSound&url=[url]&loop=[true|false]&password=[pass]&stream=[1-10]
/?cmd=stopSound&password=[pass]
/?cmd=playVideo&password=[pass]&url=[url]&loop=[0|1]&showControls=[0|1]&exitOnTouch=[0|1]&exitOnCompletion=[0|1]
But, honestly, I am not a Fully user, so I have no clue what exactly should go to locale and engine.
Otherwise the DTH has a code part where it tries to utilize ST’s textToSpeech function to play the resulting audio file, but the comment next to it is quite weird.
// def sound = textToSpeech(wktext) //currently used in Hubitat version cannot make it work with embedded SSML in ST
// playSound(sound.uri)
I have doubts that the textToSpeech function in ST was ever built for SSML.
Ask the Author of the DTH to add the locale and engine options.