Look Ma, No Hands!
|
Look Ma, No Hands!
|
 |
New tools and standards for developing speech-enabled Web applications.
 |
|
|
 |
 |
 |
|
Elsewhere on the Web
|
An Introduction To VoiceXML
W3C accepts VoiceXML 1.0 spec
|
|
 |
| |
|
The Web is spreading beyond the limits imposed by the ordinary desktop computer. Various wireless devices - especially PDAs and mobile phones - are becoming increasingly popular, even if they cannot match the capabilities of an ordinary PC. Mobile phones are everywhere, and the introduction of Wireless Application Protocol (WAP) and similar technologies enabled us to take the Web where no wire has gone before. It works great in theory, but then you'll have to deal with small screens, weird keypads, and various interpretations of what's supposed to be a common standard. And no, don't even think of using these gadgets while driving.
Obviously, the problem can be solved by using the oldest user interface invented by the Homo Sapiens: speech. Even the cynics will admit that speech recognition has been one of the most successful examples of the "applied" AI. Some really good speech recognition engines are available commercially, and you would expect that there are no real problems with "speech-enabling" your Web applications. Been there, done that... and believe me, it isn't that easy. Speech-enabled Web applications are very difficult to build, requiring a solid background not only in software design and development, but also in telephony, networking, linguistics, etc. Older Interactive Voice Response (IVR) systems are notoriously proprietary and therefore aren't the best source of information on developing Web-based apps. You are left with painfully slow and difficult process of developing programs in C/C++ or similar language on a dedicated telephony platform.
An emerging standard founded by AT&T;, Lucent Technologies, Motorola, and IBM promises to give a boost to the voice-based Web applications. VoiceXML (Voice Extensible Markup Language), to quote its creators, is designed for creating audio dialogs that feature synthesized speech, digitized audio, recognition of spoken and DTMF (touch tone) key input, recording of spoken input, telephony, and mixed-initiative conversations. It is one of the most innovative applications of XML I've seen lately, as it provides high-level, domain-specific language that greatly simplifies programming of speech-enabled, "hands-free" systems.
A typical VoiceXML script looks like a good old HTML, or better yet, XML document. Two short examples from VoiceXML Forum submission to the World Wide Web Consortium will illustrate its main features:
<?xml version="1.0"?>
<vxml version="1.0">
<form>
<block>Hello World!</block>
</form>
</vxml>
You can choose between two types of dialogs to present information to the user: menus and forms. Forms present information and gather user input, allowing for a free-form dialog. A goto directive is generally used to transfer the control to the appropriate page. Menus offer multiple choice elements, guiding the user through a list of possible steps. A field tag is used to indicate an input field inside the script:
<?xml version="1.0"?>
<vxml version="1.0">
<form>
<field name="topic">
<prompt>Would you like to learn more about neural networks,
genetic algorithms or robotics?>/prompt>
<grammar src="aitutorial.gram"
type="application/x-jsgf"/>
</field>
<block>
<submit
next="http://ai.about.com/voicexml/ai2.asp"/>
</block>
</form>
</vxml>
Prompt queues Text-To-Speech (TTS) and audio output to the user. Any compatible TTS engine can be used to power a VoiceXML system. The same situation is with speech recognition engines that interpret the spoken response. Support for streaming audio is expected in the future. Grammars for speech recognition can be stored in a custom format used by the specific recognition engine, or written in standard Java Grammar Specification Format.
Every standard Web site can serve VoiceXML content using standard HTTP protocol. Low-level implementation details are handled by VoiceXML gateways, which provide the presentation services components - speech recognition, audio playback, telephony services, TTS, etc. VoiceXML World provides an excellent overview of the available resources, including eight VoiceXML gateways. The VoiceXML Forum is a governing organization and primary source of information on VoiceXML.
To set things straight, there is a lack of development tools and deployment platforms. IBM AlphaWorks site offers a VoiceXML package which contains an early-access implementation of the VoiceXML 0.9 language specification, including some VoiceXML samples. Motorola's powerful Mobile Application Development Kit enables software developers to create add-on voice and data solutions. Tellme Studio, a service of the voice portal TellMe, also enables you to create Internet powered, voice activated phone applications that anyone with a phone can use. Others are actively working on similar products. Although the language can still be considered immature, there is no doubt that with a large support from industry giants like IBM and Motorola we could quickly get a standard for developing portable speech activated applications.
An interesting alternative to the VoiceXML that deserves a mention here is sometimes called "voice browser". Conversa Web was one of the first products for hands-free browsing. Besides that, they are now offering small-footprint speech engine for mobile Internet appliances, Windows 2000 Server-based solutions, tools for designing and prototyping conversations that can be run from the Conversation Server, and more.