larschrjensen
Denmark
Asked
— Edited
Resolved by DJ Sures!
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?
no markup. You can create a plugin to do it
Right, that's what I thought. Thanks for the speedy reply!
Also... You can add the speech synthesis settings control (https://synthiam.com/Tutorials/Help.aspx?id=156) and write your script like..
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.
Great! Let me know if you have any questions about creating a plugin for this.
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:
Here's a video I made for those who prefer video format when learning:
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.
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
@Sebediah - you are absolutely awesome! Thank you for sharing this.
Thanks @Sebediah this was indeed what I was looking for. Maybe the video could be moved into the tutorial section so that it does not becomes 'lost' in the forum.
larschrjensen - you can do that following the instructions in the top menu if you'd like
Glad I could be of some assistance! Goodluck with your voices, everyone
Sebediah&dorian
so cool and indeed very usefull.this going to be fun.
many thanks.
oops it says averything like slach dot.and the pitch dont work.
What voice are you using Patrick?
default david
And what did Sebediah teach us about Microsoft voices like David? If we watch the video Sebediah teaches us that this type of tagging only works with voices from the vendors Cepstral or CereProc and will not work with Microsoft voices.
ah .ok i have a few from cepstral.thanks justin.didn listen at the video good.
Cool, I'll be you'll be adding some cool voice effects to your projects in no time Patrick
i just ad the cepstral voice .still same error.he says all kinds of stuf and no pitch. i also ad cepstral as default pc voice.is the pic correct? post #15
No Patrick, your code in your picture is not correct. Please watch the video that Sebediah made carefully because your answers are in there. Compare your code to his. One thing you'll see is you are missing = after pitch. Look at this code at time index 11:23
i only notest the word ezb from sayEZBWAIT is in big letters. i try one line.it does not work.i added =.he also say something before, the actully line he must say.cant understand it.
Hello Patrick, there are a few problems with your code there. As Justin said, you're missing the = sign after pitch in both variables. Also I noticed you were trying to use the $VoiceStart variable on the first command. Unless you have created that variable somewhere else in ARC, it will not work because that was Dorian's default variable that I had created elsewhere in the program.
If you want to see that this really works, use the code I made on #7 and make modifications on that. But I encourage you to follow Justin's advice, stop the video where you can see my code, and make sure you write it exactly the same. But don't use the first $VoiceStart variable.
sebediah
ah i made a screenchotfrom the wrong timing then.when i understand what you are saying in the first lines.i can make voices in swiftalker (cepstral ) and use that wiht the $voicestart.
thanks
ok i got it.now i need to memorise it. eek haha i put some motion in there too.
Nicely done Patrick! Thanks for the video mention Now you can give all your robots their own voices, you seem to have a little army of them there!
yeach one of my robots talks dirty.i need to watsh him .lol i sold 30 robots allreddy.i sell them so more ez robots come in the world. here in belgium is not much. you learn me a few things,btw
sayWAIT=sound comming out pc speakers sayEZBWAIT=sound comming out ezbv4 pitch=low or high rate=speed
Haha, yeah you better keep an eye on that robot then. I'm glad you learned something new!
@DJ or @larschrjensen I'm not sure who created the tutorial but I noticed on the SSML tutorial page that the code window has errors in it. The tag mentioned in the comment is not there and there's no SSML tags within the strings. Just thought I'd point it out so that the code actually works if someone decides to try it out
Very nice to see this being turned into an actual tutorial though!
This is awesome info on voice adjustments! What I do for additional effects is using my old Apple I-phone 4s there is a Q-Neo voice changer App in the Apple store but can be downloaded a free version with a few free effects. The effect I use is deep Gold Cylon Command robot and when using the default "David" voice from EZB it changes David into Cylon Commander,totally Ominous sound effect for sure! Only thing is you need to use the Apple Guitar Rig Microphone/Amp connector to input EZB sound into Iphone and back out to main robot speaker Amp. It is really loud doing it like that because it is designed for Guitar effects going to real Amps.
The video has disappeared and the prosody strings do not work. Has the SSML changed?
This works with Microsoft voices
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")
EzAng