|
Project 3: Voice XML In our last project we used a constrained medium (text) to explore the techniques for creating digital spaces. This time, we're also going to use a constrained medium, but to explore the techniques for creating meaningful participation. Our interface will be the telephone. This project will also engage the use of standardized data formats as a way of managing and exchanging digital information. We'll start talking about the encyclopedic property more next week. Our file format, XML, will carry both data and code to run your projects. This technology is called VoiceXML, and it lets us create interactive voice response systems very easily. All of us have encountered those maddening IVR telephone systems -- calling just about any corporation these days means slogging through endless menus. Surely these must be among the most rudimentary computational systems when it comes to interaction. But does it have to be that way? Create a VoiceXML application that uses voice recognition and touch-tone input as its only methods of interaction. Sample Project I've provided a sample project to help you. It's a game that you would play with at least two people at one of those ice cream stores that mixes the flavors while you watch -- Cold Stone Creamery or Marble Slab (the latter is over in Tech Square). The way the game works is like this: you and at least one friend call in to the number while you wait in line. You and your friends will follow the directions and each get a word from the system. Rather than order based on the flavors provided at the store, you have to assemble the words from your calls into a phrase and create a new flavor based on that phrase, using the ice cream flavors and mixins provided at the store. To use it:
Call (877) 338-6225
More on Cold Stone Creamery: http://www.coldstonecreamery.com
Source Code:
Things to consider - VoiceXML is VERY powerful. It was designed for real-world next-gen IVR applications. Don't get overwhelmed by it. You don't have to use all its features. That said, you do have a whole lot to mess around with if you're so inclined. - VoiceXML uses XML as markup and JavaScript to write code inside the XML. Now's a good time to brush up on your JavaScript syntax, or learn it for the first time. It's an easy Java/C syntax scripting language. - Test early and often in the BeVocal system. Do NOT write all your code offline and then assume it will work in the system. - My sample application is a game, but you don't have to create a game. It can be a productivity application, a toy, or even a simple mock-up of a business system you wish existed. - Take advantage of the constraints of the medium. Will your application be used from a home/work phone or from a mobile? In the case of the former, what problem does the application solve that the user couldn't accomplish in another way? In the case of the latter, are you taking advantage of the mobility of the user? - Keep it simple. Keep branching to a minimum (remember how much you hate all those menus on traditional IVR systems). Focus the application so it does one specific thing well. - If you choose to use the built-in text-to-speech system, make sure you test it thoroughly. Sometimes it's hard to understand. Choose words carefully and consider misspelling words if it produces a more understandable pronunciation. - If you are daring, you can record sound clips and upload them to use in lieu of the tts. Read about it in the documentation. - Look at the sample code on the BeVocal site. My sample project was created from a modified version of one of these. Use the samples! - When you run into bugs, check the Log Browser on your BeVocal account. It's complex to read at first but a very useful tool. Resources - Create a (free) developer account on http://cafe.bevocal.com. This is what you will need to upload, manage, and test your application. You will also need a phone -- mobile or landline, it doesn't matter. - BeVocal documentation can be found here: http://cafe.bevocal.com/docs/index.html. It's VERY GOOD doucmentation. There's also a tutorial here: http://cafe.bevocal.com/docs/tutorial/index.html. - Check out the samples, here: http://cafe.bevocal.com/resources/voicexml_samples/index.html. My sample project is based on the Haiku Generator and lifts liberally from its code and provided grammar file. These projects are due at midnight on Friday, September 30. As usual, we will do in-class critique the week of the 26th. Turn in your assignment as 3.html in your projects directory. Include an explanation of your solution and a link to your source code (either on your website or as a .zip archive). Also provide instructions for how we can call in to test your project. |