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

use*_*973 8 c# speech-recognition kinect

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

using Microsoft.Speech.AudioFormat;
using Microsoft.Speech.Recognition;
Run Code Online (Sandbox Code Playgroud)

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

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

Phi*_*mid 23

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

更多细节可以在MSDN上找到


Mic*_*evy 9

我认为存在一些混乱,因为您使用的是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的识别器是UCMAMicrosoft Server Speech Platform等各种服务器产品的一部分.

正如您所指出的,Microsoft.Speech也是用于Kinect识别器的API.这在MSDN链接中记载,Philipp Schmid在评论语音C#How To(Kinect)中提到.我没有和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.


Aak*_*nuj 6

您需要执行此操作,这对我有用。

从以下位置导入Microsoft.Speech.dll:

C:\Windows\assembly\GAC_MSIL\Microsoft.Speech\11.0.0.0__31bf3856ad364e35\Microsoft.Speech.dll
Run Code Online (Sandbox Code Playgroud)