If you are new to the idea of writing Voice-web applications, then this is undeniably the place to start. The pages contained in this section will serve to educate you on VoiceXML theories and practices from the ground up. Even if you have never written anything more complex than a simple HTML webpage, by the time you have finished the lessons presented here, you will be ready for VoiceXML Certification, and ready to write top-shelf voice applications for the world.
Overview
Tutorial - HelloWorld The starting place for all neophyte voice developers. This tutorial covers the basic syntax for VoiceXML 2.1 applications, and walks you through how to get your very first 'helloworld' voice-web application up and running within a half hour.
Tutorial - Voice Recognition Basics: This section covers the basic principles of voice recognition, including grammar theory and markup, as well as touching on conditional logic in the VoiceXML dialog. This tutorial will introduce GSL voice recognition grammars into our arsenal of knowledge, and show us the proper way to write a simple inline grammar structure.
Tutorial - Call Flow and Script Navigation: Once we have mastered voice grammars, the next logical step is learning how to programmatically transition callers from one destination to another within your voice application. The first tutorial presented in this section will show us how to write an application that uses conditional logic to allow callers to programatically navigate from one point to another within a single document.
Tutorial - Document Navigation: Similar to the previous tutorial where we learned how to navigate between logical form items within a single document, this next tutorial covers how we can navigate between seperate VoiceXML 2.1 documents, which is widely used in most production grade IVR application deployments. In addition, we also introduce you to the concept of using variable declarations, and also the all-important topic of the scoping of these variables within the VoiceXML 2.1 context.
Tutorial - Using Audio Files: Text to Speech is fine and dandy for development and demo purposes, but using recorded audio files adds a much more professional feel to your application. This tutorial covers proper sound formatting and shows us how to record, and encode a sound file for inclusion into our application. Also included, at no additional charge, is a sample of an inline voice grammar that defines explicit return values, and scope activation. We also cover the use of Universal Events, and how to elegantly trap and handle these navigational or recognition events when they arise.
Tutorial - Outbound Dialing:Here, we cover the finer aspects of placing a bridged call from a voice-enabled application to an external PSTN destination. After completing this Lesson, you will know how to place an outbound call within the VoiceXML 2.1 framework, and how to intelligently trap the events and errors that may occur.
Tutorial - Caller ID and Called ID: This Lesson explains the caveats and benefits of being able to capture CallerID, and calledID, from your callers, which can be a very imporant topic in a real-world scenario when we need to keep track of who called what application number. By the time that you have finished this section, you will have superior knowledge on the intricacies of the telco standards relevant to callerID and calledID and how it applies to voice-web applications.
Tutorial - DTMF Recognition: Now that we have mastered voice grammars, it is time to look at how to capture DTMF input, (Dual Tone Multiple Frequency), from a touch-tone phone. This tutorial will show you the best way to create a DTMF grammar for caller interactions and then allow the caller choices to dictate a course of action within the application.
Tutorial - Client Side Processing: Now that we have covered the basics, this tutorial will teach you how to seamlessly integrate JavaScript within your VoiceXML code by way of the <script> element. As JS adds a robust arsenal of functionality within VoiceXML, you can use this lesson as a springboard for adding all the cool stuff in your JavaScript library to future voice-web deployments.
Tutorial - GSL Subgrammars: Flat-file grammars are usually good enough for capturing simple utterances, but eventually, we will want to create a grammar structure that has a bit more power and flexibility. Covering the fine art of multi-level complex grammars, this Lesson will show you the basics on how to create a simple GSL subgrammar construct for applications that require a more complex utterance recognition standard.
Tutorial - GSL Grammar Weighting: When you have to second guess what your callers are likely to say, and you need to tweak your grammars for probability accuracy, this is the section for you. Touching on the craft of GSL grammar probability weighting, going through this Lesson will show you how to add or decrease the probability for any grammar to be recognized as a 'matched' value, and will prove invaluable when specific grammar tuning is required for like-sounding utterance values contained within a GSL voice grammar.
Tutorial - Subdialogs: Read this section to learn how to create modular dialog components that will save you much time and effort when you require a multitude of recognition dialogs that follow the same input formats. In most cases, having an application containing several recognition fields will do the job just fine, but in other cases, crafting a subdialog-oriented application structure can allow you you to leverage the power of subdialogs.
Tutorial - VoiceXML 2.1 Shadow Variables: Shadow variables are the underlying part of any VoiceXML application, which allow you to access a bevy of information from each caller's input. When you have completed this tutorial, you will have learned how to harness the power of Shadow Variables in this Lesson, allowing you to tune your applications for maximum performance based on a caller 'footprint'.
Tutorial - NBest Post-processing: Nbest post-processing is indeed the Holy Grail when it comes to ensuring that you get an accurate grammar match from your callers. Learn to write your own application that uses this powerful feature by checking out this Lesson and dissertaion on Nbest post processing. Recommeded for experienced vxml coders, ages 9 and up. May contain small working parts.
Tutorial - "Click to Call" Applications: Herein we learn how to use the "api.voxeo.net" servlet to make an outbound "notification" type call that is initiated via a HTTP request instead of one that is started by an inbound phone call.
Tutorial - Mixed Initiative Dialogs: For the advanced VoiceXML developer, this tutorial illustrates the theories of grammar scoping, more advanced subgrammar examples that allow for mixed-initiative dialogs: When you need the caller's initial input to dictate the application flow by filling multiple recognition fields with a single utterance, a Mixed Initiative dialog will be the methodology to employ.
Tutorial - XML Grammars: The xml format of grammars, more formally known as Speech Recognition Grammar Specification, is the future of all VoiceXML grammars. Unlike the simpler GSL syntax that we covered in previous tutorials, SRGS is not a vendor-specific grammar markup, and that means added portability for all your IVR applications. This tutorial details how you can craft an input grammar that is designed to last, due to its 100% compliance to the w3c specifications.
Tutorial- Using foreach, and importing external XML data into the VoiceXML context: This tutorial covers how a developer can leverage the VoiceXML 2.1 <data> element to access information stored in a "plain-vanilla" XML document (such as an RSS newsfeed, for instance), and import it into the application execution context using the Document Object Model. In addition, we illustrate how one can use the <foreach> element to loop through the fetched data incrementally without having to rely on client-side scripting.
Tutorial- Using the <mark> element: The next tutorial shows us how we can use the new VoiceXML 2.1 <mark> element to craft a more intuitive dialog that will programmatically determine a callers choice based on the output markers set for any voice prompt that lists the options to our callers. This can be very handy when a scenario arises where a wide array of like-sounding grammar entries could obfuscate the actual caller input.
Introduction to Server Side Languages: This section touches on the basics of how you can use a server side language to enhance your voice application with dynamic content. Leveraging the power of ASP, JSP or PHP greatly enhances the functionality of any application, and learning how to integrate dynamic markup with static VoiceXML content is a must-read for any developers new to the idea of writing a production-grade IVR application.
Tutorial - Passing data to an external document using Querystring variables: Eventually, a developer will come to the point where he needs to take all the caller input gathered, and pass it along to a new document for post-porcessing, or maybe save it off for storage in a database. This tutorial illustrates how we can take caller input from a dialog, send the information along to a new document, and then parse the data from the resulting querystring using a varirty of different server-side markup languages, including JSP, ColdFusion, ASP, and PHP.
<linc=t_17Mot#start> Tutorial- Event Logging via the <data> element In this next tutorial, we build on the concepts learned from the preceding "Querystring" section so that we can take caller input, and shove it off to a dynamic document via the <data> element for long-term storage in a text file that is automatically updated as input is received from the caller.
Tutorial - ColdFusion Dynamic Grammars: This Lesson will show you how to create and implement a dynamic grammar generated from a MS Access database, thus making for a more easily maintainable and fluid grammar design for your VoiceXML application.
Tutorial - Screen Scraping: Need a way to grab any data off a web page and make it accessible via phone? This section and tutorial will show you how to use the ColdFusion or PHP server side languages to screen scrape a web page and send the data to your callers.
Tutorial - Using session cookies with VoiceXML 2.1 When we need to persist application data throughout the course of any given session instance, one should know how to use server-side cookies to keep this application information readily accessible at any point of the execution. In this tutorial, we show how you can use ColdFusion to use session cookies to store this data, and to retrieve it again at any point in the call flow.
ANNOTATIONS: EXISTING POSTS
0 posts - click the button below to add a note to this page