The Download page contains the various OpenDial releases.
NB: If you are using Maven/Gradle for your software and are only interested in fetching OpenDial as an external dependency, there a Maven package for Opendial on Jcenter (groupId:opendial,artifactId:opendial).
When you have downloaded the package, simply unzip it and cd to the main directory:
(of course, X should be replaced by the particular version you are using).
If you have downloaded one of the stable packages, the source code is already compiled, so you can directly run OpenDial out-of-the-box by executing one of the following scripts:
If everything goes well, you should see a window like this pop up:
From there, you can either start a new dialogue domain (
In case you plan to work on OpenDial's source code, or if you have fetched the bleeding-edge source code from the github repository, you will need to recompile the source. Since version 1.4, OpenDial relies on the Gradle build framework (before 1.4, we used ant).
If you do not yet have Gradle on your machine, you first need to install it (on Mac OS X, you can install it via Brew, and a gradle package is also available on Ubuntu). Once this is done, simply go to the main directory and type:
This should compile the source code in a few seconds. You can verify that everything works correctly by running the unit tests for Opendial:
Once the compilation is completed, you can run OpenDial through the scripts mentioned above (
You can try out OpenDial by opening a dialogue domain such as the one specified in domains/example/example-step-by-step_fixed.xml
and typing a new user input such as: "please turn left". You should
then see in the chat window the system answer: "OK, turning Left".
OpenDial contains 3 tabs: an interaction tab listing the dialogue history, a state monitor tab showing the current dialogue state and its latest updates, and a domain editor tab allowing you to edit the domain specification.
The first tab displays the dialogue history and allows the user to interactively test the dialogue system.
At the bottom of the page, a text field can be used to enter new inputs (this feature is useful to test the system behaviour without a speech recognizer). N-best lists can be entered by specifying probabilities in parentheses and separating alternative hypotheses with a semicolon (;). For instance, the user input:
now move left (0.55) ; do not move left (0.15)
represents a N-best list with three alternative elements: "now move left" with probability 0.55, "do not move left" with probability 0.15, and a last empty element (no input) with probability 0.3.
If you include modules related to speech recognition or synthesis to your architecture, you will also see a bottom panel allowing you to easily provide speech inputs.
state viewer displays the current dialogue state as a Bayesian network.
The user can click on each variable (or sets of variables) and derive
their marginal probability distribution. In addition, the distribution
of individual variables can be represented graphically in a chart or
addition to the current dialogue state, the system can also keep track
and record past dialogue states. This can be very useful for debugging,
as it shows how the dialogue state evolves during processing. The menu
Finally, the domain editor allows you to interactively edit the dialogue domain (in XML format).
As mentioned above, you can run OpenDial through the scripts available in the scripts directory. Alternatively, you can also directly run the Java main class:
Please note the
The OpenDial menu bar offers several functions:
User Guide >