2012-02-28 32 views
6

Tengo un programa con GrammarBuilders y Grammer que se utiliza en un motor SpeechRecognitionEngine para reconocer el habla. ¿Puedo, en lugar de reconocer desde el audio, usar la misma gramática para reconocer un comando tipeado (en una cadena)? Algo como commandGrammar.parse (commandString)?Gramática simple para el reconocimiento de voz

+0

+1 Idea realmente interesante. ¿Qué hay de texto a voz y luego de voz a texto? – Jason

+0

Ha pasado un año desde que jugué seriamente con las API de reconocimiento de voz (que resultó ser primitiva en el mejor de los casos), así que tal vez mi impresión y comprensión están desactualizadas, pero no es el objetivo de permitir que las gramáticas de reconocimiento de voz para reconocer una voz específica? No obtendrá eso del texto por sí mismo. –

+0

No, el punto de esta instancia es obtener una entrada basada en lógica como "hazlo en 30 segundos". El algoritmo de voz puede manejarlo bien en este momento, pero ¿qué pasa si alguien lo escribe? Debería haber una manera bastante fácil de hacer esto, creo. El reconocimiento de voz lo convierte en texto y LUEGO lo analiza, ¿verdad? –

Respuesta

3

Debe poder usar SpeechRecognitionEngine.EmulateRecognize que toma una entrada de texto en lugar de audio para reconocimientos de voz.

No estoy seguro del uso previsto, pero si esto se utiliza para algo así como un bot de chat que interactúa automáticamente con el ingreso de texto a través de mensajería instantánea o SMS, creo que encontrará gramáticas muy engorrosas de mantener y restrictivas. Recomendaría algo como Artificial Intelligence Markup Language (AIML) para manejar respuestas de texto. Es fácil de aprender y muy poderoso. En lugar de utilizar gramáticas concisas que requieren ASR, este lenguaje le permite usar comodines que son mucho más propicios para la entrada de texto. Incluso hay algunos C# open source projects que proporcionan bibliotecas para trabajar con AIML y simplifican la creación de bots de chat.

+0

Edité mi respuesta para incluir el método SpeechRecognitionEngine para usar para la entrada de texto. –

+0

Gracias por el puntero a ese método. Lo estoy usando para probar archivos de gramática a través de NUnit. –

Cuestiones relacionadas