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:
- To explore different speech-based user interfaces
- To design and build your own speech-based user interface
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:
- START EARLY!!! BEFORE SPRING BREAK FOR SURE.
- Read the Tips page carefully. Come back to this page multiple times, whenever you get stuck.
- 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:
- The user should be able to get information about events by category and by date
- The user should be able to make more than one query
- You should specifically handle the case in which the user's desires are not met (how you handle it is up to you).
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:
- Design justification:
Give a brief overview of your interface and describe what
principles/analysis/preliminary testing went into the various
components in your design.
- Technical challenges:
What technical challenges did you face in implementing your design.
Did anything change between your initial design and what you
actually were able to implement?
- Design critique: From your testing, what did you discover that worked well or did not work in your design. What changes would you suggest?
What to Hand In
- Your critique of the airline reservation systems from part 1.
- All information necessary for me to call your voice interface and interact with it.
- The tasks you created to design/test your interface.
- Your writeup of your voice interface design.
Grading
I5 Grading Rubric
Back
to CS124 Investigations Page