首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.Speech.Recognition和Microsoft.Speech.Recognition有什么区别?

System.Speech.Recognition和Microsoft.Speech.Recognition有什么区别?
EN

Stack Overflow用户
提问于 2010-06-05 03:54:05
回答 4查看 46.7K关注 0票数 80

在.NET中有两个类似的用于语音识别的命名空间和程序集,我正在尝试了解它们之间的区别,以及何时使用其中一个是合适的。

有来自程序集System.Speech的System.Speech.Recognition (在System.Speech.dll中)。System.Speech.dll是.NET框架类库3.0及更高版本中的核心DLL

还有来自程序集Microsoft.Speech的Microsoft.Speech.Recognition (在microsoft.speech.dll中)。Microsoft.Speech.dll是UCMA2.0SDK的一部分

我发现这些文档令人困惑,我有以下问题:

System.Speech.Recognition说它是用于“Windows桌面语音技术”的,这是否意味着它不能用于服务器操作系统或不能用于大规模应用程序?

UCMA2.0 Speech SDK ( http://msdn.microsoft.com/en-us/library/dd266409%28v=office.13%29.aspx )表示,它需要Microsoft Office Communications Server2007 R2作为先决条件。然而,我在会议上被告知,如果我不需要在线状态和工作流等OCS功能,我可以在没有OCS的情况下使用UCMA 2.0 Speech API。这是真的吗?

如果我正在为服务器应用程序构建一个简单的识别应用程序(假设我想自动转录语音邮件),并且我不需要OCS的功能,那么这两个API之间有什么区别?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-06 10:39:04

简而言之,Microsoft.Speech.Recognition使用服务器版的SAPI,而System.Speech.Recognition使用桌面版的SAPI。

API基本相同,但底层引擎不同。通常,服务器引擎设计为接受命令和控制应用程序的电话质量音频;桌面引擎设计为接受命令和控制应用程序以及听写应用程序的更高质量音频。

您可以在服务器操作系统上使用System.Speech.Recognition,但它的可伸缩性不如Microsoft.Speech.Recognition。

不同之处在于,服务器引擎不需要训练,可以处理质量较低的音频,但识别质量低于桌面引擎。

票数 103
EN

Stack Overflow用户

发布于 2010-06-08 23:50:12

我发现Eric’s answer真的很有帮助,我只是想添加一些我发现的更多细节。

可以使用System.Speech.Recognition对桌面识别器进行编程。产品附带SAPI和台式机识别器:

  • Windows XP: SAPI v5.1和非recognizer
  • Windows XP平板电脑版: SAPI v5.1和识别器v6.1
  • Windows Vista: SAPIv5.3和识别器v8.0
  • Windows7:SAPIv5.4和识别器v8.0?

服务器附带SAPI,但没有识别器:

  • Windows Server2003:SAPIV5.1,没有recognizer
  • Windows
  • 2008和2008 R2: SAPIV5.3?并且没有识别器

桌面识别器也已在office等产品中提供。

  • Microsoft Office2003: Recognizer v6.1

可以使用Microsoft.Speech.Recognition对服务器识别器进行编程。产品附带服务器识别器:

服务器语音服务器(各种versions)

  • Office通信服务器( OCS ) (各种versions)

  • UCMA -这是一种用于OCS的托管应用编程接口,我相信它包括一个可再分发的recognizer

  • Microsoft 语音平台-识别器v10.2

Microsoft Server Speech Platform 10.2版本的完整软件开发工具包可以在http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4上找到。语音引擎是免费下载的。版本11现已在http://www.microsoft.com/download/en/details.aspx?id=27226上提供。

有关Microsoft Speech Platform SDK 11的信息和下载,请访问:

http://www.microsoft.com/en-us/download/details.aspx?id=27226

  • MSDN

  • 语言包- http://www.microsoft.com/en-us/download/details.aspx?id=27224

  • 运行时引擎- http://www.microsoft.com/en-us/download/details.aspx?id=27225

  • 开发工具包- packs文档-SDK

桌面识别器设计为运行inproc或共享。共享识别器在使用语音命令控制任何打开的应用程序的桌面上非常有用。服务器识别器只能运行inproc。当单个应用程序使用识别器或者需要识别wav文件或音频流时(共享识别器不能处理音频文件,只能处理来自输入设备的音频),可以使用Inproc识别器。

只有桌面语音识别器包含听写语法(系统提供的用于自由文本听写的语法)。在Microsoft.Speech命名空间中,类System.Speech.Recognition.DictationGrammar没有补充。

您可以使用API来查询并确定已安装的重定向程序

System.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers()

  • Server: Microsoft.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers()

  • 台式机

我发现我还可以通过查看注册表项来查看安装了哪些识别器:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Recognizers\Tokens

  • Server Server\v10.0\Recognizers\Tokens

桌面识别器:

  • 桌面识别器: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech Desktop识别器

-更新

正如在Microsoft Speech Recognition - what reference do I have to add?中所讨论的,Microsoft.Speech也是用于Kinect识别器的应用编程接口。这在MSDN文章http://msdn.microsoft.com/en-us/library/hh855387.aspx中有说明。

票数 53
EN

Stack Overflow用户

发布于 2010-10-02 03:02:27

以下是语音库(MS Server Speech Platform)的链接:

Microsoft Server Speech Platform 10.1 Released (SR and TTS in 26 languages)

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

https://stackoverflow.com/questions/2977338

复制
相关文章

相似问题

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