SRMODEINFO

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;

Provides details about a speech-recognition mode supported by a particular engine.

gEngineID

GUID that identifies 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

Name of the manufacturer — for example, "Acme Corporation."

szProductName

Name of the product — for example, "Acme's Ultra-Listener."

gModeID

GUID that identifies 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

Name of the recognition mode — for example, "English Ultra-Listener."

language

LANGUAGE structure that contains the name of the language and dialect.

dwSequencing

Recognition scheme. This member can be one of these values:

Value

Meaning

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. 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.
(New for 3.0)


dwMaxWordsVocab

Maximum number of words allowed in an active vocabulary at any time.

dwMaxWordsState

Maximum number of words in any state of a grammar.

dwGrammars

Types of grammar supported by the engine. This member can be a combination of these values:

Value

Meaning

SRGRAM_CFG

Context-free grammar

SRGRAM_DICTATION

Dictation grammar

SRGRAM_LIMITEDDOMAIN

Limited-domain grammar


dwFeatures

Features that are available. This member can be a combination of these values:

Value

Meaning

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; otherwise, it cannot have recursive grammars.

SRFEATURE_INDEPMICROPHONE

The engine is microphone-independent (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 PC, which provides better sound quality.

SRFEATURE_PHONEOPTIMIZED

The voice is designed to work over the telephone and uses an 8-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

Interfaces that the engine supports. This member can be a combination of these values:

Value

Meaning

SRI_ILEXPRONOUNCE

The ILexPronounce interface

SRI_ISRATTRIBUTES

The ISRAttributes interface

SRI_ISRCENTRAL

The ISRCentral interface

SRI_ISRDIALOGS

The ISRDialogs interface

SRI_ISRGRAMCOMMON

The ISRGramCommon interface

SRI_ISRGRAMCFG

The ISRGramCFG interface

SRI_ISRGRAMDICTATION

The ISRGramDictation interface

SRI_ISRGRAMINSERTIONGUI

The ISRGramInsertionGUI interface

SRI_ISRESBASIC

The ISRResBasic interface

SRI_ISRESMERGE

The ISRResMerge interface

SRI_ISRESAUDIO

The ISRResAudio interface

SRI_ISRESCORRECTION

The ISRResCorrection interface

SRI_ISRESEVAL

The ISRResEval interface

SRI_ISRESGRAPH

The ISRResGraph interface

SRI_ISRESMEMORY

The ISRResMemory interface

SRI_ISRESMODIFYGUI

The ISRResModifyGUI interface

SRI_ISRESSPEAKER

The ISRResSpeaker interface

SRI_ISRSPEAKER

The ISRSpeaker interface

SRI_ISRESSCORES

The ISRResScore interface


dwEngineFeatures

Features that are specific to the engine. These values are defined by the engine author. For more information, see the documentation for the engine.

The features provided by a given engine are defined by the engine author. An application can enumerate the engines to identify which engine is being used in order to determine the features it provides. For more information about enumerating engines, see the description of the ISREnum interface.

Although an engine can support both PC 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 member function.