IEEE Home | Shop IEEE | Join IEEE | myIEEE | Contact IEEE | IEEEXplore
IEEE

IEEE Signal Processing Society
Speech & Language Technical Committee


Dialog System Development Using the

Ravenclaw/Olympus Framework

By SVETLANA STENCHIKOVA

Olympus/RavenClaw is a freely available framework for developing dialog systems. It has been deployed by several dialog systems in various domains including ConQuest, the system utilized at the Interspeech conference, RoomLine, the system is used to reserve rooms on campus, BusLine. a system for Pittsburgh bus information.

Olympus is based on the Galaxy Communicator. Each dialog module (speech recognition, text-to-speech, parser, back-end, dialog manager, etc.) runs as a separate server and communicates through the Galaxy hub. In the default setup, Olympus uses Sphinx2, Festival, the Phoenix parser, the Rosetta natural language generator, and the Ravenclaw dialog manager. Any module of the system can be replaced. In theory, any application can be wrapped to be an Olympus server. Servers (and wrappers) can be developed in C, Java, Python, Lisp or Perl. We found the Java interface for the Galaxy server well defined and simple to use, although lacking in documentation.

RavenClaw, a dialog manager server, adds value for a dialog designer. RavenClaw is developed in C++. There is a logical separation between the system independent dialog manager implementation and the design of a particular dialog system.  The dialog system designer need not be proficient in C or C++ programming; the system specific part of the dialog manager is defined using preprocessor macros. The dialog is specified as a tree, with pre and post-conditions, and execution effects defined for each node. The leaf nodes of a dialog tree are the agents responsible for some finite task of a dialog: getting information from a user, presenting information, or accessing a database.  During the runtime, the tree nodes are placed on the stack and executed in the order determined by each agent's pre-conditions.  The dialog designer specifies the tree nodes where each tree system allows grammar rules to be enabled in particular agents of the dialog tree.

We used Olympus/RavenClaw framework for developing a calendar dialog system. This system allows users to add and list the events in a personal calendar. We implemented a java back-end Galaxy server that uses the Google calendar API and a java front-end server that lets users display and select event locations using Google maps interface. The distributed Olympus framework allowed us an easy plug-in of these functionalities. Despite the learning curve of starting to use the RavenClaw dialog manager, we found the tree representation of a dialog natural and intuitive. Depending on the complexity of your dialog system, RavenClaw may save you time and help end up with simple and maintainable code.

Check it out: http://www.cs.cmu.edu/~dbohus/ravenclaw-olympus/


 
SLTC Home   |    IEEE Home   |   Privacy & Security   |    Terms & Conditions