LVParseTree_CreateTerminalIteratorBegin
LVParseTree_CreateTerminalIteratorEnd

LVParseTree_CreateTerminalIteratorBegin and LVParseTree_CreateTerminalIteratorEnd provide access to the "terminals" of the tree.  Terminals are the words and phrases in your grammar, so a TerminalIterator gives you access the the exact words the speech engine heard a speaker say to match a grammar, in the order that the Speech Engine heard those words.

Functions

H_PARSE_TREE_TERMINAL_ITR LVParseTree_CreateTerminalIteratorBegin(H_PARSE_TREE Tree)

H_PARSE_TREE_TERMINAL_ITR LVParseTree_CreateTerminalIteratorEnd(H_PARSE_TREE Tree)

Parameters

Tree

Handle to a parse tree.

Example

The following code prints out the sentence Speech Engine heard, with a word-level confidence score attached to each word.

H_PARSE_TREE_TERMINAL_ITR Itr;
H_PARSE_TREE_TERMINAL_ITR End;
H_PARSE_TREE_NODE Node;

Itr = LVParseTree_CreateTerminalIteratorBegin(Tree);
End = LVParseTree_CreateTerminalIteratorEnd(Tree);

while (!LVParseTree_TerminalIterator_AreEqual(Itr,End))
{
     Node = LVParseTree_TerminalIterator_GetNode(Itr);
     printf("\"%s\":(%i)\n",LVParseTree_Node_GetText(Node),
                            LVParseTree_Node_GetScore(Node));
     LVParseTree_TerminalIterator_Advance(Itr);
}
printf("\n");

LVParseTree_TerminalIterator_Release(Itr);
LVParseTree_TerminalIterator_Release(End);

/* Note: Node handles don't get released; They are part of the tree,
   and the tree releases them when it gets released */

So if the grammar being used was the top level navigation example grammar, and the Speech Engine recognized "go back", then the output of the above code might look like:

"go":(850) "back":(901)

See Also


Complete Help Topic List | Speech Engine Product Information