For language generation, we are using Rosetta, which is a language generation toolkit originally designed for the CMU Communicator. Rosetta is capable of generating utterances from templates, filling in slots with information received from the dialog manager. It can also randomly select from a list of templates for a given response. The generated utterances are then sent to the TTS module (in this case, Festival) for synthesis.
Rosetta identifies different kinds of actions that require utterances to be generated; these actions are their own self-contained modules that have mappings between different concepts and the templates that generate utterances for those concepts. This system uses three different modules for language generation: one to provide information to the user, one to request information from the user, and one that confirms information the user has given the system. Within these modules, there are a variety of templates that generate utterances. For example, the Request module has a ``query.departure_place'' template which generates the utterance ``Where are you leaving from?'', which requests the corresponding concept from the user. The Inform module has a ``current_time'' template that randomly generates ``The time is now [current time].'' or ``It is currently [current time].''