CS124: Investigation 5

Speech and Natural Language Interfaces

Due: 
Friday, March 26, 11:55pm on Sakai

This is a pair investigation.  You should work with someone that you did not work with for Investigations 3 and 4.

Goals

The goals of this Investigation are:

Before you Begin

There's nothing specific you need to do before you start this investigation.  You should be ready to start your investigation right away!

Assignment

In this investigation you will (1) explore, compare and contrast two existing speech-based user interfaces and (2) design, build and (lightly) test your own speech-based user interface. 

Part 1: Exploring existing speech-based UIs

In the first part of this assignment you will critique two different speech-based interfaces by performing a hypothetical task using these interfaces.  This part of the assignment should be very quick--don't spend too much time on it.  Most of your time will be spent on part 2.  You have two friends coming to visit you, both arriving today into LAX (Los Angeles International Airport).  One is coming from Atlanta, departing around 6pm, flying Delta.  The other is coming from Chicago (O'Hare), also departing around 6pm, flying American.  You want to find out their flight numbers and what time they arrive.

Call the two different airline information services (Delta (1-800-325-1999) and American (1-800-223-5436)) to find the arrival times and flight information for your friends.  You should each call each service twice.  The first time, just perform the task and get a sense of the interface.  The second time, pay attention to UI issues such as feedback, error recovery, how the interface tells you what you can do, etc.

In a paragraph or bulleted list, review the functionality of the two systems from a UI standpoint.  For each interface, state two things the interface did well, and make two suggestions for improvement.    

Part 2: Designing, Implementing and Testing a Speech-based UI

This part of the assignment takes some time and some energy.  Please ensure that you do the following:

  1. START EARLY!!!  BEFORE SPRING BREAK FOR SURE.
  2. Read the Tips page carefully.  Come back to this page multiple times, whenever you get stuck.
  3. Do NOT spend hours bangining your head into the wall.  Come to me or Sayuri for help.
In this part of the assignment you will design a voice interface to an events calendar.  You will use the Voxeo service to implement this interface. Voxeo is a program that enables you to implement your own voice-based interfaces!  It is very cool and is located at http://evolution.voxeo.com/.

Your task is to design a voice based interface for a hypothetical events calendar.  Users will call your interface and ask about events happening on various dates.  The exact format of the interface is for you to determine, but here's an idea of what a sample interaction might look like:

System: "Hello and welcome to the events for cool people calendar.  What kind of event are you interested in?"
User: "Sports"
System: "What day would you like to see a sports event?"
User: "Today"
System: "Today at 3:30 there is a soccer game on at Pomona College*.  Are you interested in hearing about more events?"
User: "No"
System: "OK, have fun at your event"

*Events may be hard-coded into the system and completely fictional.

Note that the above interaction potentially has many flaws.  First, how did the user know what types of events he or she could choose from?  What if the user does not care about the type of event, only the date?  These are important issues you must consider in the design of your interface.

The exact form of your interface will be up to you, but it should support, at a minimum, the following functionality:
You are free to add many more features into your interface.

Getting Started
Getting started will be somewhat challenging because of the unfamiliar development environment.  Luckily, Voxeo has excellent documentation.  I recommend starting with the VoiceXML tutorials at http://www.vxml.org/.  

Secondly, I've put together an example application that uses a grammar.  To run this sample you'll need to download: welcome.vxml and date.grammar and put them both on the web, and then link an application to the welcome.vxml file through Voxeo.  Or you can just look at them and run my application that uses this script by calling (978) 206-1945.

Thirdly, here are some useful tips for this assignment.  I urge you to read them over as you begin working with the system.

Finally, You may choose to add advanced functionality if you wish, so you might want to look into adding JavaScript into your application, but just get a basic application working first.

Building Your Application
As stated above, your application doesn't need much functionality.  What you are investigating is interface decisions and how the technology limits the interface you can create.  Thus, you should design your interface first and then implement it in BeVocal Cafe.  You may find that you are unable to implement things that you wanted to implement.  Keep a list of these limitations to include in your writeup.

In designing your interface, you should come up with a few tasks that you will use to test your interface.  These tasks should cover the range of activities that your interface is supposed to support, as described above.  These tasks might be things like "find out what's happening on Thursday", or "Find all the soccer games this week".

When designing your interface, pay attention to the interface issues we discussed in class such as how to convey legal input to the user, how to prevent and handle errors, how to give feedback, etc.  You may wish to test an interface "prototype" simply by pretending to be the interface, and having someone (your partner, if you must, but preferably someone else) call you to perform a task.

Do not worry about your code archtecture or creating a clean implementation.  It's fine if your code is a mess.  Your grammar can be as ugly as you like.  You are going to throw it away anyway since it's just a prototype.  Hard code as many things as you can/want into the interaction.  Your prototype does not have to be broad and it's OK if it fails on any tasks other than the ones you will test it on.

Testing Your Application
After you implement and debug your interface, get a few of your friends to call in and try it out.  You can have Voxeo record these sessions so that you can listen to them later.  Listen to these recorded session and note any usability issues your users encountered.  [Note: I haven't yet figured out recording, but I'll post more info here when I do. Until then, it should be reasonably easy to figure it out on your own.]

Writing Up Your Results
The end results of this exercise will be an analysis of the strengths and weaknesses of your interface.  You should produce a 2-3 page writeup that addresses the following:

What to Hand In

Grading

I5 Grading Rubric
Back to CS124 Investigations Page