LING 575 - Spoken Dialog Systems
Spring 2016
Homework #1
Due: April 28, 2016: 23:45
Overview
This assignment aims to help you familiarize yourself with VoiceXML
and develop improved understanding of basic spoken dialog systems through
implementation and application. Please review the tutorial and class
lectures on VoiceXML and introduction to spoken dialog systems.
Goals:
Through this assignment, you will:
- Gain additional experience with VoiceXML.
- Develop a simple spoken dialog system for access to weather information.
- Experiment with system-directed finite-state and mixed-initiative frame-based systems.
- Develop small spoken dialog grammars.
Q1: Exploring VoiceXML (30 free pts)
Sign up for an account with a VoiceXML service. One good option is Voxeo. You can do this as you set up your first toy VoiceXML application.
- Follow the instructions in the QuickStart Guide to :
- Sign up for a free developer account.
- Follow the VoiceXML Tutorial to create your Hello World application.
- The default link will take to a grXML grammar tutorial, with full grammar reference. You may use that or alternatively use the older style GSL grammar in the textbook, that language reference is here.
- Install the VoiceXML file on a website and use the Application Manager to link to it. You'll receive an email message shortly with the phone number to
access your application. In general, it is easier and more flexible to use your own website to host the VoiceXML files than to use Voxeo's storage. NOTE: UW provides website hosting for all students.
- Give the above change a few minutes to propagate and then call your application to test it, while monitoring it in the debugger as the tutorial
suggests.
- Explore the XML example applications in the tutorial and also online at
the Voxeo site.
Q2: Create a simple VoiceXML Weather interface (40 pts)
Create a VoiceXML application, named hw1_q2.xml, that provides a spoken interface to
weather forecast information.
- Your system should elicit (at least) the following information from the user:
- Location: a city, state pair, and
- Forecast time: current, short-term, or long-term
- Your system should be a system-initiative finite-state style
interface, eliciting one piece of information at a time from the user.
- Your system should include a grammar to accept a variety of utterances, ranging from the telegraphic (i.e., bare "Seattle, Washington") to more 'conversational' (i.e., "Give me the weather for Seattle, Washington").
- Your system should implement appropriate 'universals'.
- Your system should perform basic grounding of the input.
- Your system should feed back the complete information request to the user.
- Since it's impractical to do this for a large database within the
intended scope of this assignment, you may identify a small set of locations
for your grammar (3-4) and hard-code weather forecasts for them, using
conditionals. If you have some experience
with web APIs, you are welcome to use them to draw
forecast data from a live weather API, like the one at www.wundeground.com/api.
- You may use either the simpler but proprietary Nuance-gsl format or the
public GRXML to specify your grammars.
Q3: Writing a mixed-initiative Weather interface (30 pts)
Create a revised VoiceXML application, named hw1_q3.xml that adapts the interface you created in Q2 to mixed-initiative to allow the
user to enter the location and forecast time in either order or all at
once in a single utterance. To do this, you will need to at minimum:
- Modify your grammar to handle joint input of location and forecast
information.
- Modify your prompts and fields to support mixed initiative.
Submission Files
Please adhere to the naming conventions below:
- hw1_q2.xml: Your system-initiative weather system.
- hw1_q3.xml: Your mixed-initiative weather system.
- Any external grammar files, named as you wish.
- readme.{pdf|txt}: Write-up file. This file should include:
- The phone numbers to access your applications
- Any additional usage notes
-
This file should also describe and discuss your work on this assignment. Include problems you came across and how (or if) you were able to solve them, any insights, special features, and what you learned. Give examples if possible. If you were not able to complete parts of the project, discuss what you tried and/or what did not work.
- hw1.tar: Your hand-in file
- Use the tar command to build a single hand-in file, named
hw#.tar where # is the number of the homework assignment and
containing all the material necessary for your assignment.
For example, in your top-level directory, run:
$ tar cvf hw1.tar *
Handing in your work
All homework should be handed in using the class CollectIt.