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.
H_PARSE_TREE_TERMINAL_ITR LVParseTree_CreateTerminalIteratorBegin(H_PARSE_TREE Tree)
H_PARSE_TREE_TERMINAL_ITR LVParseTree_CreateTerminalIteratorEnd(H_PARSE_TREE Tree)
Tree
Handle to a parse tree.
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)
Complete Help Topic List | Speech Engine Product Information