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/ |