| Article ID: | 149 |
| Last updated: | January 12, 2007 |
| User Opinions |
|
No users have voted.
|
|
Thank you for rating this answer.
|
SUMMARY
This article describes voice elements from a high-level perspective.
SYMPTOMS
N/A
RESOLUTION
Almost all voice applications must utilize a number of dialogs with the caller, playing audio files, interpreting speech utterances, capturing data entered by the user, etc. The more these dialogs can be contained in discrete components, the more they can be reused in a single application or across multiple applications. These dialog components are encapsulated in voice elements.
|
Voice Element |
A reusable, VoiceXML-producing dialog with a fixed or dynamically produced configuration. |
Voice elements are used to assemble the VoiceXML sent to the voice browser. Each voice element constitutes a discrete section of a call, such as making a recording, capturing a number, transferring a call, etc. These pre-built components can then be reused throughout the call flow wherever needed.
Voice elements are built using the Audium Voice Foundation Classes (VFCs), which produce VoiceXML compatible with multiple voice browsers (see the Programmer Guide for more on the VFCs and constructing custom voice elements).
Voice elements are complete dialogs in that they can encompass just a single action or an entire interaction with the caller. Depending on its function, a voice element can contain almost as much dialog as a small application. However, because of the pre-built nature of voice elements, application designers do not need to worry about their complexity. Each voice element is simply a "black box" which can be treated as a single object. As a result, by combining many voice elements, a complex call flow can be reduced significantly.
Each voice element defines the exit states it can return and the designer must map each exit state to another call flow component to handle all its consequences. To fully configure voice elements, developers must specify values for four components: settings, VoiceXML properties, audio groups, and variables.
- Settings are used to store information that affects how the voice element performs. For example, a setting describes what phone number to transfer to or the length of audio input recording. A voice element can have many or few settings, depending on its complexity and its level of customization.
- VoiceXML properties are equivalent to the properties outlined in the VoiceXML specification, and are used to modify voice element behavior by directly inserting data into the VoiceXML that each element produces. For example, the length of time the voice element waits before encountering a noinput event can be changed by setting a VoiceXML property. Available properties correspond directly to those listed in the VoiceXML specification and voice browser specification. It is up to the designer to understand the consequences of modifying these properties.
- Audio Groups – Nearly all voice elements involve the use of audio assets, whether in the form of pre-recorded audio files or text-to-speech (TTS) phrases. An audio group encapsulates the audio that the application plays when reaching a certain point in the voice element call flow. For example, an audio group might perform the function of asking a question, giving an answer, playing an error message, etc. An audio group may contain any number of audio items. Audio items are defined as pre-recorded audio files, TTS phrases, or information that conforms to a specified format to be read to the user (such as a date or currency value). Each audio item in an audio group is played in the order they appear in the audio group.
- Variables, as described in the previous section, allow voice elements to set or use element or session data. Many voice elements use element data to store information captured from a caller, though voice element configurations can also define additional variables.
Finally, a voice element's configuration can be either fixed or dynamic.
- Fixed configurations are XML files containing the desired settings, VoiceXML properties, audio groups, and variables that are then loaded by Call Services. The same configuration is applied each time the voice element is called.
- The configuration of some voice elements can only be determined at runtime. In these cases a dynamic configuration is used. As described previously, the Java API and XML API can be used to create dynamic configurations.
For a complete list of the voice elements included in Audium, refer to the Element Specifications document.
|