我正在使用Microsoft.Speech.Recognition
并且需要使用相当大的语法来完成识别任务。因此,我创建并稍后将语法修改为 a SrgsDocument
,然后Grammar
从中构造一个对象。此时,我将语法加载到引擎中,以准备使用该SpeechRecognitionEngine.LoadGrammar
方法进行识别。
换句话说,我有类似的东西:
SpeechRecognitionEngine sre = new SpeechRecognitionEngine();
SrgsDocument gramDoc = new SrgsDocument();
//...modify the SrgsDocument (add rules, etc.)
Grammar gram = new Grammar(gramDoc);
sre.LoadGrammar(gram);
在这一点上,加载语法,几分钟后我有时(并非总是,并且不是真正作为语法大小的函数)收到错误“任务无法完成,因为 SR 引擎已超时。”
如果我捕捉到异常并尝试再次将相同的语法加载到同一个引擎中,有时它会成功加载(尽管非常缓慢),有时它会再次给出相同的错误。
这是什么原因造成的?为什么有时会超时,有时会使用相同的语法/引擎?
我能做些什么来加快语法加载速度吗?
任何想法都会非常感激。