我正在尝试制作一个使用 Microsoft Speech Recognition API(使用 Kinect)的 C# 程序,但我很难开始。我有使用语句
using Microsoft.Speech.AudioFormat;
using Microsoft.Speech.Recognition;
但它给了我错误“名称空间'Microsoft'中不存在类型或名称空间名称'Speech'。您是否缺少程序集引用?”
有谁知道要添加什么?System.Speech 不能解决问题。
我正在尝试制作一个使用 Microsoft Speech Recognition API(使用 Kinect)的 C# 程序,但我很难开始。我有使用语句
using Microsoft.Speech.AudioFormat;
using Microsoft.Speech.Recognition;
但它给了我错误“名称空间'Microsoft'中不存在类型或名称空间名称'Speech'。您是否缺少程序集引用?”
有谁知道要添加什么?System.Speech 不能解决问题。
确保将此程序集添加到您的项目中:C:\Program Files\Microsoft SDKs\Speech\v11.0\Assembly\Microsoft.Speech.dll。
更多细节可以在MSDN上找到
我认为存在一些混淆,因为您使用的是 Kinect SDK,这里的一些答案与相关的 SDK(.net 中的 System.Speech 和随各种 Microsoft 服务器产品和服务器语音平台一起分发的 Microsoft.Speech)有关. 从您在其他答案中的评论看来,Kinect SDK 使用 Microsoft.Speech 命名空间,并且您的应用程序必须引用 Kinect SDK 附带的 Microsoft.Speech.dll。
只是为了帮助澄清一些事情(我希望):
System.Speech 是核心 .net API 和实现它的识别器,包含在 Windows 7 中。它是客户端或桌面识别器,可以针对特定用户进行培训,并包括听写语法。
Microsoft.Speech 是一个类似但有点不同的 .net API。实现 Microsoft.Speech 的识别器是各种服务器产品的一部分,例如UCMA和Microsoft Server Speech Platform。
正如您所指出的,Microsoft.Speech 也是用于 Kinect 识别器的 API。这记录在评论Speech C# How To (Kinect)中提到的 MSDN 链接 Philipp Schmid 中。我没有使用过 Kinect,但这是有道理的,因为识别器不需要说话者培训。
这些资源有点过时,因为早于 Kinect,但它们可能会有所帮助:
Microsoft.Speech 和 System.Speech 相似,但不同。请参阅System.Speech.Recognition 和 Microsoft.Speech.Recognition 有什么区别?
要开始使用 .NET 演讲,几年前在http://msdn.microsoft.com/en-us/magazine/cc163663.aspx上发表了一篇非常好的文章。这可能是迄今为止我发现的最好的介绍性文章。它有点过时了,但很有帮助。(AppendResultKeyValue 方法在 beta 之后被删除。)本文展示了 System.Speech 命名空间,但其中大部分可以直接映射到 Microsoft.Speech。
你需要这样做,这对我有用。
从以下位置导入 Microsoft.Speech.dll:
C:\Windows\assembly\GAC_MSIL\Microsoft.Speech\11.0.0.0__31bf3856ad364e35\Microsoft.Speech.dll
请尝试使用System.Speech.Recognition
命名空间。Microsoft.Speech.Recognition
命名空间是 Office Communications Server 产品的一部分。
帮助链接:System.Speech.Recognition
Office Communications Server(UCMA 应用程序)UCMA 语音 SDK