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

are built in say-as types like airline and airport present?

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
leftkost
Posts: 11
Joined: Tue Feb 24, 2004 12:51 am

are built in say-as types like airline and airport present?

Post by leftkost »

I found Bevocal has say-as types such as airline, and airport which turn the codes into TTS words (e.g. "ba" into "british airways" and "dfw" into dallas fort worth".

Does the Plum platform have similar say-as types?

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

IVR platform say-as type built ins

Post by support »

No, the Plum IVR platform does not have built in say-as types for things such as airlines, or locations. In order to get this kind of functionality you can create your own say as tags in custom IVR grammars, thereby allowing the same functionality, along with the added flexibility of being able to modify the IVR grammar to add more enumerations or edit remove existing IVR grammars as necessary (whereas with builtins you have no control over this)

Plum does support more generic <say-as> types such as date, time, currency, etc.

Hope this helps!

Plum Support
Last edited by support on Thu Feb 25, 2010 5:13 pm, edited 3 times in total.

leftkost
Posts: 11
Joined: Tue Feb 24, 2004 12:51 am

say-as grammar

Post by leftkost »

I'm a little confused on how to set up a custom say-as grammar. For example, I want "NW" to be said as "Northwest".

Do you have an example that I can emulate?

Thanks

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

IVR applications and speech recognition systems

Post by support »

the first step is to construct a grammar that contains all of the matches you want. Here is a sample that declares a few state abbreviations:

Code: Select all

<grammar type="application/srgs+xml" root="root" mode="voice">
<rule id="root">
<one-of>
<item>a are</item>     <!--AR = Arkansas -->
<item>cay ess</item>   <!--KS = Kansas -->
<item>emm a</item>  <!- MA = Massachusetts -->
<item>see a</item>    <!- CA = California -->
</grammar> 
The next step is to write a <filled> tag that checks the confidence level of the matched grammar and ensures that it is high enough that we can be confident that the values are correct matches. the confidence score ranges from 0.0 being an absolute no match to 0.99 being a near perfect match. In practice values will range from 0.5 to 0.97, with most accurate matches retaining a confidence score of 0.8 or higher. In our IVR example we will be slightly more trusting with the confidence level and allow confidence scores of 0.78 and above to be considered a successfull match. Here is the full conditional statement we use:

Code: Select all

 <if cond="answer$.confidence > 0.75">
     <if cond="answer == 'emm a'">
         Ah ha! you said massachusetts didn't you?
     <elseif cond="answer == 'a are'"/>
         The state of Arkansas
     <elseif cond="answer == 'cay ess'"/>
         Kansas is a farming state
     <elseif cond="answer == 'see a'"/>
         California, the raiders are a crappy team! 
     </if>
     
   <else/>
     <prompt bargein="false">
       Sorry I didn't understand what you said.
     </prompt>
   </if>     
Thats all there is to it! You can now go about constructing custom grammars for use with your own IVR applications.

There are a few things to note however:
*For our IVR hosting environment we currently use Sphinx, an open source, freely available Speech Recognition system. The quality is good, but may not be high enough for use in a production IVR application that relies on speech recognition. In this case we generally bundle speechworks ASR, which offers a much greater degree of accuracy for speech recognition applications.
We will be switching the IVR hosting environment to use Speechworks very soon, expect to see news on the support site detailing this exciting transition in the coming weeks.


Here is copy of a sample vxml file, which incorporates all of the above mentioned snippets into one runnable example:

Code: Select all

<?xml version="1.0"?>
<vxml version="2.0">
<form id="yesno">
<field name="answer">
<grammar type="application/srgs+xml" root="root" mode="voice">
<rule id="root">
<one-of>
<item>a are</item>    <!-- Arkansas -->
<item>cay ess</item>   
<item>emm a</item> 
<item>see a</item> 
</one-of> </rule>
</grammar> 


<prompt> Please say the state abbreviation</prompt> 
<filled> 
   <if cond="answer$.confidence > 0.75">
     <if cond="answer == 'emm a'">
         Ah ha! you said massachusetts didn't you?
     <elseif cond="answer == 'a are'"/>
         The state of Arkansas

     <elseif cond="answer == 'cay ess'"/>
         Kansas is a farming state
     <elseif cond="answer == 'see a'"/>
         California, the raiders are a crappy team! 
     </if>
     
   <else/>
     <prompt bargein="false">
       Sorry I didn't understand what you said.
     </prompt>
   </if>     
<goto next="#yesno"/> 
</filled> 
</field> 
</form> 
</vxml>
Hope this helps!

warm regards,

The Plum Support Staff

Post Reply