We've Moved! Please visit our new and improved forum over at our new portal: https://portal.plumvoice.com/hc/en-us/community/topics

Improve TTS for address

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
w2gi
Posts: 46
Joined: Fri Jun 26, 2009 1:35 pm

Improve TTS for address

Post 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

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

TTS engine choice for IVR is a matter of preference

Post 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

w2gi
Posts: 46
Joined: Fri Jun 26, 2009 1:35 pm

TTS either too fast or nothing

Post 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>

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

IVR code for comparing engines

Post 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
Last edited by support on Wed Feb 24, 2010 11:07 am, edited 1 time in total.

w2gi
Posts: 46
Joined: Fri Jun 26, 2009 1:35 pm

Post 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!

Post Reply