Reconocimiento de voz en c# visual studio 2010

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:

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

using System.Speech.Recognition;

Ahora creamos un objeto de tipo privado de  SpeechRecognitionEngine().

private SpeechRecognitionEngine reconocedor = new SpeechRecognitionEngine();

el siguiente codigo es del boton :[share-to-unlock]

private void button1_Click(object sender, EventArgs e)
{

///aqui le decimsos que utilize el micro que encuentre haha

reconocedor.SetInputToDefaultAudioDevice();
reconocedor.LoadGrammar(new DictationGrammar());//creamos un datagrama
reconocedor.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(reconocedor_SpeechRecognized);
reconocedor.RecognizeAsync(RecognizeMode.Multiple);
}
void reconocedor_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{

///destripa el datagrmaa

foreach (RecognizedWordUnit word in e.Result.Words)
{

if (word.Text == “derecha”)
{
this.pictureBox1.Location = new Point(pictureBox1.Location.X + 20, pictureBox1.Location.Y);
}
else if (word.Text == “izquierda”)
{
this.pictureBox1.Location = new Point(pictureBox1.Location.X – 20, pictureBox1.Location.Y);
}

else if(word.Text == “abajo”)
{
this.pictureBox1.Location = new Point(pictureBox1.Location.X , pictureBox1.Location.Y +20);
}
else if (word.Text == “arriba”)
{
this.pictureBox1.Location = new Point(pictureBox1.Location.X, pictureBox1.Location.Y – 20);
}

[/share-to-unlock]

ejemplo :

descargar ejemplo

  • http://twitter.com/Tilcampo JuanManuel LópezMont

    Escribir bien un tutorial es complicado, les dejo el ejemplo y cualquier duda pueden preguntar, con mucho gusto contestaré

  • http://www.facebook.com/yessenia.mondragontaboada Yessenia Mondragon Taboada

    Esta Muy Interesante este tutorial tu crees k se podria conectar con base de datos?

    • http://twitter.com/Tilcampo JuanManuel LópezMont

      Claro que si, cual sería la finalidad de utilizar una base de datos?

      • Jomy2646

        este codigo sirve en Microsoft visual estudio 2010 express????

        • http://www.facebook.com/profile.php?id=1561296370 Joseph Rodiz Cuevas

          Si, talvéz te pase como a mi que la libreria Speech no venga incluida la tendrias que descargar y hacer referencia a esa dll

  • http://www.facebook.com/profile.php?id=1561296370 Joseph Rodiz Cuevas

    Hey luda no puedo agregar la referencia .speech que paquete necesito, estuve buscando en internet e ize 2 cosas k no me sirvieron de nada a ver si aki si me contestas

  • FacilityWarez

    Y como hago para poder utilizarlo en otro boton?

    • http://twitter.com/Tilcampo JuanManuel LópezMont

      Agrega otro boton

  • Néstor Martinez

    Amigo disculpe el abuso pero necesito de su ayuda. Necesito presentar un proyecto para unas materias llamada Inteligencia Artificial y Simulacion y Modelos.
    Nos mandarón a hacer un “simple” proyecto en cualquier lenguaje de programación. Consiste en: Decir una númeroy éste debe aparecer en pantalla, bien sea la palabra o el número.

    Principalmente nos habían pedido una “Cartilla Electrónica” para bebés, donde se diga el nombre del animal y éste aparece en pantalla pero debido a que nuestros conocimientos en programación son muy escasos y apenas queda 20 dias para presentarlo nos bajaron la dificultad del proyecto. 
    Saludos desde Venezuela. mi email es dangercitox@gmail.com

    • http://twitter.com/Tilcampo JuanManuel LópezMont

      Basta con agregar las palabras que quieras reconocer y que mande un mensaje a pantalla, checa el codigo donde esta los if

      • http://www.facebook.com/profile.php?id=1561296370 Joseph Rodiz Cuevas

        ME RINDO!!!!

        • http://twitter.com/Tilcampo JuanManuel LópezMont

          jajaja por que?

          • http://www.facebook.com/profile.php?id=1561296370 Joseph Rodiz Cuevas

            Como hay gente -pwnd

  • Jcmdiaz

    ¿Como hacer para que, la palabra que se ta diciendo a través del reconocimiento de voz sea exactamente igual a una que este dentro del gramabuilder y que no de a la coincidencia más probable?

    • http://twitter.com/Tilcampo JuanManuel LópezMont

      Genera un XML que sea tu corpus de palabra, asi será exactamente lo que deseas que sea reconocido

      • http://www.facebook.com/profile.php?id=1561296370 Joseph Rodiz Cuevas

        subeles el ejemplo con xml we!

  • alexmontes

    Hombre al intentar descargar el ejemplo se queda pensando y no lo descarga, habria la posibilidad que me lo envie al siguiente correo “yalexmontes78@hotmail.com”, lo que pasa es que tambien lo necesito para una clase que se llama modelos de simulacion Gracias 

    • http://twitter.com/Tilcampo JuanManuel LópezMont

      Intenta de nuevo,ya estan los archivos

  • Majayumareywa

    CHEVERE SENCILLO Y FACIL DE COMPRENDER, PERO YO NECESITO UNO CODIFICADO EN  .NET  PUES ES EL TEMA EN QUE SE BASA MI PROYECTO DE GRADO,NECESITO SABER COMO PUEDO INVOCAR UN VIDEO UTILIZANDO RECONOCIMIENTO DE VOZ. PORFA TE AGRADECERIA INFINITAMENTE TU AYUDA CUALQUIER APORTE PORFA ESCRIBEME evhernandez5@misena.edu.co, ó , majayumareywa@hotmail.com

    • http://twitter.com/Tilcampo JuanManuel LópezMont

      Próximamente subiré un ejemplo con esas opciones :)

    • http://www.facebook.com/profile.php?id=1561296370 Joseph Rodiz Cuevas

      Oye viejo no te ofendas pero eso puedes hacerlo tu solito. Existen traductores de código, las librerías son multiplataforma, y en vez de mandar al muñequito ha moverse manda a desocultar y reproducir un video q tengas en el form ya cargado, obviamente no es facil para principiantes pero si puedes hacer eso q pides tu solo podrás resolver después cualquier problema, espero no te ofendas bro

      • Soniely Arrua

        Yo quiero hacer un reconocedor de voz en visual studio 2012 para un trabajo del colegio lo injusto es que no se nada de programacion ya tengo mi VB 2012 CON Csharp pero como lo hago? ayudaaaa porfavooorrrr

  • Edgarquiquia

    Si se les queda cargando y no pueden descargar, click derecho y abrir en una pestaña nueva y listo

  • Andre De La O

    Vieran que comico me reconoce sonidos pero le digo hola me capta ol , la a veces muchos etc

    • http://www.facebook.com/profile.php?id=1561296370 Joseph Rodiz Cuevas

      Si quieres te posteo un ejemplo donde reconozca exclusivamente de unas cuantas palabras q tu le indiques (diccionario), por ejemplo si el diccionario tiene los items: uno, dos, tres. Aunque digas ooooonooo te lo reconoze como uno, debido a que solo podemos escojer entre esos 3 valores, este diccionario estarà en xml

      • Stiven

        me puedes enviar ese ejemplo a mi. necesito hacer un trabajo urgente de que reconzca algunas palabras. te dejo mi correo. stiventoledob@gmail.com

      • alex

        Hola una consulta cuando compilo el programa con un diccionario personalizado en xml me lanza el siguiente error:

        {“El idioma de la gramática no coincide con el idioma del reconocedor de voz.”}

        Ayudaaaaaa!!!

        • ddd

          edita el idioma del xml a es-ES

          • xxzx

            es por el idioma de windows si esta ingles en el xml deve ser en-US

      • Juan

        Cómo se hace el diccionario en XML? Podrías mandarme el ejemplo?

        • Joseph Rodiz Cuevas

          Déjame buscarlo no creo tenerlo ya jajaja deja veo con mi colaborador

          • Juan

            OK, Por favor. Te lo agradeceré mucho….

  • joee

    me sale error en esta parte (reconocedor_SpeechRecognized)

    • sas

      reconocedor.SpeechRecognized +=

      una vez escrito el = presiona 2 veces TAB para q te genere la funcion}

      reconocedor_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)

  • joee

    dice que no exixte en el contexto

  • joee

    ayuda porfavor

  • Kiredon

    Y por ejemplo si en lugar de usar System.speech.recognition uso Microsoft.Speech.recognition como hago para dictado?

  • Antonio Lux

    buenisimo lo eh adaptado para un proyecto de robotica!!! muchas gracias por el sencillo pero muy buen ejemplo!!!

  • RodolVC

    Hola, gracias por tu aporte, pero ya tengo tu programa tal cual en visual c# y mi imagen no se mueve, por qué podrá ser? Muchas gracias! saludos!!

  • ViCtore Ramirez Alvarado

    disculpa, no me deja descargar el ejemplo

  • Eduardo Chavez

    Justo lo que ocupo para futuros poryectos! gracoas

  • Arely Vega

    Gracias por el aporte :D

  • Elias Machado

    O meu não funciona já baixei vários de outros sites e canais e semple da erro