Problema con SpeechRecognition C#

totespare

Yep!

Pues veréis, estoy intentando hacer una chorrada de bot con Speech recognition y Text to speech, todo en C# con la API de Speach de .NET.

El tema es que si hago una aplicación de consola todo va de puta madre. Dentro del main tengo el tipico bucle para que no se me chape la aplicación y uso el SpeechRecognitionEngine.RecognizeAsync(RecognizeMode.Multiple); para escuchar, y tengo añadido el handler del SpeechRecognized. Funciona genial.

Ahora si me lo hago en una aplicación de WPF, no se si no comprendo cómo funciona por debajo WPF con el tema de hilos, pero la app no es capaz de triggerear el handler al hablar. Si hago un EmulateRecognize("test") el handler funciona y todo correcto, pero con la voz no es capaz. He probado con dos diccionarios, uno genérico, el cual con el Emulate me saca todas las palabras, y uno hecho a mano, donde el Emulate sólo funciona cuando le meto palabras que están indexadas (lógicamente). Esto último me dice que no hay problema con el Recognizer en sí, o eso creo.

Yo soy de pensar que es problema de hilos, porque el form mantendrá el suyo propio y alomejor pisa el del recognizer o algo raro... Porque usando el Main en la aplicación de consola funciona bien, así que no se, intuyo que es algo de ese tema...

Si alguien me puede echar un cable... ;)

Código del de consola: https://pastebin.com/cwV762dT
Código del de WPF: https://pastebin.com/JXp1nTK9

totespare

:(

Foxtreme

#1 A mi me funciona el handler con el código que has puesto, aunque en inglés (no tengo instalada voz ni reconocimiento españoles).

Puede ser que hayas creado un proyecto de Windows Forms en vez de WPF?

3 respuestas
totespare

#3 hmm pues juraria que es wpf asi de memoria (estoy en la cama ya xD). Mañana te lo confirmo. Lo tengo en español también, pero no creo que sea el problema, porque en la aplicacion de consola me tira bien.

Gracias por contestar!

totespare

#3 pues parece que era windows forms si, no se por qué pensaba que por defecto una Desktop App del visual era WPF, pero no, hay que especificarlo... Voy a probar a ver si así me tira

totespare

Hostia doblepost, mierda de wifi

PD. triplepost xd

totespare

#3 sorry por el cuádruple post, pero ya he probado con WPF y me ocurre lo mismo... Tú lo has probado con WPF? Podrías pasarme el proyecto zipeado para que lo pruebe yo? Por si fuera mi micro o algo de mi sonido xD

1 respuesta
Foxtreme

#7 https://mega.nz/#!7QMVlKrY!cY8499BiM29Tjm9HsPn11mX30Cl0SfBGTlPxua6Co2s

2 respuestas
totespare

#8 mañana lo miro, muchas gracias!

totespare

#8 pues lo he probado y no me reconoce nada por voz... El speak funciona bien, o sea, la máquina habla guay, pero cuando yo le hablo, el handler "engine_SpeechRecognized" no salta. A ti sí? Joder es que es muy raro... Me he instalado tu idioma y la voz incluso, y nada...

totespare

Bueno, encontré el problema, y era que estaba lanzando la escucha de la conexión/mensajes en el hilo principal de WPF, y no en uno aparte. Yo pensaba que el propio socket abria el hilo automáticamente, pero parece que no.

Usuarios habituales

  • totespare
  • Foxtreme