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 etc.to 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.
SALT & VoiceXML
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.
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.
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 firstname.lastname@example.org.