SpeakRight provides a set of reusable speech objects called SROs. They are configurable and extensible. Here is a list of the ways SROs can be "tweaked":
- SROs have a full set of prompts, with main, silence, no-reco, and help prompts. Up to four escalations of each can be defined.
- any or all prompts can be replaced. Each SRO has a subject, a word such as "flights", which is used to build prompts. Changing the subject word is the simplest way to adjust the prompts. There is an extension point for handling the plurality of subject words ("flight", "flights"). Or the entire prompt can be replaced.
- prompts can be conditional, such as a prompt that only plays the first time an SRO is executed.
- prompts can be defined at compile time, at runtime in code, or in external XML files.
- grammars are replaceable. Inline grammars or grammar files can be used. The only restriction on a grammar is that it uses the slot names required by the SRO.
- validation code can be added. This server-side code inspects use input and either accepts it or causes the SRO to re-execute.
- Model binding. An SRO has a model variable name. When set, the user input results are bound to the model (i.e. stored in the model for later use by the app)
- Command phrases can be added to an SRO. A common data entry pattern is the enter-data-or-say-cancel pattern. SROs have a list of command phrases that you can add to.
- confirmation can be added. An SRO has a confirmation plug-in that can be used to add various forms of confirmation (explicit, implicit, or confirm-and-correct).
The current list of SROs is: