Я относительно новичок как в C #, так и в платформе Microsoft Speech, но я работаю над серверным приложением, которое должно будет транскрибировать диктовку бесплатно. MS Speech Platform SDK казался идеальным и работает на сервере, если я не ссылаюсь на метод AppendDictation () в GrammarBuilder.
Я использую Microsoft Speech Platform SDK 11, и приложение работает нормально, если я определяю грамматику, но в тот момент, когда я добавляю в AppendDictation (), я сталкиваюсь с этой ошибкой:
Cannot find grammar referenced by this grammar.
Даже этот образец из документации кажется, не работает:
GrammarBuilder startStop = new GrammarBuilder();
GrammarBuilder dictation = new GrammarBuilder();
dictation.AppendDictation();
startStop.Append(new SemanticResultKey("StartDictation", new SemanticResultValue("Start Dictation",true)));
startStop.Append(new SemanticResultKey("DictationInput", dictation));
startStop.Append(new SemanticResultKey("StopDictation", new SemanticResultValue("Stop Dictation", false)));
Grammar grammar=new Grammar(startStop);
grammar.Enabled=true;
grammar.Name=" Free-Text Dictation ";
_recognizer.LoadGrammar(grammar);
Как ни странно, если я изменяю LoadGrammar на LoadGrammarAsync, грамматика загружается (или, по крайней мере, вызывается обработчик событий), но затем распознаватель выдает следующую ошибку:
Error: At least one grammar must be loaded before doing a recognition.
Я читал, что версия сервера платформы не поддерживает диктовку, но кажется странным, что она поставляется с методом, который просто не работает. Кому-нибудь удалось заставить работать грамматику диктовки на сервере? Что я делаю не так?
Большое спасибо