Speech Synthesis Markup Language (SSML)


This tutorial demonstrates how to modify speech synthesis in real-time within your text.

How To Do It

First, I need to give credit where credit is due. I didn't actually created this tutorial - instead, it was inspired and the video was created by Sebediah. I'm merely moving his information into this tutorial for others to find.

If you're looking for the thread that started this conversation, find it here: http://www.ez-robot.com/Community/Forum/Thread?threadId=10743

Sebediah figured out that you can include SSML code in your text to speak. He also created a fantastic tutorial video, which you can see below.

Here's an example of code he provided to give you a head start before the video:


#The tag is only needed if you're going to make other changes mid-sentence, otherwise you can just use the first tag and don't need the second one after the string.

$VoiceStart = "<prosody pitch ='+230%'>"
$VoiceEnd = "</prosody>"

SayWait($VoiceStart + "When I'm tired my voice gets very deep and I speak slowly" + $VoiceEnd)

#9   — Edited
The tags "<" ">" are ignored. Something changed ?
#10   — Edited
I copied directly from the video

Program runs well, only with the same voice, not high, or low , just normal
#11   — Edited
I copied the code directly from the video

Program runs well, only with the same voice, not high, or low , just normal

what am I missing?

the +   where?
I took out the  + and it is still the same
i am looking to see if it works here.moment.
I give up   lol  :-)
Nomad 6r Did it work?
still trying.but i typ all in.
I tried many combinations - no luck, all the same voice
sofar here too but also he says all above numbers  and letters.
$VoiceStart = "(prosody pitch = '+100%')"
$VoiceStart2 ="(prosody pitch = '+230%')"
$VoiceStart3 = "(prosody pitch = '-50%')"
$VoiceEnd = "</prosody>"

SayWait($VoiceStart + "normal voice" + $VoiceEnd)
SayWait($VoiceStart2 + "high voice" + $VoiceEnd)
SayWait($VoiceStart3 + "low voice"+ $VoiceEnd)

same voice
you have to use SayEzb if you want the voice come out the robot.
if you use say alone it comes out the speaker.
I will try the robot
$VoiceStart = "(prosody pitch = '+100%')"
$VoiceStart2 ="(prosody pitch = '+230%')"
$VoiceStart3 = "(prosody pitch = '-50%')"
$VoiceEnd = ""

SayEZBWait($VoiceStart + "normal voice" + $VoiceEnd)
SayEZBWait($VoiceStart2 + "high voice" + $VoiceEnd)
SayEZBWait($VoiceStart3 + "low voice"+ $VoiceEnd)

same voice out of the robot
User-inserted image
there are no 4 lines in the above chapter,i only 3 i see in the video.
but indeed it doesn work .
lol, no matter how many lines it does not work

thanks anyway
#27   — Edited
This works in EZB scripts, all you need

ControlCommand("Speech Settings", "SetVoiceRate", "slow")
saywait("I am speaking slow")

ControlCommand("Speech Settings", "SetVoiceRate", "Fast")
saywait("Now i am speaking fast")

#Too fast to hear
#ControlCommand("Speech Settings", "SetVoiceRate", "ExtraFast")
#saywait("Now i am speaking extrafast")

ControlCommand("Speech Settings", "SetVoiceRate", "ExtraSlow")
saywait("Now i am speaking super slow")