Probando pimera fase interfaz PC por voz

Iniciado por Meta, 26 Diciembre 2016, 02:16 AM

0 Miembros y 2 Visitantes están viendo este tema.

Meta

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.



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 programa.

Felices fiestas 2016.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

engel lex

que tecnicas usas para el reconocimiento de palabras?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Eleкtro

#2
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).

Cita de: engel lex en 26 Diciembre 2016, 02:30 AMque 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):

Quizás no haya sido así.

Saludos








engel lex

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?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Eleкtro

#4
Cita de: engel lex en 26 Diciembre 2016, 07:18 AMel 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.

Cita de: engel lex en 26 Diciembre 2016, 07:18 AMes tan efectivo como el reconocimiento de voz de google?

Lo desconozco, pero la Speech API de Google al parecer es de pago:

Saludos!








engel lex

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%
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Meta

#6
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 (csharp) [Seleccionar]
using (
     SpeechRecognitionEngine recognizer =
       new SpeechRecognitionEngine(
         new System.Globalization.CultureInfo("es-ES")))
     {


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 (csharp) [Seleccionar]
using System;
using System.Speech.Recognition; // No olvidar. Micro.
using System.Speech.Synthesis; // No olvidar. Altavoz.

namespace Reconocimiento_voz_consola_04
{
   class Program
   {
       static void Main(string[] args)
       {
           Console.Title = "Reconocimiento voz 04"; // Título de la ventana.
           Console.WriteLine(" Empiece a dar la lengua.");

           // Cree un reconocedor de voz en proceso para la configuración regional en-US.
           using (SpeechRecognitionEngine micro = new SpeechRecognitionEngine(
               new System.Globalization.CultureInfo("es-ES")))
           {

               // Cree y cargue una gramática de dictado.
               micro.LoadGrammar(new DictationGrammar());

               // Agregue un controlador para el evento de reconocimiento de voz.
               micro.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);

               // Configure la entrada al reconocedor de voz.
               micro.SetInputToDefaultAudioDevice();

               // Inicie el reconocimiento de voz continuo asíncrono.
               micro.RecognizeAsync(RecognizeMode.Multiple);

               // Mantenga abierta la ventana de la consola.
               while (true)
               {
                   Console.ReadLine();
               }
           }
       }

       // Maneje el evento SpeechRecognized.
       static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
       {
           Console.WriteLine("Texto reconocido: " + e.Result.Text);

           string palabras = e.Result.Text;

           // Inicializar una nueva instancia de SpeechSynthesizer.
           using (SpeechSynthesizer altavoz = new SpeechSynthesizer())
           {
               // Configure la salida de audio.
               altavoz.SetOutputToDefaultAudioDevice();

               switch (palabras)
               {
                   case "enciende la luz uno":
                       Console.WriteLine("Luz 1 encendida.");
                       altavoz.Speak("Encendiendo luz 1.");
                       break;

                   case "apaga la luz uno":
                       Console.WriteLine("Luz 1 apagada.");
                       altavoz.Speak("Apagando luz 1.");
                       break;

                   case "enciende ventilador uno":
                       Console.WriteLine("Ventilador 1 encendido.");
                       altavoz.Speak("Encendiendo ventilador 1.");
                       break;

                   case "apaga ventilador uno":
                       Console.WriteLine("Ventilador 1 apagado.");
                       altavoz.Speak("Apagando ventilador 1.");
                       break;
               }
           }
       }
   }
}


Siguiendo avanzando.

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



Descargar

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

Felices fiestas 2016.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/