So I have been hacking around with using SSML and an IVONA voice (in this case, Emma) and thought I would share my findings, consolidate some stuff that has appeared here prior, and see if anybody can add to all this.
HEADER
So if you are planning to use SSML, this header needs to be at the top of your Text-To-Speech textblock:
<?xml version="1.0"?>
<speak version="1.0" xmlns="
http://www.w3.org/2001/10/synthesis"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.w3.org/2001/10/synthesis http://www.w3.org/TR/speech-synthesis/synthesis.xsd"
xml:lang="en-US">
[option 1;option2;option 3]
</speak>
NOTE that the next-to-last line in this block is a placeholder for what you want to say. This can utilize some of the VA abilities, like randomly selecting between multiple choices if they are separated by a semi-colon, as shown in this example.
NOTE the third-from-bottom line of that block reads xml:lang="en-US"> If, like me, you are using a non-US voice, you need to edit the "en-US" to match your language. In my case it reads "en-UK" This is a small detail but missing it will bork the whole block.
======
PROSODY, or 'say it like you feel it'
So there are a number of SSML tags but thus far I have found very few that actually work. Thankfully, "prosody" is one of the magic ones. Prosody has a number of sub-parts, like volume, rate and pitch. I cannot detect any meaningful change from volume or pitch, but rate is a winner. I found it effective to express rate as such:
[This is a sentence <prosody rate="x-slow">with a lot</prosody> of emphasis. This is one without emphasis.]
This works pretty well to demonstrate the difference. The range of rate is expressed as x-slow, slow, medium, fast and x-fast. The faster rates seem to very quickly accelerate the speech into the land of Alvin and the Chimpunks, and medium sounds pretty much like the default rate.
======
BREAK, or 'pause for effect'
I use break to insert a pause defined in seconds, such as <break time="1.5s"/> That allows me to insert a very precise pause, very precisely in a block of text.
======
I hope this is of some help. I would love to know if anybody has found success with any other SSML tags. Cheers and all the best in the New Year!
Mike