SRMODEINFO

This structure provides details about a speech-recognition mode supported by a particular engine.

Syntax

typedef struct { // srmi
GUID
gEngineID;
TCHAR
szMfgName[SRMI_NAMELEN];
TCHAR
szProductName[SRMI_NAMELEN];
GUID
gModeID;
TCHAR
szModeName[SRMI_NAMELEN];
LANGUAGE
language;
DWORD
dwSequencing;
DWORD
dwMaxWordsVocab;
DWORD
dwMaxWordsState;
DWORD
dwGrammars;
DWORD
dwFeatures;
DWORD
dwInterfaces;
DWORD
dwEngineFeatures;
} SRMODEINFO, *PSRMODEINFO;

Members

gEngineID
Globally unique identifier (GUID) of the engine. It is possible for more than one mode to have the same engine identifier. In this case, the engine is capable of recognizing the different languages or voices of the modes.
szMfgName
Null-terminates string that contains the name of the manufacturer .
szProductName
Null-terminated string that contains the name of the product.
gModeID
Globally unique identifier (GUID) of the mode. These numbers are guaranteed to be unique, so it is not necessary to monitor and record them. In addition, because the GUID is not stored or used directly by OLE, it is not necessary to load it into the registry.
szModeName
Null-terminated string that contains the name of the recognition mode.
language
Specifies the LANGUAGE structure that contains the name of the language and dialect.
dwSequencing
Specifies the recognition scheme. It is one of the following flags:
SRSEQUENCE_CONTINUOUS
Performs continuous recognition. Given a continuous utterance with no pauses between words, the engine can recognize the words that were spoken.
SRSEQUENCE_DISCRETE
Recognizes discrete utterances. Every word must be isolated by a pause before and after the word for the engine to recognize it.
SRSEQUENCE_WORDSPOT
Performs word spotting, which means that a series of words may be spoken in a continuous utterance, but the engine recognizes only selected words or phrases.
SRSEQUENCE_CONTCFGDISCDICT
Performs continuous recognition for context-free grammars. It also supports discrete dictation.
dwMaxWordsVocab
Specifies the maximum number of words allowed in an active vocabulary at any time.
dwMaxWordsState
Specifies the maximum number of words in any state of a grammar.
dwGrammars
Specifies the types of grammar supported by the engine. It is a combination of the following flags:
SRGRAM_CFG
Specified a context-free grammar.
SRGRAM_DICTATION
Specifies a dictation grammar.
SRGRAM_LIMITEDDOMAIN
Specifies a limited-domain grammar.
dwFeatures
Specifies available features. It is a combination of the following flags:
SRFEATURE_ANYWORD
The engine can attempt to recognize any word.
SRFEATURE_GRAMLINK
The engine supports automatic links between grammars.
SRFEATURE_GRAMLIST
The grammars support recognition lists.
SRFEATURE_GRAMRECURSIVE
The engine accepts recursive, context-free grammars; without this flag, it cannot have recursive grammars.
SRFEATURE_INDEPMICROPHONE
The engine is microphone-independent, meaning that it is indifferent to background noise and microphone, and does not require retraining if the microphone changes.
SRFEATURE_INDEPSPEAKER
The engine is speaker-independent and works well without training.
SRFEATURE_IPAUNICODE
The engine supports the IPA in Unicode.
SRFEATURE_MULTILINGUAL
The engine can recognize speech in several languages at a time. This is necessary for systems that run two or more applications written for different languages.
SRFEATURE_PCOPTIMIZED
The voice is optimized to work over the computer, which provides better sound quality.
SRFEATURE_PHONEOPTIMIZED
The voice is designed to work over the telephone and uses an 8-kilohertz (kHz) sampling rate.
SRFEATURE_TRAINPHONETIC
The speaker can train the engine on a preselected set of words and thereby train all of the phonemes used for recognition. This is done in general training.
SRFEATURE_TRAINWORD
The speaker can train the engine on individual words.
SRFEATURE_WILDCARD
The engine supports wildcards in context-free grammars.
dwInterfaces
Specifies the interfaces that the engine supports. It is a combination of the following flags:
SRI_ILEXPRONOUNCE
Supports the ILexPronounce interface.
SRI_ISRATTRIBUTES
Supports the ISRAttributes interface.
SRI_ISRCENTRAL
Supports the ISRCentral interface.
SRI_ISRDIALOGS
Supports the ISRDialogs interface.
SRI_ISRGRAMCOMMON
Supports the ISRGramCommon interface.
SRI_ISRGRAMCFG
Supports the ISRGramCFG interface.
SRI_ISRGRAMDICTATION
Supports the ISRGramDictation interface.
SRI_ISRGRAMINSERTIONGUI
Supports the ISRGramInsertionGUI interface.
SRI_ISRESBASIC
Supports the ISRResBasic interface.
SRI_ISRESMERGE
Supports the ISRResMerge interface.
SRI_ISRESAUDIO
Supports the ISRResAudio interface.
SRI_ISRESCORRECTION
Supports the ISRResCorrection interface.
SRI_ISRESEVAL
Supports the ISRResEval interface.
SRI_ISRESGRAPH
Supports the ISRResGraph interface.
SRI_ISRESMEMORY
Supports the ISRResMemory interface.
SRI_ISRESMODIFYGUI
Supports the ISRResModifyGUI interface.
SRI_ISRESSPEAKER
Supports the ISRResSpeaker interface.
SRI_ISRSPEAKER
Supports the ISRSpeaker interface.
SRI_ISRESSCORES
Supports the ISRResScore interface.
dwEngineFeatures
Specifies features of a particular engine. These values are defined by the engine author. For more information about engine features, see the documentation for the engine.

In order to identify which engine is being used, an application can use the ITTSEnum interface to enumerate the engines. Its features can then be determined.

Remarks

Although an engine can support both computer optimized and phone optimized voice qualities, most support either one or the other.

Some engines support recognition from several languages at a time. For more information about recognizing multiple languages, see the description of the ISRCentral::GrammarLoad method.