我对 C# 和 Microsoft Speech 平台都比较陌生,但我正在开发一个需要转录免费听写的服务器应用程序。MS Speech Platform SDK 看起来很完美,并且可以在服务器上运行,除非我在 GrammarBuilder 中引用 AppendDictation() 方法。
我正在使用 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.
我读过该平台的服务器版本不支持听写,但它会附带一个不起作用的方法似乎很奇怪。有没有人设法让听写语法在服务器上工作?我究竟做错了什么?
非常感谢