Overview | Package | Class | Tree | Index | Help | |||
PREV CLASS | NEXT CLASS | FRAMES | NO FRAMES | ||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
DictationGrammar
.
A finalized result is a result that is in either the
ACCEPTED
or REJECTED
state
(tested by the getResultState
method of the
Result
interface).
The FinalDictationResult
interface extends the
Result
and FinalResult
interfaces
with a single method. The getAlternativeTokens
method provides access to alternative guesses for tokens
in a dictation result.
Every Result
object provided by a Recognizer
implements the FinalDictationResult
and the
FinalRuleResult
interfaces (and by inheritence the
FinalResult
and Result
interfaces).
However, the methods of FinalDictationResult
should only be called if the Result.getGrammar
method returns a DictationGrammar
and once the
Result
has been finalized with either an
RESULT_ACCEPTED
or RESULT_REJECTED
event.
Inappropriate calls will cause a ResultStateError
.
Method Summary | |
ResultToken[][] | getAlternativeTokens(ResultToken fromToken,
ResultToken toToken,
int max)
Return a set of alternative token guesses for a single known token or sequence of tokens. |
Method Detail |
public ResultToken[][] getAlternativeTokens(ResultToken fromToken, ResultToken toToken, int max) throws ResultStateError, IllegalArgumentException
Typically when a user selects one of the alternative guesses
as the correct token sequence, the tokenCorrection
method of the FinalResult
interface is called
with those tokens. That call allows the Recognizer
to learn from recognition errors and can improve future
recognition accuarcy.
The fromToken
and toToken
parameters
define an inclusive set of tokens for which alternatives
are required. fromToken
and toToken
are typically included in the set of alternative guesses.
If toToken
is null
or if
fromToken
and toToken
are the same, then
alternatives are provided for the single toToken
token.
The tokens passed to this method must be ResultToken
objects provided by this result through previous calls to
getAlternativeTokens
or the getBestToken
and getBestTokens
methods of the Result
interface.
Returned Array Structure
The return value is a ragged two-dimension array with indices
being altTokens[guessNumber][tokenNumber]
.
The guesses are ordered by from best guess to least likely
(determined by the recognizer): altTokens[0]
is the
best guess for the span of fromToken
to toToken
,
altTokens[1]
is the first alternative guess and so on.
The number of tokens may be different in each alternative guess.
This means that the length of altTokens[0]
may be
different from the length of altTokens[1]
and so on.
The length is never zero or less. (This point is illustrated in
the example below.)
The max
parameter indicates the maximum number of alternative
guesses to be returned. The number of guesses returned may be less than
or equal to max
. The number of alternatives
returned is also less than or equal to the NumResultAlternatives
property set in the RecognizerProperties
at the time of
recognition.
The number of alternative guesses and the number of tokens in each
guess can vary between results. The numbers can vary for different
values of fromToken
and toToken
for the
calls to the same result.
The returned alternative guess is always an array of length one or
greater. If there is only one guess, it may be the sequence
of fromToken
to toToken
tokens.
Each guess always contains one or more tokens. If the result is
ACCEPTED
then the recognizer is confident that
all the alternatives guesses are reasonable guesses of what the
user said.
Example
Assume the user says "You can recognize speech" and that
the recognizer accepts a result and hears the utterance correctly.
The result will have four tokens (Result.numTokens() == 4
)
and the best guess tokens returned by the Result.getBestTokens()
method returns and array with {"you", "can", "recognize", "speech"}
.
(The Result.getBestToken(int index)
method will return the
tokens one at a time.)
Let's take the second and last tokens ("can" and "speech") and request five alternative guesses for the sequence including those tokens:
FinalDictationResult result; ResultToken secondToken = result.getBestToken(1); ResultToken lastToken = result.getBestToken(result.numTokens()); ResultToken[][] altTokens = result.getAlternativeTokens(secondToken, lastToken, 5);The return value might look like the following (representing each token by its written-form string):
altTokens = { {"can", "recognize", "speech"}, {"can", "wreck", "a", "nice", "beach"}, {"in", "recognize", "beach"}, {"recognize", "speech"} }
Some observations from this example which illustrate the points described above.
getAlternativeTokens
call.
getBestTokens
method. (As we expected,
"can recognize speech" is the recognizer's best guess for
that segment of incoming speech.)
DictationGrammar
ResultToken
not obtained from this resultOverview | Package | Class | Tree | Index | Help | |||
PREV CLASS | NEXT CLASS | FRAMES | NO FRAMES | ||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
JavaTM Speech API
Copyright 1997-1998 Sun Microsystems, Inc. All rights reserved
Send comments to javaspeech-comments@sun.com