Comandos de Voz en C Sharp


El reconocimiento de voz es el nuevo “bum” de la programación, dispositivos como el Iphone tienen una aplicación la cual funciona con comando de voz, pero ¿Que es el reconomiento de voz?
Es una parte de la inteligencia artificial que tiene como objetivo lograr comunicarnos con dispositivos electrónicos.

Un sistema de reconocimiento de voz es una herramienta computacional capaz de procesar la señal de voz emitida por el ser humano y reconocer la información contenida en ésta, convirtiéndola en texto o emitiendo órdenes que actúan sobre un proceso.

En su desarrollo intervienen diversas disciplinas, tales como: la fisiología, la acústica, el procesamiento de señales, la inteligencia artificial y la ciencia de la computación.

A continuación veremos un ejemplo,en el cual, damos ordenes mediante la voz para indicarle a que dirección se tiene que mover.

Las direcciones disponibles son : derecha, izquierda, arriba, abajo.

Para este ejemplo utilizaremos Visual Studio 2010, creamos un nuevo proyecto, agregamos la referencia speech,para poder realizar el reconocimiento de voz:



Esta se encuentra en System.Speech


Ya en el codigo de c#, agregamos la referencia a nuestra libreria speech de la siguiente forma:

  1. using System.Speech.Recognition;
  2. #Ahora creamos un objeto de tipo privado de  SpeechRecognitionEngine().
  3. private SpeechRecognitionEngine reconocedor = new SpeechRecognitionEngine();
  4. #el siguiente codigo es del boton :
  5. private void button1_Click(object sender, EventArgs e)
  6. {
  7.     #aqui le decimsos que utilize el micro que encuentre haha
  8.     reconocedor.SetInputToDefaultAudioDevice();
  9.     reconocedor.LoadGrammar(new DictationGrammar());//creamos un datagrama
  10.     reconocedor.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(reconocedor_SpeechRecognized);
  11.     reconocedor.RecognizeAsync(RecognizeMode.Multiple);
  12. }
  13. void reconocedor_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
  14. {
  15. #destripa el datagrmaa
  16.     foreach (RecognizedWordUnit word in e.Result.Words)
  17.     {
  18.         if (word.Text == “derecha”)
  19.         {
  20.             this.pictureBox1.Location = new Point(pictureBox1.Location.X + 20, pictureBox1.Location.Y);
  21.         }
  22.         else if (word.Text == “izquierda”)
  23.         {
  24.             this.pictureBox1.Location = new Point(pictureBox1.Location.X20, pictureBox1.Location.Y);
  25.         }
  26.         else if(word.Text == “abajo”)
  27.         {
  28.             this.pictureBox1.Location = new Point(pictureBox1.Location.X , pictureBox1.Location.Y +20);
  29.         }
  30.         else if (word.Text == “arriba”)
  31.         {
  32.             this.pictureBox1.Location = new Point(pictureBox1.Location.X, pictureBox1.Location.Y20);
  33.         }
  34.     }
  35. }

Acá les dejo el vídeo de muestra del programa funcionando:




Inspirado por: La Esa.Com.Ar , código fuente

No hay comentarios:

Publicar un comentario