2011-08-14 17 views
7

Estoy trabajando en una pequeña aplicación de práctica utilizando el reconocedor de voz de Microsoft. Parece que no puedo reconocer palabras sueltas lo suficientemente rápido para lo que estoy haciendo. Me gustaría poder hablar normalmente y el sistema tomará "palabras clave" de lo que estoy diciendo y producirá una cadena. Actualmente estoy usando una gramática personalizada de 5 palabras. Rojo, azul, amarillo, verde, naranja. Por ejemplo, si digo Rojo azul amarillo. El motor tomará "Rojo" y el resto entrará en el vacío.Velocidad de reconocimiento de voz de Microsoft

He intentado usar los siguientes:

sr.RecognizeAsync(RecognizeMode.Single) 

se vuelve a establecer volver al modo autónomo después de la AudioState cambios a "detiene". Esto no es lo suficientemente rápido como para captar la siguiente palabra. ¿Pensamientos?

Respuesta

6

¿Has probado PauseRecognizerOnRecognition. Parece que esta función amortiguará tu entrada de audio mientras procesa el audio anterior.

Desde arriba enlace de MSDN:

Cuando PauseRecognizerOnRecognition es cierto, durante la ejecución de las manejador SpeechRecognized las pausas de servicio de reconocimiento de voz y tampones nueva entrada de audio a medida que llega. Una vez que finaliza el controlador del evento SpeechRecognized , el servicio de reconocimiento de voz reanuda el reconocimiento y comienza a procesar información desde su búfer de entrada.

+0

En conjunto con RecognizerAudioPosition pude obtener los resultados que estaba buscando. ¡Muchas gracias! –

+0

@Josh R Me alegra ser de ayuda –

+0

¿Podría mostrarme cómo consiguió que esto funcione? Estoy teniendo el mismo problema. –

Cuestiones relacionadas