SALT (Part I): SALT by Example

Sunday Sep 1st 2002 by Hitesh Seth

Speech Application Language Tags, or SALT as it is popularly known, is actually a small set of XML elements and their associated attributes, events and methods. In the first part in our SALT series we've tell you all about SALT using the famous 'Hello World' example.

Speech Application Language Tags, or SALT as it is popularly known, isactually a small set of XML elements and their associated attributes, events and methods.These elements can be applied to existing markup languages such as HTML, XHTML, WML add speech and telephony interfaces to web applications. The development ofthe specification has been spearheaded by SALTforum, founded by Microsoft,Cisco, SpeechWorks, Philips, Comverse and Intel.


VoiceXML and SALT have different technical goals. Whereas VoiceXML tends tofocus around the development of telephony-based applications (applications which areused through a phone), SALT focuses on adding speech/telephony to web-basedapplications and turning them into multimodal applications. Multimodal applications include scenarios where speech is just one of the possible user interaction mechanisms along with a display device, pointing device, keyboard, etc.

Another difference between SALT and VoiceXML is the overall approach that hasbeen utilized to develop applications. Whereas VoiceXML is pretty much declarativein nature, utilizing its extensive set of tags, SALT is very procedural andscript oriented, having a very small set of tags.

One thing to note is that SALT actually utilizes key components of the overall VoiceXML 2.0 specification, including the XML-based Grammar Specification and the XML-based Speech Synthesis markup language.

Hello SALT

Probably the best way to introduce a language is to see how it actually appears. Following the tradition of the famous "Hello World" program,let's see how a SALT Application says "Hello World."

As we can see from the basic "Hello World" application, SALT tags (<prompt>) have been added into a HTML document and are initiatedthrough methods such as (Start()). For instance, when the above document is loaded in a SALT 1.0 compatiblebrowser (it could be a telephony browser or a multimodal desktop/handheld browser) itwould say "Hello World", using a Text-to-Speech (TTS) engine.


Let's go one more step ahead and see how SALT handles basic speech recognitioncapability. Let's build a simple employee directory-based application (shown inthe code-snippet below). The objective is to provide an easy method to find information in the employee directory.

In this scenario, RunApp() is the JavaScript function that is controllingthe dialog flow. It first initiates the prompt "Welcome" to be played(using Welcome.Start()) followed by the prompt "AskEmployeeName."After that it initiates speech recognition for the form parameter"EmployeeName" using the external XML grammar. Once the recognition isover, the function processEmployeeName() submits the value ("EmployeeName")to the server-side script "GetEmployeeInfo.aspx" which wouldultimately look up the employee directory and provide the user with contactinformation for the particular employee.

To be Continued

In the first article in this series on "SALT" we took a quick look atthe SALT syntax using a "by example" approach. In the next article we will endeavor to understand the key SALT elements and their functions.


About Hitesh Seth

A freelance author and known speaker, Hitesh is a columnist on VoiceXML technology and regularly writes for technology publications including XML Journal, Java Developers Journal, Web Services Journal and The Computer Bulletin on emerging technology topics such as J2EE, Microsoft .NET, XML, Wireless Computing, Speech Applications, Web Services & Enterprise/B2B Integration. He is theconference chair for VoiceXMLPlanet Conference & Expo. Hitesh received his Bachelors Degree from the Indian Institute of Technology Kanpur (IITK), India. Feel free to email any comments or suggestions about the articles featured in this column at

Mobile Site | Full Site
Copyright 2017 © QuinStreet Inc. All Rights Reserved