首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SAPI 5.4转换为SAPI 5.1

从SAPI 5.4转换为SAPI 5.1
EN

Stack Overflow用户
提问于 2013-01-17 08:36:27
回答 1查看 360关注 0票数 0

所以我正在写一个小工具来做语音识别。我刚开始使用SAPI 5.4,并使用SRGS xml文件来设置语法。它运行得非常好。我的所有命令都很容易被识别。然而,我试图让这个东西在XP上运行,但我遇到了麻烦。我使用以下代码来读入我现有的xml文件:

代码语言:javascript
复制
listener = New SpSharedRecoContext()
AddHandler listener.Recognition, AddressOf Handle_Speech
Dim grammar As ISpeechRecoGrammar
grammar = listener.CreateGrammar()
grammar.CmdLoadFromFile(Utilities.INI.ConfigPath & "\Voice_Commands.xml")
grammar.CmdSetRuleIdState(0, SpeechRuleState.SGDSActive)

然而,SAPI 5.1在识别命令方面的性能要比5.4差得多。首先,它会启动一个你必须打开的外部监听应用程序(我想这还不算太糟)。但我认为主要的问题是,当我说话时,监听器将开始进行操作系统操作(打开文件夹等);因此,显然它监听的不仅仅是我预定义的一组命令。

有人知道如何让SAPI 5.1像5.4那样运行吗?

谢谢,

伊恩

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-02 02:32:30

您确定这是XP吗?你描述的行为听起来像是在运行Windows语音识别,它只在Vista或更高版本上运行。

您需要进程内识别器(SpInProcRecoContext),而不是共享识别器。这需要一些工作来初始化(你需要附加一个引擎和音频源)。我在我的blog上写了一点,但我使用了原生API来完成。

最后,XP上的SR引擎确实不如Vista及更高版本中的SR引擎好。毕竟,XP SR引擎已经有十多年的历史了。

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

https://stackoverflow.com/questions/14370387

复制
相关文章

相似问题

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