James A. Larson
April 25, 2003July 1, 2004
After VoiceXML—An Introduction to Developing speech Applications was
published, a new set of XML tags appeared for use in constructing both speech
and multimodal applications. Speech Application Language Tags (SALT) was developed by the SALT Forum (http://www.saltforum.org) founded by Cisco,
Comverse, Intel, Microsoft, Phillips and Speech Works. SALT is a small
collection of XML tags for managing speech resources: speech recognition,
speech synthesis, DTMF, and audio record and playback facilities.
Developers can not develop speech applications with SALT tags alone.
The SALT tags contains no flow control structures. Instead, developers
insert SALT tags into a host language such as HTML, SMIL, or JavaScript which
provides the control structures needed to write speech-enabled applications. One popular host is HTML, which provides the visual component while SALT
provides the verbal component for multimodal applications.
The basic SALT tags are:
SALT also supports other bindings. For example, SALT functions can
be accessed from JavaScript or other scripting languages.
In addition to <bind> and <smex>, there are several features
supported by SALT that are not available in VoiceXML, including:
For instructions to install SALT on Microsoft's Internet Explorer, follow these steps. We recommend installing only the SALT add-in to Internet Explorer. We do not recommend installing the entire SALT SDK unless you alread have Microsoft Visual Studio.net installed because this is an expensive piece of software.
Here are some hints and tips to follow when writing applications
using HTML and SALT:
To illustrate how to use SALT tags, examples from my book on VoiceXML has been rewritten using SALT and HTML. You can interact with each of the simple applications by installing Microsoft's Internet Explorer add-in and then clicking the following URLs. For each example, I have kept the debug screen which shows the contents of variables; these may be instructive as you explore the SALT applications. Real SALT telephony applications can no display the screen to users without special telephones.
| Figure from Book | File Name | Purpose | Comments |
| Figure 2.2 | SALT22.html | A document containing both a form and a menu | |
| Figure 4.9 | SALT49.html | Call ring application. | |
| Figure 4.10 | SALT410.html | Call ring application with additional words in grammar | |
| Figure 4.11 | SALT411.html | Complete call ring application with event handlers | |
| Figure 5.3 | SALT53.html |
Example menu | |
| Figure 5.4 | SALT54.html | Example Form with three fields | |
| Figure 6.1 | SALT61.html http://www.larson-tech.com/SALT/LIONROAR.WAV |
Links identified by nospeech sounds | |
| Figure 6.2 | SALT62.html http://www.larson-tech.com/SALT/shortbeeptone.wav |
Use of a turn-taking tone | |
| Figure 6.3 | SALT63.html http://www.larson-tech.com/SALT/arrowhit.wav |
Use of a brand earcon | |
| Figure 6.4 | SALT64.html | Example of chunking | |
| Figure 6.5 | SALT65.html | Example of a pause between instructions and options | |
| Figure 6.6 | SALT66.html | Example of an introduction | |
| Figure 6.7 | SALT67.html | Help that is available anytime | |
| Figure 6.8 | SALT68.html | Universal independent commands | |
| Figure 7.1 | SALT71.html | Inline grammar using XML notation | |
| Figure 7.3 |
SALT73.html |
External grammar using XML notation | |
| Figure 8.5 | SALT85.html |
Example two-level DTMF menu (using spoken numbers in place of DTMS) | Say digits rather than press DTMF keys were are not available in Internet Explorer |
| Figure 8.6 | SALT86.html |
Tapered prompts | |
| Figure 8.7 | SALT87.html | Progressive assistance | |
| Figure 8.8 | SALT88.html | Speech input version of Figure 8.5 | |
| Figure 8.9 | SALT89.html | Voice menu that compresses menu hierarch of Figure 8.8 | |
| Figure 8.10 | SALT810.html | Forward-feeding prompts | |
| Figure 9.2 | SALT92.html | Command and control | |
| Figure 10.10 | SALT1010.html | Mixed initiative dialog | |
| Figure 10.12 | SALT1012.html | Switching among activities | |
| Figure 11.3 | SALT113.html |
Example VocieXML form for collecting caller preference data | |
| Figure A.1 | SALTA1.html |
Solicit caller's current location | |
| Figure A.2 | SALTA2.html | Present information to the caller | |
| Figure A.3 | SALTA3.html |
Prompts for open-ended questions | Example of recording and playback of audio. Error message appears at end of program for an unknown reason |
Here are some example of SALT multimodal applications:
| Purpose | url | Use |
|---|---|---|
| Interview the Cassini space probe | http://www.larson-tech.com/SALT/Saturn/interview.html | If the user asks a question including one of the keywords, the user sees and hears an interesting message. Keywords include Casini, launch, Titan, Galileo, Saturn, mission, JPL, instruments. |
| Make a meatloaf | http://www.larson-tech.com/SALT/recipie/recipie.html | Design for cooks whose hands are busy and messy, this voice activated recipie reads recipie instructions to the cook. Say next, previous, goodbye |
| User-directed | http://www.larson-tech.com/SALT/UserDirected.html | Click and speak |
| System-directed | http://www.larson-tech.com/SALT/SystemDirected.html | Question and Answer |
| Spell word | http://www.larson-tech.com/SALT/Catalog/change1.htm | Enter a word by spelling it. Say "change position to letter" to correct spelling. Also demonstrates semantic interpretation |
Debrah Dahl's violin tuner application: http://www.larson-tech.com/SALT/Dahl/Tuner/music/tune.htm
Pranav Chadha's shopping cart application: http://www.larson-tech.com/SALT/ShoppingCart/MusicMad.htm
Selected application from Fall 2004
For those of you implemented your projects using the SALT toolkit, you must do the following to your appliation so it will run under the SALT add-in to IE:
1. Change the CLASSID to CLASSID="clsid:33cbfc53-a7de-491a-90f3-0e782a7e347a"
2. In the prefix to all SALT tags, change "SALT" to "salt"
3. I've not been able to get the <content> element to work without posting the referenced file on my web site and using the complete web site address for the file.
| Topic | url | Comments |
|---|---|---|
| Verbal drawing program | http://www.larson-tech.com/SALT/Winter2005/Smith/saltpaint.html | Select the collars by clicking or by speaking. Contributed by Jessamyn Smith and Smitha Karthik. |
| Highlights of Portland | http://www.larson-tech.com/SALT/Winter2005/Davidson/ | Select interesting places in Portland by speaking or clicking. Contributed by Thadius Davidson. |
| Browse using verbal commands | http://www.larson-tech.com/SALT/Winter2005/jin/Voice%20Menu/ | Start by asking "help" and be sure to say "bookmark" which will display several interesting sites that can be browed. Contributed by Ho Jeong AN and Jin Rak Choi |