首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >微软Speech Platform 11 (服务器)上的AppendDictation?

微软Speech Platform 11 (服务器)上的AppendDictation?
EN

Stack Overflow用户
提问于 2012-02-19 14:50:08
回答 2查看 3.8K关注 0票数 9

我对C#和微软语音平台都比较陌生,但我正在开发一个服务器应用程序,它需要转录免费的口述。MS Speech Platform SDK看起来很完美,可以在服务器上工作,除非我在GrammarBuilder中引用了AppendDictation()方法。

我使用的是Microsoft Speech Platform SDK11,如果我定义了一个语法,该应用程序工作得很好,但是当我添加AppendDictation()时,我遇到了这个错误:

代码语言:javascript
复制
Cannot find grammar referenced by this grammar.

甚至文档中的这个示例似乎也失败了:

代码语言:javascript
复制
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,语法会加载(或者至少会调用事件处理程序),但是识别器会失败,并显示以下错误:

代码语言:javascript
复制
Error: At least one grammar must be loaded before doing a recognition.

我读到过该平台的服务器版本不支持口述,但奇怪的是它附带了一个根本不能工作的方法。有没有人设法让听写语法在服务器上工作?我做错了什么?

非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-01 02:01:40

对于将来可能遇到这种情况的任何人--我已经与Microsoft来回发送了电子邮件,并最终收到了以下回复:

SAPI托管接口(Microsoft.Speech和System.Speech)构建在原生

接口之上。这些接口对于服务器引擎和桌面引擎都是相同的。

但是引擎本身负责实现口述,而服务器引擎不这样做。因此,当您加载语法时,调用将失败。

不是我想要的答案,但它确实解释了这一点。

票数 11
EN

Stack Overflow用户

发布于 2012-07-05 12:01:15

如果你使用System.Speech,你可以用_recognizer.LoadGrammar(new DictationGrammar());加载你的语法,它会工作的很好。识别效果还不错,但必须使用16 The波形文件或其他兼容的波形文件配置。遗憾的是,Microsoft.Speech不支持DictationGrammar()

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9347346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档