Introduction - dialogos-project/dialogos GitHub Wiki

(this page in German)

Overview

DialogOS is a dialog management tool which provides a unique environment for developing, testing, and deploying spoken-dialog applications.

DialogOS contains built-in components for speech recognition and synthesis, as well as modules for controlling a LEGO Mindstorm robot. The system also makes use of an interface for communicating with external modules of various sorts. These modules can include other speech recognition engines, displays, databases (such as an SQL database), or other communication devices.

Developing a Dialog Model

DialogOS provides a graphical user interface in which you can create new dialog states simply by adding nodes to the canvas and connecting them via built-in edges.

A dialog model consists of the following components:

  1. A list of internal plugins and external devices which can interact with the system.

  2. A graph representing the control flow of the dialog. This graph may contain any number of subgraphs containing partial dialogs.

  3. A list of variables which add flexibility in transfering information from state to state. Variables can store user input, which can be accessed at a later point.

Each of these components are described in detail in the following sections.

Workspace

Each node in the graph is rendered as a colored rectangular box. A new node can be created by right-clicking or control-clicking on the canvas and selecting a node type from the drop-down list, or dragging a node to the canvas from the Drag-and-Drop toolbar. Each node also has one or more small arrows extending below it, specifying the exit from that particular state. A description of the exit appears by holding the mouse cursor over the arrow.

A description of each node can be found in the chapter on nodes.

Nodes and edges can be deleted quickly by clicking on each one individually with the mouse and selecting Edit -> Delete, or pressing delete from the keyboard.

When DialogOS starts up or a new document is created, a window opens which automatically includes a Start node. Each graph only has one Start node marking the beginning of the dialog sequence. The size of the workspace can be adjusted by selecting Graph -> Canvas Size and entering values for the width and height of the canvas.

Workspace Settings

Toolbar

A toolbar is provided above the workspace iwhich provides quick access to certain editing options and dialog deployment tools.

The Select, Scroll, and Delete options of the toolbar will automatically switch the workspace into Editing Mode. With the Select option, you can select and modify existing nodes, as well as create new ones. The Scroll option allows you to quickly scroll through the workspace, while the Delete option makes it easy to delete many nodes at once.

The Run, Debug, and Wizard of Oz options, on the other hand, enable you to effortlessly execute and test your dialog model.

One final option in the toolbar is Show Grid, which snaps each node to a grid for better alignment. In addition, you can automatically align nodes to an axis using the Shift button and selecting an alignment scheme, such as horizontally or vertically.

Procedures

Drag-and-Drop

Variables

Variables and built-in functions add flexibility to graphs or subgraphs by making it possible to save and access information from different data structures. Variables declared within a graph can be accessed by any node within that graph. In this way, data from external input can be stored and accessed, and dynamic output generated at runtime can be sent to the user.

Each variable has a name, which must be distinct within a graph or subgraph, type, and an optional default value. A list of all variables within a graph can be found by selecting it from the menu Graph -> Variables. From here, variables may be added, deleted, or edited.

Variable List

DialogOS comes with a set of built-in functions for building more complex expressions in your dialog model. In addition, you can define your own functions by selecting Graph -> Functions from the menu.

For a description of all data types, expressions, and functions, please see the page on Functions and Scripts.

Grammars

Grammars are used whenever a Speech Recognition node is used in the dialog model. The node must select a grammar for recognition and all possible utterances must be predefined in the grammar. The set of formal rules used to describe possible utterances is also a grammar. All grammars can be viewed and edited from within the grammar manager by selecting Graph -> Grammar.

See the page on Grammars for more details on how to write a grammar.

Settings

Dialogue

Several different choices for settings are listed in the Dialog menu item. Alongside the features Devices and Native Code, there are options for Lego Mindstorms NXT, Speech Recognition and Speech Synthesis modules.

For Speech Recognition and Speech Synthesis, there are options for choosing the language and a corresponding voice for your dialog model.

Nodes

Additionally, you can group several nodes together by selecting Nodes -> Group.This has the effect of applying a change to one node over all nodes in the group, simplifying the editing process. To ungroup nodes, simply select Nodes -> Ungroup. You can also convert several nodes into a subgraph by selecting Nodes -> Collate.

You can search for one or more nodes using the Nodes -> Find option and entering the node name, node type, or variables used by the node as search criteria.

Lastly, you can set breakpoints for use with the debugger to pause at a specific node during runtime. Simply click on a node and select Nodes -> Set Breakpoint from the menu to add a new breakpoint on a node, or Nodes -> Clear Breakpoint to remove it.

Next page: Quickstart