A dialog management system functions to manage the dialog between a user
of a computer system and one or more speech enabled software
applications. The user provides spoken input to a microphone connected to
the computer system, and hears responses from one or more applications
through a speaker connected to the computer system. The dialog management
system includes a dialog manager, a turn manager, a speak queue, dialog
contexts, and dialog state. The dialog manager provides top-level control
of the dialog and stores responses based on the user's spoken input in a
speak queue for later output to the user. The turn manager controls
delivery of the responses to the user based on the dialog context and the
dialog state, to provide a polite asynchronous dialog with the user that
enables the user to be in control of the dialog. The dialog context
provides information about each dialog. The dialog state provides
information about whose turn it is (computer or user) to speak.