Microsoft语音识别 – 我需要添加哪些参考?

我正在尝试制作一个使用Microsoft语音识别API(使用Kinect)的C#程序,但我很难开始使用。 我有使用声明

using Microsoft.Speech.AudioFormat; using Microsoft.Speech.Recognition; 

但它给我的错误是“类型或命名空间名称’Speech’在名称空间’Microsoft’中不存在。你错过了程序集引用吗?”

有谁知道要添加什么? System.Speech没有做到这一点。

确保将此程序集添加到项目中:C:\ Program Files \ Microsoft SDKs \ Speech \ v11.0 \ Assembly \ Microsoft.Speech.dll。

更多细节可以在MSDN上找到

我认为存在一些混乱,因为您使用的是Kinect SDK,这里的一些答案涉及相关的SDK(System.Speech在.net和Microsoft.Speech中随各种Microsoft服务器产品和服务器语音平台一起分发) 。 根据您在其他答案中的评论,似乎Kinect SDK使用Microsoft.Speech命名空间,您的应用程序必须引用Kinect SDK附带的Microsoft.Speech.dll。

只是为了澄清一些事情(我希望):

System.Speech是一个核心.net API和实现它的识别器包含在Windows 7中。它是一个客户端或桌面识别器,可以针对特定用户进行培训,并包含一个听写语法。

Microsoft.Speech是一个类似的.net API,但有点不同。 支持Microsoft.Speech的识别器是各种服务器产品的一部分,如UCMA和Microsoft服务器语音平台 。

正如您所指出的,Microsoft.Speech也是用于Kinect识别器的API。 这一点记录在Philipp Schmid在评论语音C#How To(Kinect)中提到的MSDN链接中。 我没有和Kinect合作,但这是有道理的,因为识别器不需要演讲者培训。

这些资源有点过时,因为早于Kinect,但它们可能会有所帮助:

Microsoft.Speech和System.Speech类似,但不同。 请参阅System.Speech.Recognition和Microsoft.Speech.Recognition之间的区别是什么?

要开始使用.NET语音,几年前在http://msdn.microsoft.com/en-us/magazine/cc163663.aspx上发表了一篇非常好的文章。 这可能是迄今为止我发现的最好的介绍性文章。 它有点过时了,但非常好。 (测试结束后删除了AppendResultKeyValue方法。)本文展示了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