Asked — Edited
Resolved Resolved by DJ Sures!

Speech Synthesis Markkup Language

I was wondering whether it is possible to use elements from the Speech Synthesis Markup Language to modify the speech output using EZ-script? Or if there are other markup options other than the ones already given in the Speech Settings Control?


ARC Pro

Upgrade to ARC Pro

Stay on the cutting edge of robotics with ARC Pro, guaranteeing that your robot is always ahead of the game.

#2  

Right, that's what I thought. Thanks for the speedy reply!

PRO
Synthiam
#3  

Also... You can add the speech synthesis settings control (https://synthiam.com/Tutorials/Help.aspx?id=156) and write your script like..


sayezbwait("Hello")

ControlCommand("Speech Settings", SetVoiceEmphasis, "Strong")

sayezbwait("I am speaking strong")

ControlCommand("Speech Settings", SetVoiceRate, "ExtraFast")

sayezbwait("Now i am speaking extra fast")

ControlCommand("Speech Settings", SetVoiceRate, "Slow")

sayezbwait("Now i am speaking super slow")

#4  

Yes I realize that. I was looking for a more fine-grained way with which to control the prosodic contours, and the breaks between strings. The method above is a bit too coarse for that. The SSML is a step in the right direction, so I was just wondering whether this is something that could be used in EZ-script.

However, using the SDK is perfectly fine, but thanks for the followup.

PRO
Synthiam
#5  

Great! Let me know if you have any questions about creating a plugin for this.

#6  

Based on my findings you can indeed use at least some SSML elements in ARC, it's been extremely useful when developing Dorian's voice!

@DJ Shame on you for not having more faith in your own amazing software!;)

This works just fine if you're using either a Cepstral or CereProc voice:

#The </prosody> 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='-50%'><prosody rate='.40'>"
$VoiceEnd = "</prosody>"

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

Here's a video I made for those who prefer video format when learning:

PRO
Canada
#7  

Thanks for the tutorial @Sebediah!

I was thinking about purchasing a Cepstral voice just recently, this knowledge would definitely be handy when wanting to modify a voice with EZ-Script.

#8  

Sebediah, Thank you for your interesting tutorial. My robot Artamus uses a Cepstral voice, and I was able to alter his voice using your examples. Alexa has a hard time understanding him, maybe this will help. Either way this allows me to customize his voice. Steve S