<bevocal:verify>

Extension. Verify that the speaker's voice matches a stored voice print.

Syntax

 <bevocal:verify>
     name="string"
     type="boolean"|"date"|"digits"|"currency"|
           "number"|"phone"|"time"
     keyExpr="js_expression"
   Child Elements
 </bevocal:verify>

Description

Input item that prompts for a value matching a particular grammar and compares the user's voice against the stored voice print for the specified key. Throws an error.verify.keynotfound event if no voice print has been registered for that key.

Any utterances that match a universal grammar or a grammar in document or application scope are recognized as they would be in a <field> element. However, only those utterances that match the grammar of the <bevocal:verify> element itself are used to verify the speaker's identity.

Any DTMF input is rejected and results in a nomatch event.

Note: Unlike other input items, a <bevocal:verify> element is not a possible go-back destination for the go-back facility. That is, the user cannot say "go back" to return to a <bevocal:verify> element, retracting earlier input to that element. See the Chapter  7, Go-Back Facility for a description of the go-back facility, a BeVocal VoiceXML extension.

Attribute Description
name

Name of the input variable that will hold the recognition result. The variable name may not be a JavaScript reserved keyword.

The input variable has dialog (form) scope.

type

Specifies an internal grammar. Optional (as alternative to a child <grammar> element).

 •  boolean - Grammar for recognizing positive and negative responses. Returns true for yes and false for no.
 •  date - Grammar for recognizing dates. Returns string with format yyyymmdd; ???? is used for an unknown year and ?? is used for an unknown month or day.;
 •  digits - Limited grammar for recognizing a sequence of digits. Returns a string of digits.
 •  currency - Grammar for recognizing amounts of money, in dollars (Not Implemented: International currency designation). Returns a string with format mm.nn.
 •  number - More general grammar for recognizing numbers. Returns a string that could include digits, a decimal point, or positive or negative sign.
 •  phone - Grammar for recognizing a telephone number adhering to the North American Dialing Plan (with no extension). Returns a sequence of digits.
 •  time - Grammar for recognizing a time. Returns a string with format hhmmx where and x is one of: a for AM, p for AM, h for 24 hour notation, or ? for an ambiguous time (could be AM or PM).
keyExpr

Javascript expression whose value is the key identifying this user's voice print.

Properties of the Shadow Variable

Corresponding to the input variable name is a shadow variable whose name is name$. The verifier returns the result of the verification in the decision property of this shadow variable. The possible results are:

Value Description

accepted

The speaker's voice matches the voice print.

rejected

The speaker's voice does not match the voice print.

unsure

The verifier could not determine whether the speaker's voice matches the voice print.

interpretation

The interpretation returned from the recognition result, or undefined if no interpretation is available.

For a <bevocal:verify> element whose name is name, you access the decision property with the syntax:

 name$.decision

Your application can use the value of the decision property to decide how to proceed. For example, if the value is unsure, it could repeat the verification step.

Usage

Parents Children
<form>
<audio>
<catch>
<error>
<filled>
<grammar>
<help>
<noinput>
<nomatch>
<prompt>
<property>
<value>

See Also

 •  Related tag: <bevocal:register>
 •  Speaker Verification

Examples

 <?xml version="1.0" ?>
 <!DOCTYPE vxml PUBLIC "-//BeVocal Inc//VoiceXML 2.0//EN" 
 "http://cafe.bevocal.com/libraries/dtd/vxml2-0-bevocal.dtd">
  
 <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
   <form id="verify_user">
     <field name="account" type="digits">
       <prompt>What is your account number.</prompt>
     </field>
 
     <bevocal:verify name="check1" type="phone" keyExpr="account">
       <prompt>Please say your telephone number.</prompt>
       <filled>
         <if cond="check1$.decision=='accepted'">
           <prompt>
             You have been verified as the authorized caller for
             account number <value expr="account"/>.
           </prompt>
         <elseif cond="check1$.decision=='rejected'" />
           <prompt> 
             Sorry. You are not the authorized caller for
             account number <value expr="account"/>.
           </prompt> 
           <exit/>
         <elseif cond="check1$.decision=='unsure'" />
           <prompt>Unable to verify that you are the authorized caller for
             account number <value expr="account"/>. Let's try again. 
           </prompt>
           <clear namelist="check1"/>
         </if>    
       </filled>
     </bevocal:verify>
   </form>
 </vxml>
 

[Show Frames]   [FIRST] [PREVIOUS] [NEXT]
BeVocal, Inc. Café Home | Developer Agreement | Privacy Policy | Site Map | Terms & Conditions
Part No. 520-0001-02 | © 1999-2007, BeVocal, Inc. All rights reserved | 1.877.33.VOCAL