|
N-best recognition
results
(Continued
from Part 1)
When
the VoiceXML interpreter makes these available to your
application, you should note that they will be sorted
by confidence, and then by grammar priority when there
is a tie. An interesting thing to keep in mind is that
even when <nomatch> is generated, application$.lastresult
will be populated with any results returned by the recognizer.
This can be useful in making your application more intelligent
when responding to problems.
In
the example below, we've extended our field such that
we want up to five results to be returned. In the <filled>
block, we then say how many we received, and then use
a script to construct a prompt which includes the actual
confidence and utterances that we recognized. The grammar
is somewhat contrived to give us a better chance at
getting more than one result.
<?xml version = "1.0"?>
<vxml version = "2.0">
<form>
<script>
<![CDATA[
function dumpResults(){
var result = "";
for ( var i = 0; i < application.lastresult$.length; i++ ){
result += "Result " + String(i+1) + ": ";
result += "Confidence is " + application.lastresult$[i].confidence + ". ";
result += "Utterance is " + application.lastresult$[i].utterance + ". ";
}
return result;
}
]]>
</script>
<block>
<prompt>
Welcome to the Voice X M L review pizza franchise
</prompt>
</block>
<field name = "orderItem">
<property name = "maxnbest" value = "5" />
<grammar>
pizza | pizzas | pie | drinks | salad | wings
</grammar>
<grammar mode = "dtmf">
1 {pizza} | 2 {drinks} | 3 {salad} | 4 {wings}
</grammar>
<prompt>
What would you like to order? We have pizza, drinks, salad or wings.
</prompt>
<noinput>
Say pizza, drinks, salad, or wings.
</noinput>
<nomatch>
You can say pizza, drinks, salad, or wings.
</nomatch>
<filled>
You said
<value expr = "orderItem" />
The recognizer returned
<value expr = "application.lastresult$.length" />
results.
<value expr = "dumpResults()" />
</filled>
</field>
</form>
</vxml>
|
Summary
Most
speech recognizers support N-best list generation, although
they may have particular restrictions associated with
them. Make sure that you consult vendor documentation.
N-best support is also required by the VoiceXML 2.0
draft specification, so you might want to have a look
at that document as well.
What's
Next?
If
there are particular things you'd like to see covered
in a future First Words column, drop me a line at rob@voicegenie.com,
and I'll try to write about it.
back
to the top
Copyright
© 2001-2002 VoiceXML Forum. All rights reserved.
The VoiceXML Forum is a program of the
IEEE
Industry Standards and Technology Organization (IEEE-ISTO).
|