- VoiceXML 2.1 (partial support currently, more to come. See VoiceXML Tags Supported)
- Inline, built-in, and external grammars (GSL and GRXML).
- Prompts can be TTS, audio, or rendered data values. External prompts in XML files for multi-lingual apps and post-deployment flexibility.
- Built-in support for noinput, nomatch, and help events. Escalated prompts.
- Built-in validation. A flow object's ValidateInput method can validate user input and accept, ignore, or retry the input.
- NBest with confirmation of each NBest result. Optional skip list.
- A library of re-usable "speech objects", called SROs is provided for common tasks such as time and dates, numbers, and currency.
- Disconnect, Transfer, and GotoUrl
- Flow Objects. A flow object represents a dialog state such as asking for a flight number. Each flow object is rendered as one or more VoiceXML pages. Flow objects are fully object-oriented: you can use inheritance, composition, and nesting to combine flow objects. The speech application itself is a flow object.
- Throw/catch used for errors such as max-retries-exceeded, validation-failed, or user-defined events. This simplifies callflow development because it encourages centralized error handling (although local error handling can be done when needed). Also, throw/catch increases software re-use because (unlike a 'goto') it decouples the part of the app throwing the error from the part of the app that handles it.
- MVC architecture. Built-in model allows sharing of data between flow objects.
- Flow objects can invoke business logic upon completion.
- Extension points are available in the framework for customization.
- callflows can be unit tested in JUnit
- interactive tester for executing callflows using the keyboard.
- SpeakRight servlets have an HTML output mode. This can be used to test a callflow using an ordinary web browser.
SpeakRight doesn't provide features for data access or web services. Other open-source projects already do those things very well.
No comments:
Post a Comment