Introduction to SALT (Part 5): Developing SALT Applications, Step by Step
So far in our introductory series on SALT (Speech Application Language Tags) we have learned the basic architecture of SALT-based applications. In the previous article in the series we took a closer look at the components of Microsoft .NET Speech SDK (Beta 2) and a brief introduction to the core Microsoft .NET as well. In this article, we will continue our exploration of SALT by actually walking step-by-step through the process of developing a telephony/multimodal application using SALT and the Microsoft .NET Speech SDK. As a reminder, the version of the SDK used in this article is Beta 2 which is available from Microsoft at http://www.microsoft.com/speech.
Note: This article assumes that you have installed the .NET Speech SDK Beta 2 on a development box. Actually, for computers you would like to use as just clients you can just install the Internet Explorer Speech Add-in. This add-in is located in the "downloads\Microsoft Internet Explorer Speech Add-in\setup.exe" file. This would allow your workstation to be used as a viewer for multimodal/speech-only SALT applications.
Developing Pure SALT Applications
If we revisit our simplest SALT example from our previous article "SALT by Example", let's take a look at a basic "pure" SALT Application.
As per the speech tags, if we load this application in a SALT browser (either over the telephony interface or through a desktop SDK), we should get "Hello World" played in the speakers using the Text-to-Speech technology. In our last article we learned that a key component of the .NET Speech SDK is the .NET Speech SDK plug-in for Internet Explorer. To make Internet Explorer aware of the plug-in, we need to modify our "pure SALT" code to look something like this. This will instantiate the underlying Internet Explorer speech Add-in and then use the SALT browser to play it on a development workstation where the Add-in has been installed.
Testing SALT Applications
If you have successfully installed the .NET Speech SDK (or are just running a SALT application via the IE Speech add-in) and the volume of your speakers are up, then you should be listening to the magical "Hello World" application.
An alternative mechanism for deploying SALT applications is to add a mime-type (speech/salt) for the page. For instance one of the ways to test static SALT content is to change the extension of the file (for instance .salt) and then to associate a mime-type with that extension on your application server. Alternatively, this can be dynamically done as well. Once the mime type is defined, the Speech Add-in doesn't require the object tag at all.
Beyond "Pure SALT": .NET Speech SDK
The approach of developing a "Pure SALT" application is really useful when you are intending to create SALT-based applications without the .NET Speech SDK, Microsoft Visual Studio .NET, ASP.NET etc. This approach is still useful if you are using perl, PHP, J2EE etc. server-side platforms to create Speech applications. However, as we have seen so far, one of the key highlights of the overall SALT-related industry activity is the rich set of toolsets that Microsoft has provided for the development of SALT-based Speech applications.
Here again we have a couple of choices. The easiest one is to use Microsoft Visual Studio .NET with the .NET Speech SDK Beta 2 installed and add the SALT controls to our existing web application (or a new application). The alternative is to utilize the controls programmatically using ASP.NET. I don't know about you, but I typically like to get a better idea as to what I am using, so I usually write the simple code myself and then use visual tools.
We will continue our exploration of SALT by first writing an ASP.NET-based Speech Application without using the Visual Studio .NET toolset. Then we will leverage the visual tools to develop a much more interactive application (including validating grammars etc.) in the next article. Till then, Happy "pure" SALT'ing!
About Hitesh Seth
A freelance author and known speaker, Hitesh is a Editor-in-Chief for XML Journal and regularly writes on emerging technology topics such as J2EE, Microsoft .NET, XML, Wireless Computing, Speech Applications, Web Services & Enterprise/B2B Integration. 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 email@example.com.