SRRESWORDNODE

typedef struct { // srrwn
DWORD dwNextWordNode;
DWORD dwUpAlternateWordNode;
DWORD dwDownAlternateWordNode;
DWORD dwPreviousWordNode;
DWORD dwPhonemeNode;
QWORD qwStartTime;
QWORD qwEndTime;
DWORD dwWordScore;
WORD wVolume;
WORD wPitch;
VOICEPARTOFSPEECH pos;
DWORD dwCFGParse;
DWORD dwCue;
} SRRESWORDNODE, *PSRRESWORDNODE;

Provides information about a word node in a recognition/alternative graph generated by a speech-recognition engine.

dwNextWordNode

Node number of the node that follows next in time. For example, if the current node contains "Mail," the next node would contain "To." If the next node has several alternatives, this pointer should continue along the path that produces the highest path score at the final node. If there is nothing left in the path, this can be NULL.

dwUpAlternateWordNode

Number of an alternative node with a higher score than that of the word in this node. For example, if this node contains "Nail," the alternative node might contain "Mail." The alternative nodes should be ordered according to the highest word score. If there are no more alternatives, this can be NULL.

dwDownAlternateWordNode

Number of an alternative node with a lower score than that of the word in this node. For example, if this node contains "Mail," the alternative node might contain "Nail." The alternative nodes should be ordered according to the highest word score. If there are no more alternatives, this can be NULL.

dwPreviousWordNode

Node number of the previous node. If there are several previous nodes, this maps back along the highest path score at the final node. If there is nothing before this in the path, this can be NULL.

dwPhonemeNode

Node number of the first phoneme in the word. If an engine doesn't support phonemes or if such a mapping is inappropriate, this should be NULL.

qwStartTime

Time stamp, in bytes, when the audio for this node started. If the value is indeterminate, this is zero.

qwEndTime

Time stamp, in bytes, when the audio for this node ended. If the value is indeterminate, this is zero.

dwWordScore

Score for this individual word. It is valid to compare this score only against the scores of this word's alternatives. Engines should make this value a linear probability if possible. If an engine doesn't know the value, this is zero.

wVolume

Linear volume level of the word, from 1 to 0xFFFF. If the engine doesn't know the volume, this should be zero. Applications can use this information to determine emphasis or sentence type (for example, question or command) or to do transplanted prosody.

wPitch

Average pitch of the word in hertz. Engines that do not have information about this value set it to zero. Applications can use this information to determine emphasis or sentence type (for example, question or command) or to do transplanted prosody.

pos

Part of speech of the word, if known.

dwCFGParse

Unique identifier of the rule used to parse the word. This is the rule identifier from the SRCFGRULE structure that defines the rule in the grammar. (This member is valid only for context-free grammars.)

If an imported rule was used to parse the word, dwCFGParse contains the unique rule identifier from the SRCFGIMPRULE structure that defines the imported rule in the grammar. An application can use this information to determine the semantics of a word and save itself the work of parsing the tree. For example, suppose the context-free grammar contains the follow rules:

1 = SEQ(Send mail to 2)

2 = ALT(Mike, Bob, Fred)

If the engine recognizes "Send mail to Bob," the value of dwCFGParse would be 1 (for "Send mail to") and 2 (for "Bob").

dwCue

Cue that the engine has recognized but cannot translate into a word string. A node with a cue may not have a word associated with it. An engine is not required to return cues so an application should not expect them, although it should take advantage of cues that are returned. This member can be one of these values.

Value

Meaning

SRRESCUE_COMMA

A comma should go here.

SRRESCUE_DECLARATIVEBEGIN

A declarative sentence has begun. This cue must be followed by a closing SRRESCUE_DECLARATIVEEND.

SRRESCUE_DECLARATIVEEND

A declarative sentence has ended.

SRRESCUE_IMPERATIVEBEGIN

An imperative sentence has begun. This cue must be followed by a closing SRRESCUE_IMPERATIVEEND.

SRRESCUE_IMPERATIVEEND

An imperative sentence has ended.

SRRESCUE_INTERROGATIVEBEGIN

An interrogative sentence has begun. This cue must be followed by a closing SRRESCUE_INTERROGATIVEEND.

SRRESCUE_INTERROGATIVEEND

An interrogative sentence has ended.

SRRESCUE_NOISE

A noise has occurred.

SRRESCUE_PAUSE

The speaker has paused.

SRRESCUE_SENTENCEBEGIN

A sentence has begun. This cue must be followed by a closing SRRESCUE_SENTENCEEND. If the engine has identified the sentence as interrogative, declarative, or imperative, it should use the more specific SRRESCUE_INTERROGATIVEBEGIN, SRRESCUE_DECLARATIVEBEGIN, or SRRESCUE_IMPERATIVEBEGIN cues.

SRRESCUE_SENTENCEEND

A sentence has ended. If the engine has identified the sentence as interrogative, declarative, or imperative, it should use the more specific SRRESCUE_INTERROGATIVEEND, SRRESCUE_DECLARATIVEEND, or SRRESCUE_IMPERATIVEEND cues.

SRRESCUE_UM

The speaker has said a nonsense sound, such as "Um."

SRRESCUE_WILDCARD

This is a placeholder for a wildcard word in a context-free grammar.

SRRESCUE_WORD

The node contains a word.