Encontré la respuesta de Eric realmente útil, solo quería agregar algunos detalles más que encontré.
System.Speech.Recognition se puede utilizar para programar los reconocedores de escritorio. Los reconocedores SAPI y Desktop se han incluido en los productos:
- Windows XP: SAPI v5.1 y sin reconocedor
- Windows XP Tablet Edition: SAPI v5.1 y Recognizer v6.1
- Windows Vista: SAPI v5.3 y Recognizer v8.0
- Windows 7: SAPI v5.4 y Recognizer v8.0?
Los servidores vienen con SAPI, pero sin reconocedor:
- Windows Server 2003: SAPI v5.1 y sin reconocedor
- Windows Server 2008 y 2008 R2: SAPI v5.3? y sin reconocedor
Los reconocedores de escritorio también se han incluido en productos como Office.
- Microsoft Office 2003: Recognizer v6.1
Microsoft.Speech.Recognition se puede utilizar para programar los reconocedores del servidor. Los reconocedores de servidor se incluyen en los productos:
- Speech Server (varias versiones)
- Office Communications Server (OCS) (varias versiones)
- UCMA, que es una API administrada para OCS que (creo) incluía un reconocedor redistribuible
- Plataforma de voz del servidor de Microsoft: reconocedor v10.2
El SDK completo para la versión 10.2 de Microsoft Server Speech Platform está disponible en http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4 . El motor de voz se puede descargar gratis. La versión 11 ahora está disponible en http://www.microsoft.com/download/en/details.aspx?id=27226 .
Para obtener información y descargas de Microsoft Speech Platform SDK 11, consulte:
Los reconocedores de escritorio están diseñados para ejecutarse en proceso o compartidos. Los reconocedores compartidos son útiles en el escritorio donde los comandos de voz se utilizan para controlar cualquier aplicación abierta. Los reconocedores de servidor solo pueden ejecutar inproc. Los reconocedores de Inproc se utilizan cuando una sola aplicación usa el reconocedor o cuando es necesario reconocer archivos WAV o secuencias de audio (los reconocedores compartidos no pueden procesar archivos de audio, solo audio de dispositivos de entrada).
Solo los reconocedores de voz de escritorio incluyen una gramática de dictado (gramática proporcionada por el sistema que se utiliza para el dictado de texto libre). La clase System.Speech.Recognition.DictationGrammar no tiene complemento en el espacio de nombres Microsoft.Speech.
Puede usar el uso de las API para consultar y determinar sus recongizadores instalados
- Escritorio: System.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers ()
- Servidor: Microsoft.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers ()
Descubrí que también puedo ver qué reconocedores están instalados mirando las claves de registro:
- Reconocedores de escritorio: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Speech \ Recognizers \ Tokens
- Reconocedores de servidor: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Speech Server \ v10.0 \ Recognizers \ Tokens
--- Actualización ---
Como se explica en Reconocimiento de voz de Microsoft, ¿qué referencia debo agregar? , Microsoft.Speech es también la API utilizada para el reconocedor de Kinect. Esto está documentado en el artículo de MSDN http://msdn.microsoft.com/en-us/library/hh855387.aspx
Aquí está el enlace para la biblioteca de voz (plataforma de voz del servidor MS):
Lanzamiento de Microsoft Server Speech Platform 10.1 (SR y TTS en 26 idiomas)
fuente
Parece que Microsoft escribió un artículo que aclara las diferencias entre Microsoft Speech Platform y Windows SAPI: https://msdn.microsoft.com/en-us/library/jj127858.aspx . Una diferencia que encontré al convertir el código de reconocimiento de voz para Kinect de Microsoft.Speech a System.Speech (ver http://github.com/birbilis/Hotspotizer ) fue que el primero es compatible con las gramáticas SGRS con tag-format = semantics / 1.0- literales, mientras que el segundo no lo hace y tienes que convertir a semántica / 1.0 cambiando x por out = "x"; en las etiquetas
fuente