ISRResEval::ReEvaluate

HRESULT ReEvaluate(BOOL *pfChanged);

Causes a speech-recognition engine to reevaluate the recognition result represented by this object.

· Returns NOERROR if successful, or one of these error values:

E_INVALIDARG
E_OUTOFMEMORY
SRERR_NOTENOUGHDATA
SRERR_NOTSUPPORTED

pfChanged

[out] Address of a variable that receives TRUE if reevaluating the recognition changed the result. An engine may not be able to reevaluate a result because it doesn't have enough information.

Reevaluating a recognition allows the engine to take advantage of new knowledge that it has recently acquired.

Typically, ReEvaluate is used for dictation in which the application has the speaker do a speaking pass followed by a correction pass. As the speaker corrects the document, the application may call the ISRResCorrection::Correction and ISRResCorrection::Validate member functions, which ultimately provide the engine with the following information:

· New proper names or words are identified, and their text is mapped to phonetic representations. Subsequent occurrences of these phonemes should be correctly recognized.

· Misrecognitions are corrected. This effect sometimes ripples through a document because a misrecognition can produce non sequiturs that confuse the engine's grammar rules, and corrections can affect subsequent recognitions.

· The engine has managed to adapt to the user's speech and grammar patterns, which corrects some misrecognitions.

· By the end of a document the engine may be able to better identify the context of the dictation and the vocabulary used within the document.

An advanced engine can take advantage of all of these clues.