2017-02-17 4 views
0

Я пытаюсь использовать распознаватель грамматики Windows 10 из единицы, но это ничего не обнаруживает.распознавание грамматики единства не работает

private GrammarRecognizer grammarRecognizer; 

на функцию запуска у меня есть:

grammarRecognizer = new GrammarRecognizer(Application.streamingAssetsPath + "/SRGS/myGrammar.xml", ConfidenceLevel.Low); 
grammarRecognizer.OnPhraseRecognized += grammarRecognizer_OnPhraseRecognized; 
grammarRecognizer.Start(); 

У меня также есть эта функция:

void grammarRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args) 
{ 
    System.Action keywordAction; 
    Debug.Log("word said: " + args.text + " - conf: " + args.confidence); 
    if (args.confidence >= ConfidenceLevel.Medium) 
     Debug.Log("Confidence is low"); 
    print(args.semanticMeanings); 
} 

но предыдущая функция никогда не вызывается, потому что он никогда не признавая ничего. У меня есть эта грамматика:

<grammar version="1.0" xml:lang="en-US" root="playCommands" 
xmlns="http://www.w3.org/2001/06/grammar"> 

    <rule id="playCommands"> 
    <ruleref uri="#playAction" /> 
    <item> the </item> 
    <ruleref uri="#fileWords" /> 
    </rule> 

    <rule id="playAction"> 
    <one-of> 
     <item> play </item> 
     <item> start </item> 
     <item> begin </item> 
    </one-of> 
    </rule> 

    <rule id="fileWords"> 
    <one-of> 
     <item> song </item> 
     <item> tune </item> 
     <item> track </item> 
     <item> item </item> 
    </one-of> 
    </rule> 
</grammar> 

ответ

0

Попробуйте снять пробелы вокруг слов в тегах. Это исправило это для меня.

Смежные вопросы