Nesting elements
You can nest Speak XML (text-to-speech) and Play XML elements inside Gather XML to prompt users for inputs. This is useful for building interactive voice response (IVR) experiences.Attributes
action (string, required) Callback-retry configurable
The input is sent to a specific URL. See the “parameters sent to the action URL” table below for more information.
Allowed values: a fully qualified URL
method (string)
The HTTP method to use when invoking the action URL.
Allowed values: GET, POST
Defaults to POST.
inputType (string)
The type of input(s) you expect to receive.
Allowed values: dtmf, speech, dtmf speech
When set to dtmf speech, Vobiz listens for both speech and digit inputs. The input that’s detected first is relayed to the action URL.
executionTimeout (integer)
Maximum execution time, in seconds, for which input detection is carried out. If the user fails to provide input within the timeout period, the next element in the response will be processed. This duration is counted after nested Play/Speak elements have ended.
Allowed values: 5 to 60
Defaults to 15.
digitEndTimeout (string)
Time, in seconds, allowed between consecutive digit inputs. If no new digit input is provided within the digitEndTimeout period, digits entered until then will be processed.
Allowed values: 2 to 10, or auto
Defaults to auto.
This attribute is applicable to input types dtmf and dtmf speech.
speechEndTimeout (string)
Time, in seconds, that Vobiz waits for more speech once silence is detected before it stops speech recognition. At that point, a transcription of the collected speech is relayed to the action URL.
Allowed values: 2 to 10, or auto
Defaults to auto.
This attribute is applicable to input types speech and dtmf speech.
finishOnKey (string)
A digit that the user can press to submit digits.
Allowed values: One and only one of 0–9, *, #, <empty string>, none
Defaults to #.
If set to <empty string> or none, input capture will end based on a timeout or the numDigits attribute.
This attribute is applicable to input types dtmf and dtmf speech.
numDigits (integer)
The maximum number of digits to be processed in the current operation. Vobiz relays the digits to the action URL as soon as the maximum number of digits specified is collected.
Allowed values: 1 to 32
Default: 32
This attribute is applicable to input types dtmf and dtmf speech.
speechModel (string)
The automatic speech recognition (ASR) model to use for transcribing the speech.
Allowed values: default, command_and_search, phone_call
Default: default
This attribute is applicable to input types speech and dtmf speech.
-
command_and_search: Optimized for short queries such as voice commands and voice search.
- phone_call: Optimized for transcribing audio from a phone call where the quality of the audio is slightly inconsistent.
- telephony: telephony is an enhanced version of the phone_call model, optimized for audio typically originating from phone calls.
- default: Optimized for audio that is not one of the specific audio models such as long-form audio.
hints (string)
A list of phrases to act as “hints” to the speech recognition model; these phrases can boost the probability that such words or phrases will be recognized. Phrases may be provided both as small groups of words or as single words.
Allowed values: a non-empty string of comma-separated phrases
Limits:
-
Phrases per request: 500
- Characters per request: 10,000
- Characters per phrase: 100
language (string)
Specifies the language Vobiz should recognize from the user.
Allowed values: See list of supported languages
Defaults to en-US.
This attribute is applicable to input types speech and dtmf speech.
interimSpeechResultsCallback (string) Callback-retry configurable
If interimSpeechResultsCallback URL is specified, requests to this URL are made in real-time as Vobiz recognizes speech.
See the “parameters sent to the interimSpeechResultsCallback URL” table below for more information.
Allowed values: a fully qualified URL
This attribute is applicable to input types speech and dtmf speech.
interimSpeechResultsCallbackMethod (string)
The HTTP method to use when invoking the interimSpeechResultsCallback URL.
Allowed values: GET, POST
Defaults to POST.
This attribute is applicable to input types speech and dtmf speech.
log (boolean)
If true, Vobiz will log digits or recognized speech from the caller. If false, logging will be disabled while processing the Gather element.
Allowed values: true, false
Defaults to true.
redirect (boolean)
If true, redirect to action URL. If false, only request the URL and continue to the next element.
Allowed values: true, false
Defaults to true.
profanityFilter (boolean)
If true, filters out profane words. Words filtered out are transcribed with their first letter and asterisks for the remaining characters (e.g. f***). The profanity filter operates on single words; it doesn’t detect abusive or offensive speech that’s a phrase or a combination of words.
Allowed values: true, false
Defaults to false.
This attribute is applicable to input types speech and dtmf speech.
Parameters sent to the action URL
In addition to the standard action URL request parameters, these parameters are sent to the action URL specified.| Parameter | Description |
|---|---|
InputType | The type of input detected. Allowed values: dtmf, speech |
Digits | The digits entered by the caller, excluding the finishOnKey input, if used. Empty if inputType is speech. |
Speech | The transcribed result of the caller’s speech. Empty if inputType is dtmf. |
SpeechConfidenceScore | A confidence score between 0.0 and 1.0. The higher the score, the more likely the transcription is accurate. |
BilledAmount | The total amount billed for speech input transcription. |
Parameters sent to the interimSpeechResultsCallback URL
In addition to the standard callback URL request parameters, these parameters are sent to the interim speech results callback URL.| Parameter | Description |
|---|---|
StableSpeech | The stable transcribed result of the user’s speech. |
UnstableSpeech | The newer, unstable transcribed result of the user’s speech. This is an interim result and may change as more speech is gathered. |
Stability | Likelihood that the recognizer will not change its guess about the interim result. Range: 0.0 (completely unstable) to 1.0 (completely stable). Only applies to unstable speech. |
SequenceNumber | Sequence number of the interim speech callback, to help with ordering incoming callback requests. |
Examples
Collect a single DTMF digit (IVR menu)
Nest aSpeak or Play element to prompt the caller. With numDigits="1", Vobiz posts to the action URL as soon as one digit is pressed.
Collect a multi-digit number with finishOnKey
For variable-length input such as an account number, setfinishOnKey="#" and let the caller signal completion.
Collect speech input
Accept either speech or digits
WithinputType="dtmf speech", whichever input Vobiz detects first is the one relayed to the action URL.
Webhook payload sent to the action URL
After the caller responds (or input ends), Vobiz POSTs the standard call parameters plus the Gather-specific parameters to your action URL.DTMF input
Speech input
Edge cases and tips
- No input / timeout. If the caller provides no input within
executionTimeoutseconds (counted after nestedPlay/Speakfinishes), Vobiz moves on to the next element in the document. Always place fallback XML (a retry, aRedirectback to the menu, or aHangup) after theGather. By default, Vobiz still POSTs to the action URL with emptyDigitsandSpeechon timeout - check for empty values in your handler. - Use
executionTimeout, nevertimeout.Gatherhas notimeoutattribute. Thetimeoutattribute belongs only toDialandNumber. The valid range forexecutionTimeoutis 5-60 seconds (default 15). finishOnKeyis excluded fromDigits. The terminating key (default#) is not included in theDigitsparameter. SetfinishOnKey=""orfinishOnKey="none"to rely solely onnumDigitsor the timeout.numDigitsends collection early. Vobiz posts as soon as it collectsnumDigitsdigits, before the timeout orfinishOnKey. For single-key menus, setnumDigits="1"for the snappiest response.- DTMF vs speech. Use
dtmffor menus and structured input (account numbers, PINs) - it is precise and free. Usespeechfor open-ended intent capture; it incurs a per-request charge (see Pricing for speech recognition) and returns aSpeechConfidenceScoreyou should threshold before acting. Combine withdtmf speechwhen you want to accept both. - Improve recognition. Pass domain words via
hints, set the correctlanguage(see supported languages), and pick aspeechModelsuited to the input (command_and_searchfor short commands,phone_call/telephonyfor call audio). - Validate input server-side. Never trust
DigitsorSpeechdirectly in queries or business logic - sanitize and range-check them in your handler.