2012-04-03 7 views
6

Estoy tratando de hacer un programa C# que use la API de reconocimiento de voz de Microsoft (con Kinect) pero me cuesta empezar. tengo las declaraciones usandoReconocimiento de voz de Microsoft: ¿qué referencia debo agregar?

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

Pero me da el error "el tipo o espacio de nombres 'Speech' no existe en el espacio de nombres 'Microsoft'. ¿Falta una referencia de ensamblado?"

¿Alguien sabe qué agregar? System.Speech no funciona.

+1

¿Ha agregado la referencia a la DLL de API de Microsoft Reconocimiento de voz o proyecto a su proyecto? – Alexandre

+0

Consulte http://SpeechTurtle.codeplex.com para ver un proyecto que funciona con y sin Kinect y Microsoft. Discurso para manejar una tortuga usando su voz (basado en una muestra Kinect SDK). La versión actual es para 1.8 SDK (Kinect para Xbox 360 y Kinect para Windows v1), planee actualizarlo para que funcione con 2.0 SDK también (mediante el complemento MEF) en el futuro (para que también sea compatible con KfW v2 y Kinect para Xbox One) cuando obtener el Kinect más nuevo para Xbox One y el adaptador para Windows –

Respuesta

18

Asegúrese de añadir esta asamblea a su proyecto: C: \ Archivos de programa \ Microsoft SDKs \ Speech \ v11.0 \ Asamblea \ Microsoft.Speech.dll.

Más detalles se pueden encontrar en MSDN

+1

No lo he probado, pero debería funcionar en 64 bits. –

1

Pruebe el espacio de nombre System.Speech.Recognition en su lugar. El espacio de nombre Microsoft.Speech.Recognition es parte del producto Office Communications Server.

enlace

Ayuda: System.Speech.Recognition

Office Communications Server (UCMA Aplicación) UCMA Speech SDK

+0

Estoy siguiendo más o menos [este] (http://www.ximplosionx.com/2011/06/22/intro-to-the-kinect-sdkadding-speech- reconocimiento /) guía. ¿Está eso desactualizado? Pensé que Microsoft.Speech y System.Speech estaban separados? – user1002973

+0

@ user1002973 - Editado. –

+0

Microsoft.Speech y System.Speech son similares, pero diferentes. Consulte http://stackoverflow.com/questions/2977338/what-is-the-difference-between-system-speech-recognition-and-microsoft-speech-re –

8

Creo que hay cierta confusión porque está utilizando el SDK de Kinect y algunas de las respuestas consideran aquí los SDK relacionados (System.Speech en .NET y que Microsoft.Speech se distribuye con una variedad de productos de servidor de Microsoft y la plataforma de voz del servidor). De sus comentarios en las otras respuestas, parece que Kinect SDK utiliza el espacio de nombres Microsoft.Speech y su aplicación debe hacer referencia al Microsoft.Speech.dll que viene con Kinect SDK.

sólo para ayudar a aclarar algunas cosas (espero):

System.Speech es una API .NET núcleo y un reconocedor que implementa se incluye en Windows 7. Se trata de un reconocedor de cliente o de escritorio y puede capacitarse para usuarios específicos e incluye una gramática de dictado.

Microsoft.Speech es una API .net que es similar, pero un poco diferente. Los reconocedores que impliquen Microsoft.Speech son parte de varios productos de servidor como UCMA y Microsoft Server Speech Platform.

Como señala, Microsoft.Speech es también la API utilizada para el reconocedor Kinect. Esto está documentado en el enlace de MSDN Philipp Schmid mencionado en un comentario Speech C# How To (Kinect). No he trabajado con Kinect, pero esto tiene sentido ya que el reconocedor no requiere el entrenamiento del hablante.

Estos recursos son un poco fuera la fecha, debido a que el Kinect son anteriores, pero pueden ser útiles:

Microsoft.Speech y System.Speech son similares, pero diferentes. Ver What is the difference between System.Speech.Recognition and Microsoft.Speech.Recognition?

Para comenzar con .NET speech, hay un artículo muy bueno que se publicó hace unos años en http://msdn.microsoft.com/en-us/magazine/cc163663.aspx. Es probablemente el mejor artículo introductorio que he encontrado hasta ahora. Está un poco desactualizado, pero muy helfpul. (El método AppendResultKeyValue se descartó después de la versión beta). Este artículo muestra el espacio de nombres System.Speech, pero la mayoría se puede asignar directamente a Microsoft.Speech.

4

Tienes que hacer esto, que funciona para mí.

importación Microsoft.Speech.dll de la siguiente ubicación:

C:\Windows\assembly\GAC_MSIL\Microsoft.Speech\11.0.0.0__31bf3856ad364e35\Microsoft.Speech.dll 
Cuestiones relacionadas