Mic*_*evy 78 .net speech-recognition speech ucs ucma2.0
在.NET中有两个类似的名称空间和程序集用于语音识别.我试图了解这些差异以及何时适合使用其中一种.
从程序集System.Speech(在System.Speech.dll中)有System.Speech.Recognition.System.Speech.dll是.NET Framework类库3.0及更高版本中的核心DLL
还有Microsoft.Speech.Recognition来自程序集Microsoft.Speech(在microsoft.speech.dll中).Microsoft.Speech.dll是UCMA 2.0 SDK的一部分
我发现文档令人困惑,我有以下问题:
System.Speech.Recognition表示它适用于"Windows桌面语音技术",这是否意味着它不能用于服务器操作系统或不能用于大规模应用程序?
UCMA 2.0 Speech SDK(http://msdn.microsoft.com/en-us/library/dd266409%28v=office.13%29.aspx)表示它需要Microsoft Office Communications Server 2007 R2作为先决条件.但是,我在会议和会议上被告知,如果我不需要存在和工作流等OCS功能,我可以使用没有OCS的UCMA 2.0 Speech API.这是真的?
如果我正在为服务器应用程序构建一个简单的识别应用程序(假设我想自动转录语音邮件)而且我不需要OCS的功能,那么两个API之间有什么区别?
Eri*_*own 101
简短的回答是Microsoft.Speech.Recognition使用SAPI的服务器版本,而System.Speech.Recognition使用SAPI的桌面版本.
API大致相同,但底层引擎不同.通常,服务器引擎旨在接受命令和控制应用程序的电话质量音频; Desktop引擎旨在为命令和控制以及听写应用程序提供更高质量的音频.
您可以在服务器操作系统上使用System.Speech.Recognition,但它的设计规模几乎与Microsoft.Speech.Recognition不同.
不同之处在于,服务器引擎不需要培训,并且可以使用质量较低的音频,但识别质量低于桌面引擎.
Mic*_*evy 51
我发现Eric的答案非常有用,我只是想添加一些我发现的细节.
System.Speech.Recognition可用于对桌面识别器进行编程.SAPI和桌面识别器已在产品中提供:
服务器附带SAPI,但没有识别器:
桌面识别器也在办公室等产品中出货.
Microsoft.Speech.Recognition可用于对服务器识别器进行编程.服务器识别器已在产品中提供:
有关Microsoft Server Speech Platform 10.2版本的完整SDK,请访问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的信息和下载,请参阅:
桌面识别器设计用于运行inproc或共享.共享识别器在桌面上很有用,其中语音命令用于控制任何打开的应用程序.服务器识别器只能运行inproc.当单个应用程序使用该识别器,或当需要识别wav文件或音频流(共享识别器不能处理的音频文件,来自输入装置的音频只是)INPROC识别器被使用.
只有桌面语音识别器包括听写语法(系统提供的语法用于自由文本听写).System.Speech.Recognition.DictationGrammar类在Microsoft.Speech命名空间中没有补充.
您可以使用API查询确定已安装的识别器
我发现通过查看注册表项,我还可以看到安装了哪些识别器:
---更新---
正如Microsoft语音识别中所讨论的那样- 我需要添加哪些参考?,Microsoft.Speech也是用于Kinect识别器的API.这在MSDN文章http://msdn.microsoft.com/en-us/library/hh855387.aspx中有记录.
小智 7
以下是语音库(MS Server语音平台)的链接:
Microsoft Server Speech Platform 10.1发布(SR和TTS,26种语言)
似乎微软写了一篇文章,澄清了微软语音平台和 Windows SAPI 之间的差异 - https://msdn.microsoft.com/en-us/library/jj127858.aspx。我在将 Kinect 的语音识别代码从 Microsoft.Speech 转换为 System.Speech 时发现自己的一个不同之处(参见http://github.com/birbilis/Hotspotizer)是前者支持带有 tag-format=semantics/1.0- 的 SGRS 语法文字,而后者没有,您必须通过将 x 更改为 out="x" 来转换为语义/1.0;在标签