OpenDial is a Java-based, domain-independent toolkit for developing spoken dialogue systems. OpenDial was originally designed to perform dialogue management tasks, but it can also be used to build full-fledged dialogue systems, integrating e.g. speech recognition, language understanding, generation, speech synthesis, multimodal processing and situation awareness.
The purpose of OpenDial is to combine the benefits of logical and statistical approaches to dialogue modelling. The toolkit relies on probabilistic rules to represent the domain models in a compact and human-readable format. Supervised or reinforcement learning techniques can be applied to estimate unknown parameters from small amounts of data (see Lison (2014) for details). The hybrid approach adopted by OpenDial makes it possible to easy incorporate expert knowledge and domain-specific constraints within a robust, probabilistic framework.
OpenDial is designed as a blackboard architecture in which all modules are connected to a central information hub representing the dialogue state (encoded as a Bayesian Network). A collection of plugins is available to connect external components for speech recognition, parsing, speech synthesis, etc.. New modules can also be easily implemented and integrated into the architecture.