Page 1 of 1
Improve TTS for address
Posted: Wed Feb 10, 2010 1:34 pm
by w2gi
Hi,
I am using 'Natural Voices' TTS engine to say the address. I am using various tags to improve it. This is the best I came up with. But, I still think this can be improved. Any suggestions on what TTS engine to use and other ways to improve this.
Code: Select all
<prompt>
<foreach item="location" array="document.locations">
<break time="2s" />
<audio expr="'http://audio.plumgroup.com/root/67672832/67672832_' + loc_idx++ + '.wav'"></audio>
<prosody rate="135.0" pitch="high"><say-as type="address"><value expr="' ' + location.NAME + ', ' + location.ADDRESS1 + ', ' + location.CITY + ', ' + location.STATE" /></say-as></prosody>
</foreach>
</prompt>
Thank you,
-Saif
TTS engine choice for IVR is a matter of preference
Posted: Wed Feb 10, 2010 3:40 pm
by support
Hi,
About what TTS engine you should use, it is a matter of preference on what engine's TTS voices you prefer to hear.
Also, looking at your IVR code, we noticed that you are using the "pitch" attribute in your
<prosody> tag. However, the "pitch" attribute only works for the Cepstral TTS engine. Just wanted to point this out.
Regards,
Plum Support
TTS either too fast or nothing
Posted: Thu Feb 11, 2010 9:58 am
by w2gi
Hi,
When I use Ceptral Swift engine it doesn't not prompt anything. When I use Realspeak engine the prompt is too fast (finishes the prompt in one second). AT&T Natural voices engine works fine. But the prompt can be improved. I wanted to compare Ceptral and Realspeak to see which one sounds better. But they are not prompting normally. What do you think it might be thats causing this behavior?
Nuance Realspeak code:
Code: Select all
<prompt>
<foreach item="location" array="document.locations">
<voice name="Samantha">
<break time="2s" />
<audio expr="'http://audio.plumgroup.com/root/67672832/67672832_' + loc_idx++ + '.wav'"></audio>
<prosody rate="130.0">
<say-as type="address">
<value expr="' ' + location.NAME + ', ' + location.ADDRESS1 + ', ' + location.CITY + ', ' + location.STATE" />
</say-as>
</prosody>
</voice>
</foreach>
</prompt>
Cepstral code:
Code: Select all
<prompt>
<foreach item="location" array="document.locations">
<voice name="Diane">
<break time="2s" />
<audio expr="'http://audio.plumgroup.com/root/67672832/67672832_' + loc_idx++ + '.wav'"></audio>
<prosody rate="130.0">
<say-as type="address">
<value expr="' ' + location.NAME + ', ' + location.ADDRESS1 + ', ' + location.CITY + ', ' + location.STATE" />
</say-as>
</prosody>
</voice>
</foreach>
</prompt>
IVR code for comparing engines
Posted: Thu Feb 11, 2010 12:59 pm
by support
Hi Saif,
Here is some IVR code that will allow you to compare the two TTS engines:
Realspeak:
Code: Select all
<?php
header("Content-type: text/xml");
echo("<?xml version=\"1.0\"?>\n");
?>
<vxml version="2.0">
<form>
<block>
<prompt>
<voice name="Samantha">
<prosody rate="+5%">
<say-as type="address">
The Mall Outlet
123 Main St
Chicago, Illinois
</say-as>
</prosody>
</voice>
</prompt>
</block>
</form>
</vxml>
Cepstral:
Code: Select all
<?php
header("Content-type: text/xml");
echo("<?xml version=\"1.0\"?>\n");
?>
<vxml version="2.0">
<form>
<block>
<prompt>
<voice name="Diane">
<prosody rate="+5%">
<say-as type="address">
The Mall Outlet
123 Main St
Chicago, Illinois
</say-as>
</prosody>
</voice>
</prompt>
</block>
</form>
</vxml>
For your Realspeak code, the reason why it was finishing the prompt so quickly was because you were setting the rate to 130.0. However, when adjusting the rate of the
<prosody> tag, you'll want to do it by the percentage, such as "+5%" or "-5%".
For your Cepstral code, we were able to test the IVR code just fine. When testing, did you make sure to set the TTS engine to Cepstral?
Regards,
Plum Support
Posted: Thu Feb 11, 2010 4:33 pm
by w2gi
Cepstral works now. Since I had rate="130.0" both Ceptral and Realspeak didn't work. I changed it to rate="+5%".
Thanks!