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

ARC Pro is your gateway to a community of like-minded robot enthusiasts and professionals, all united by a passion for advanced robot programming.

#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