2010-09-09 20 views
0

Dans le cas suivant qui peut être chargé dans MS SAPI 5.1:Comment définir OPT programme avec MS SAPI

<GRAMMAR LANGID="409"> 
    <RULE NAME="top rule" TOPLEVEL="ACTIVE"> 
     <OPT>hello</OPT> 
     <P>my name is fred</P> 
    </RULE> 
</GRAMMAR> 

Comment puis-je faire la même programme, notamment en ce qui concerne l'élément facultatif.

Je suppose qu'il est fait ici:

state.AddWordTransition(nextState, "hello", " ", SpeechGrammarWordType.SGLexical, s, id, ref propValue, 1F); 

... et il est probablement le propValue. Mais quelle est la syntaxe (par exemple, propValue = "OPT = true" - ne fonctionne pas bien sûr)

Merci!

Répondre

0

mots en option ont besoin d'un epsilon (vide) transition vers l'état suivant, il faut donc ajouter:

state.AddWordTransition(nextState, NULL, NULL, SpeechGrammarWordType.SGLexical, s, id, ref propValue, 1F); 

pour ajouter la transition epsilon.

+0

Je ne pouvais pas trouver cela dans les documents MS. – tom

+0

Merci beaucoup! – tom

+0

C'est en quelque sorte implicite dans l'instruction 'Si psz est NULL, un arc epsilon sera ajouté.' –