Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Meta en 26 Diciembre 2016, 02:16 am



Título: Probando pimera fase interfaz PC por voz
Publicado por: Meta en 26 Diciembre 2016, 02:16 am
Hola todos y a todas:

Estoy en primera fase haciendo una interfaz con Visual C# (ya se hará lo mismo para Visual Basic .net) reconocimento por voz usando cascos con micro.

Este ejemplo que puedes descargar solo hace lo siguiente, decir palabras, como: Azul, izquierda, siete, salir, palabras de ese tipo que con el micro intenta reconocer una palabra.

Quiero que prueben este programa en fase alfa todavía, si les funcione me cuentan sus experiencias o primera impresión y si les interesa.

(http://www.subeimagenes.com/img/puerto-serie-c-1687586.png)

Mi idea principal es: Controlar Arduino con su LCD, si dices amarillo, el cuadro se pone en amarillo del programa y aparece esa palabra en el LCD de Arduino. Cada palabra que digas en el programa, lo refrejará Arduino con el LCD. A parte de esto, se ampliarán funciones como encender un LEd y apagarlo con la voz.

Es un proyecto tonto de experimentación y lo hago como curiosidad, usando el puerto serie del PC.

Descargar (http://forum.arduino.cc/index.php?action=dlattach;topic=443724.0;attach=191960) programa.

Felices fiestas 2016.


Título: Re: Probando pimera fase interfaz PC por voz
Publicado por: engel lex en 26 Diciembre 2016, 02:30 am
que tecnicas usas para el reconocimiento de palabras?


Título: Re: Probando pimera fase interfaz PC por voz
Publicado por: Eleкtro en 26 Diciembre 2016, 07:14 am
Hola. @Meta, si un programa no incluye código fuente, por cuestiones de seguridad no se permite que sea publicado en los foros de programación (no lo pone en las reglas, pero así lo acordamos el Staff en el pasado).

que tecnicas usas para el reconocimiento de palabras?

Si está desarrollado bajo .NET, sería lógico pensar que probablemente ha debido recurrir a la tecnología de Microsoft Speech Recognition, ya que es lo más común en estos casos (y bien sencillo de implementar):
  • Get Started with Speech Recognition (https://msdn.microsoft.com/en-us/library/office/hh361683%28v=office.14%29.aspx)
  • Microsoft.Speech.Recognition Namespace (https://msdn.microsoft.com/en-us/library/microsoft.speech.recognition.aspx)

Quizás no haya sido así.

Saludos


Título: Re: Probando pimera fase interfaz PC por voz
Publicado por: engel lex en 26 Diciembre 2016, 07:18 am
pensé que el zip contenia el codigo fuente, no lo revisé (es .net y probablemente poco comprenda)

el Microsoft Speech Recognition es efectivo con otros idiomas (fuera del inglés)? es tan efectivo como el reconocimiento de voz de google?


Título: Re: Probando pimera fase interfaz PC por voz
Publicado por: Eleкtro en 26 Diciembre 2016, 07:24 am
el Microsoft Speech Recognition es efectivo con otros idiomas (fuera del inglés)?

Según Microsoft, los lenguajes soportados nativamente por el motor de la tecnología de Microsoft Speech Recognition son los siguientes:

  • Inglés
  • Frances
  • Español
  • Alemán
  • Japonés
  • Chino simplificado y Chino Tradicional.

El nivel de eficiencia lo es tanto como lo que se puede apreciar sin el uso de la programación, me refiero, a nivel de usuario haciendo uso solamente de las características de reconocimiento de voz de Windows, en Español. Mi opinión personal es que el diccionario de Español está a la altura del Inglés.

es tan efectivo como el reconocimiento de voz de google?

Lo desconozco, pero la Speech API de Google al parecer es de pago:
  • https://cloud.google.com/speech/

Saludos!


Título: Re: Probando pimera fase interfaz PC por voz
Publicado por: engel lex en 26 Diciembre 2016, 07:30 am
sobre el de google, si tienes un telefono android, solo presiona el simbolo de microfono y hablale, puedes incluso usas terminos en inglés y tiende a acertarlos en casi 100%


Título: Re: Probando pimera fase interfaz PC por voz
Publicado por: Meta en 26 Diciembre 2016, 09:48 am
Hola a todos y a todas:

No he puesto el código fuente porque está en constante proceso y estilo chapuza. No significa que no lo ponga cuando acabe. No se preocupen, lo pondé si o si el código fuente en el futuro. El que uso es en español y hay que indicarlo así:

Código
  1. using (
  2.      SpeechRecognitionEngine recognizer =
  3.        new SpeechRecognitionEngine(
  4.          new System.Globalization.CultureInfo("es-ES")))
  5.      {

https://msdn.microsoft.com/es-es/library/system.speech.recognition.speechrecognitionengine(v=vs.110).aspx (https://msdn.microsoft.com/es-es/library/system.speech.recognition.speechrecognitionengine(v=vs.110).aspx)

Les dejo el código fuente en modo consola C#. Puedes hacer prueba rápida.
Código
  1. using System;
  2. using System.Speech.Recognition; // No olvidar. Micro.
  3. using System.Speech.Synthesis; // No olvidar. Altavoz.
  4.  
  5. namespace Reconocimiento_voz_consola_04
  6. {
  7.    class Program
  8.    {
  9.        static void Main(string[] args)
  10.        {
  11.            Console.Title = "Reconocimiento voz 04"; // Título de la ventana.
  12.            Console.WriteLine(" Empiece a dar la lengua.");
  13.  
  14.            // Cree un reconocedor de voz en proceso para la configuración regional en-US.
  15.            using (SpeechRecognitionEngine micro = new SpeechRecognitionEngine(
  16.                new System.Globalization.CultureInfo("es-ES")))
  17.            {
  18.  
  19.                // Cree y cargue una gramática de dictado.
  20.                micro.LoadGrammar(new DictationGrammar());
  21.  
  22.                // Agregue un controlador para el evento de reconocimiento de voz.
  23.                micro.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
  24.  
  25.                // Configure la entrada al reconocedor de voz.
  26.                micro.SetInputToDefaultAudioDevice();
  27.  
  28.                // Inicie el reconocimiento de voz continuo asíncrono.
  29.                micro.RecognizeAsync(RecognizeMode.Multiple);
  30.  
  31.                // Mantenga abierta la ventana de la consola.
  32.                while (true)
  33.                {
  34.                    Console.ReadLine();
  35.                }
  36.            }
  37.        }
  38.  
  39.        // Maneje el evento SpeechRecognized.
  40.        static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
  41.        {
  42.            Console.WriteLine("Texto reconocido: " + e.Result.Text);
  43.  
  44.            string palabras = e.Result.Text;
  45.  
  46.            // Inicializar una nueva instancia de SpeechSynthesizer.
  47.            using (SpeechSynthesizer altavoz = new SpeechSynthesizer())
  48.            {
  49.                // Configure la salida de audio.
  50.                altavoz.SetOutputToDefaultAudioDevice();
  51.  
  52.                switch (palabras)
  53.                {
  54.                    case "enciende la luz uno":
  55.                        Console.WriteLine("Luz 1 encendida.");
  56.                        altavoz.Speak("Encendiendo luz 1.");
  57.                        break;
  58.  
  59.                    case "apaga la luz uno":
  60.                        Console.WriteLine("Luz 1 apagada.");
  61.                        altavoz.Speak("Apagando luz 1.");
  62.                        break;
  63.  
  64.                    case "enciende ventilador uno":
  65.                        Console.WriteLine("Ventilador 1 encendido.");
  66.                        altavoz.Speak("Encendiendo ventilador 1.");
  67.                        break;
  68.  
  69.                    case "apaga ventilador uno":
  70.                        Console.WriteLine("Ventilador 1 apagado.");
  71.                        altavoz.Speak("Apagando ventilador 1.");
  72.                        break;
  73.                }
  74.            }
  75.        }
  76.    }
  77. }

Siguiendo avanzando.

Versión 0.02.
Mostrar nivel de audio en una barra de progreso.

(http://www.subeimagenes.com/img/puerto-serie-c-1688402.png)

Descargar (http://forum.arduino.cc/index.php?action=dlattach;topic=443724.0;attach=192182)

Pueden avisarme sus experiencias y primera impresión de si realmente el programa les funciona. No escucha perfecto.

Felices fiestas 2016.