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.