Natural Dialogue System (NADIA)
NADIA is a set of components that deals with the creation of spoken dialogue systems. While common standards like Voice XML are widely used in industry, it is still quite a challenge to design dialogues that make use of well established theories from research projects. Although it is easy to create simple dialogues, we cannot specify the dialogue strategy, we have no integrated support for language generation and we don't have parsers for common question types at hand. Moreover, we need a complex IVR architecture which means a lot of effort to setup a dialogue development environment on restricted university computers. Alternatively, it is possible to create a dialogue system completely manually based on speech recognition/synthesis APIs like the Microsoft SAPI. Again, there is no support regarding the specification of the dialogue and its behaviour. Hence, the goal of NADIA is to offer an approach to design dialogues without having to code parsers, dialogue strategies or complex behaviour. The basis is an XML-based dialogue model that can be automatically processed by the NADIA dialogue engine. The task of the dialogue designer is to specify the questions, their properties and answers.
This software (created in 2013) is part of my PhD Thesis. Its main intention is to facilitate the creation of dialogue systems and to show the effect of different dialogue strategies, which is not only important in industry but also in university courses.
If you need more information, please refer to the following resources:
In case you want to get a quick impression, please have a look at the following video...
...and dialogue example from NADIA:
- How may I help you?
- I'd like to get price information about a flight.
- Where do you want to depart?
- In Aberdeen.
- Can you please tell me where you want to go?
- Can you tell me something about Edinburgh?
- Edinburgh is the capital city of Scotland, situated on the southern shore of the Firth of Forth. With a population of 482,640 [...].
- Where do you want to go?
- How is the weather in Edinburgh?
- 16°C.
- Can you tell me where you want to go?
- Okay, I want to go to Edinburgh on 26/04/2014.
- ...
You can also try it yourself. Please feel free to test the Natural Dialogue System (NADIA) (ASR/TTS requires Google Chrome). But keep in mind that this is only a demo with a limited vocabulary. Basically you can use some Scottish cities like Edinburgh, Aberdeen, Uig and Portree (other cities like Berlin or New York won't work in this demo), dates in the form dd/mm/yyyy, numbers, etc. The demo-dialogue supports the following tasks:
- get information about cities from Wikipedia
- get weather information
- control a light bulb (and see the current state)
- get price information for a trip
- play a number-guessing game
So what can I say? Try to say "please switch the light on" and check the state. Now "switch it off again" and check the state again. You can also try to guess a number that the system thinks of. Just say "Let's play a game" and type in your guesses as real numbers (e.g. 48). Moreover, you can get information about some cities from Wikipedia by saying "tell me about Edinburgh". Similarly, it's possible to get information about the weather: "How is the weather in Portree?". Perhaps you already found out that you don't need to answer a question directly. If you switch the task by asking a different question instead of answering Nadia's question, Nadia will first answer your question and then come back to the last question.
The software is Java-based and features an embedded Jetty web server. The dialogue description comes as XML and can be interpreted by the REST-based dialogue engine. The source code is available on Github.