TTS ... speed control?


I was just wondering if anyone knows of a way to slow down the TTS voices ... I find they speak a bit too fast for my slow ears, particularly if I'm not expecting them I will hear there was an announcement but since I wasn't listening will have no clue what it was. Just wondered.

Maybe you could add a preamble. Such as "Announcement" or "Attention"

it is a bit fast I just add "excuse me" or "warning warning" before each announcement to get my attention.
If you really need to slow down the message you could create the same TTS rule multiple times one for each word just put a delay in for each consecutive word.

probably would help ... was hoping for a way to tweak the pace of the pronunciation even within a given word though. But it's ok, I knew it was a longshot.

I would like this option also. But I don't think it exists today.

The TTS engine does respond to punctuation. So, you can use commas or elises (,,,) to get a pause in the announcement. For example, I don't ever use "Attention there is a problem." I always do something like "Attention...there is a problem." Of course, using two separate sentences will get you the biggest break "Attention. There is a problem."

I believe the hubitat tts supports ssml. Itgives a little more control over such things. I have not tried myself.

1 Like like a charm. Good call!!
There is a rate parameter you can set, I didn't play with that. I did play with some of the commands like whispered. They are VERY dependant on punctuation. For example I tried this:
<amazon:effect name="whispered"> This is a test.</amazon:effect>
And nothing came out. But then I tried this:
<amazon:effect name="whispered"> This is a test. </amazon:effect>
and it worked perfectly. For those that don't notice, there's a space after the period at the end of the second command. So, I would definitley try out whatever you want to do in the device's "Speak" command in the device editor window to make sure you have it right before you put it into any automation or app.

1 Like

Hmm, didn't work for me, she just speaks the ssml.

What type of device are you issuing the speak command to? Cause you have to use the native hubitat Amazon Poly TTS engine. Won't work for the GH broadcasts or the like. And you have to use them EXACTLY as they are detailed on that page.

whisper works great with my Sonos but not with my echo dots. could not get rate to work on either

Speech rate worked for me. Were you sure to include the </prosody> at the end of the text to be spoken at a different rate? Also, if you have a period at the end of the sentence, you need a space before </prosody>

1 Like

thanks that worked
rate working fine on Sonos still no go with echo dots which is a bit ironic

1 Like

It's because of the way the text is sent to the Echo from HE. I can use them with my GH's if I use the Speak command but not if I use the Broadcast feature through device notification, since that uses the Google TTS engine.
If the text is being sent to whatever is issuing the command to your echo wrapping in quotes, it's going to read it verbatim. That's how it's programmed to handle it, unfortunately.

It was an echo.
I copied and pasted directly from the documentation, the example.

I wouldn't expect it to work with the echo since it's not passing it to the native Hubitat TTS engine, right? What integration are you using to send the speak command to the Echo?

Yep, I tried it on my speakers (not echo) and it worked. I thought Alexa TTS was sending the text already synthesized.

1 Like

Looks like tags are getting stripped out of the speak string in a rule. The following pasted in the box

Attention: <break time="1s"/> <prosody rate="slow">you have clothes in the washer</prosody>.

Becomes the following on "done editing action":

Attention:  you have clothes in the washer.

Yes, RM now strips some html tags.

HE is afraid I'm going to hack my own device? Looks like response designer is a workaround. Still viable? Any others?