Automated Speech Recognition - ASRDIGITS
Allows you to capture spoken input as a string of digits and use it to populate a script variable.
This action is appropriate when the input is numeric in nature but not a numeric value (for example, 12345 uttered as "one two three four five"). ASRDIGITS can be used to capture phone numbers, account numbers, social security numbers, and so forth.
This action recognizes a predetermined list of the digits zero through nine, with either "oh" or "zero" being accepted for zero. If the caller's utterance may be a larger number, such as "twelve" or "twenty-three", or If the prompt requests a numeric value (such as age or square feet), use ASRNUMBER instead.
ASR is an optional feature that appears only in the Framework tab, and only if ASR is enabled for you. Ask your account manager for more information.
Phone Script Example Using ASRDIGITS
|Supported Script Types|
Determines the order in which audio files (whether pre-recorded or TTS) are played by the action. You can enter values directly in the field, or you can double-click the action icon to use the prompt manager (also known as the Play Properties dialog).
Defines the content of each file in the sequence. For example, a single pre-recorded file could be used for a "Your call may be recorded..." message. A more complex message might include a pre-recorded file followed by a variable in the Play Numbers format, a file produced using TTS, a variable in the Play Money format, another recorded file, and finally a variable in the Play Date format. For a simple value, you can enter the information directly in the field. For more complex values, values that use TTS, or both, double-click the action to use the prompt manager.
When the ASR engine recognizes a phrase spoken by a caller, it also returns a percentage that indicates how confident it is in a voice recognition match. The script compares this recognition percentage to the value in this property, and if the percentage is equal or greater to the value, the OnHighConfidence branch is taken. The default value is 75 (that is, 75%). To change it, enter a whole number between 1 and 100.
Defines the minimum acceptable confidence percentage for a recognition match. If the recognition percentage is between this value and the HighConfidence value, the OnMedConfidence branch is taken, which typically lets the contact confirm the ASR understanding of an utterance. If the recognition percentage is less than this value, the OnNoConfidence branch is taken. The default value is 60 (that is, 60%). To change it, enter a whole number between 1 and the HighConfidence value.
Determines how long the IVR waits for input (either spoken or by key press) before it takes the OnTimeout branch. This is the threshold for complete silence on the line. The default value is 10 (seconds). To change it, enter a whole number.
The timer starts only when the prompt is completely finished. However, the system has a built-in limit of two minutes (120 seconds) that includes the duration of the prompt. If this limit is reached during an action, any active prompts are aborted and the OnErrorbranch is taken. For this reason, you should know the duration of your prompts and set a value for this field that ensures the action is active for less than two minutes.
Determines the name of the variable that holds the recognize result of the contact's spoken or manually entered input. For example, if the prompt asked the contact to say or enter their date of birth, the result would be stored in the variable defined by this property. The default value is the name of the action + "Result" (for example, ASRDIGITSResult).
If the contact provides spoken input and the ASR engine fails to find a match, this variable is not populated.
Determines the name of the variable that holds the confidence percentage returned by the ASR engine. The default value is ASRConf.
Allows you to configure an IVR script to handle both spoken and manually-entered DTMF input. If the value is True, both voice and DTMF input is accepted. If the contact presses a DTMF digit, the script immediately stops any in-progress prompt sequence and takes the OnDTMF branch. No spoken utterances are considered for the duration of the action.
If the value is False, DTMF input is not recognized even if the contact presses a key. Although any DTMF digits pressed during the action are saved in the DTMF buffer, the action takes the NoConfidence branch.
DTMF tones cannot be stored in the variable created by an ASR action. If you set DetectDTMF to True, you must include a CAPTURE action in the OnDTMF branch to establish a variable for the DTMF input.
When a contact presses a key on their telephone keypad, the generated DTMF tone is stored in a buffer. When the ClearDigits property is set to True (the default value), that buffer is cleared when the action begins. Otherwise, the action would immediately detect a DTMF tone and invoke the OnDigit or OnDTMF branch even if the key press was associated with an earlier action.
The number of seconds the system waits between each press of the keypad buttons (or between each spoken digit in ASR-enabled menus). Once the user begins providing input, this value takes precedence over the Timeout value.
Determines the minimum number of digits that must be received by this action for the script to continue. For example, if the prompt asks for the contact's social security number, this value should be set to 9. The default value is 1.
If the prompt requests a response that always has the same number of digits, set this property to the same value as MaxDigits.
The maximum number of digits that a user can provide for the action; for example, if the prompt requests the last four digits of a person's Social Security number, set this value to 4. The default value is 6.
When the MaxDigits value is reached, the script continues to execute. Therefore, if the prompt calls for a terminator (such as the pound sign, or #), you must account for it in this value. For example, if the recorded menu message asks for the last four digits of the Social Security number "followed by the pound sign", set the value to 5.
Allows you to specify a way for the contact to indicate they are done providing information by entering a terminator digit. The most common value is # (that is, the caller presses the pound key on their phone). By default, the TermDigit is included as one of the digits received and stored in the ASRDIGITSResult variable. To automatically strip this value, append a dash (-) in this field, (for example, to use the pound sign and strip it from the stored results, enter #-).
Branch taken unless the script meets a condition that requires it to take one of the other branches. It is also taken if the other branches are not defined.
Branch taken if the recognition percentage returned by the ASR engine is equal to or greater than the HighConfidence value.
Branch taken if the recognition percentage returned by the ASR engine is between the HighConfidence value and the MinConfidence value. This branch is often used to allow a caller to confirm the information provided using an ASRYESNO action.
Branch taken if the recognition percentage returned by the ASR engine is less that the MinConfidence value.
Branch taken if there is silence on the line for the number of seconds specified in the TimeoutSeconds property.
Branch taken when there is an unexpected problem with the ASR engine (for example, poor connectivity, missing grammar files, syntax errors in the grammar, and so forth). The _ERR variable should be populated with a condensed explanation of the problem.
Branch taken when the caller's input reaches the MaxDigits value.
Branch taken when the caller provides the value specified in the TermDigit property.
Branch taken when the time specified in the InterDigitTimeout property is exceeded during the caller's response to a prompt.
In this example script, the caller's account number is obtained prior to connecting the call to an agent. Using the ASRDIGITS action, the IVR requests that the caller enter an account number with a minimum of six, and a maximum of twelve, digits. If the recognition percentage meets or exceeds the HighConfidence
value, a message is played and the call is routed to an agent. This path is also followed if the TermDigit
value is provided or if an InterDigitTimeout
If the system is unsure of the entry (that is, the recognition percentage falls between the HighConfidence
values), then the OnMedConfidence branch uses an ASRYesNo action to play the captured input and ask the caller to verify it with a yes or no response. A yes response causes the call to move into the OnHighConfidence branch. A no response returns the caller to the ASRDIGITSaction to re-enter the number. After three unsuccessful attempts, a LOOP action asks the contact to call back and then hangs up the call. This call flow is enabled by the connection between ASRDIGITSand ASRYESNO going in both directions.
If the entry cannot possibly be correct (for example, the caller gives a non-numeric response), the system takes the OnNoConfidence branch, and returns the caller to the ASRDIGITS action to re-enter the number. After three unsuccessful attempts, a LOOP action asks the contact to call back and hangs up the call.