Usos de Gramáticas reconociendo de voz C#

En este parte veremos que son la gramaticas para el reconocimiento de voz y como usarlas.

En nuestro ejemplo del reconocimiento de windows en C# ingresamos esta linea de código..

reconocedor.LoadGrammar(new DictationGrammar()); // carga todas la gramaticas de windows

La cual LoadGrammar(new DictationGrammar()); tiene la función de cargar toda gramáticas del sistema incluyendo las vocales, los artículos,etc.  Que dificultan el reconocimiento de frases si queremos hacer aplicaciones que solo reconozca algunas frases.

Si queremos mejorar la calidad del reconocimiento entonces tendremos que limitar la palabras y frases a reconocer.

Ejemplo:

De realizar una aplicación para controlar un robot mediante la voz mediante solo 4 comandos: “arriba”, “abajo”, “derecha” y “izquierda”.

Asi limitamos a que el reconocimiento solo tome estas 4 opciones.

De ser asi entonces empezamos a programar:

string[] comandos = {"arriba", "abajo", "derecha","izquierda" }; // comandos

en este cadena de string tenemos nuestros comandos.

Para que esta cadema de string se convierta en gramática tendremos que usar al función “Choises

Choices cmds = new Choices(comandos); // convierto en gramáticas nuestros comandos.

Ahora solo queda ingresarlos como una nueva gramática  a nuestra aplicación.

reconocedor.LoadGrammar(new Grammar(cmds)); //ingresamos las gramaticas

nuestro código final seria.

public partial class MainWindow : Window
{
SpeechRecognitionEngine reconocedor = new SpeechRecognitionEngine();
string _speech;
string[] comandos = {"arriba", "abajo", "derecha","izquierda" }; // comandos

public MainWindow()
{
InitializeComponent();
loadCfgRec(); // llama a la funcion creada
}
void loadCfgRec() // Configuracion del reconocimiento
{
Choices cmds = new Choices(comandos); // convierto en gramaticas nuestros comandos.
reconocedor.LoadGrammar(new Grammar(cmds)); //ingresamos las gramaticas
// reconocedor.LoadGrammar(new DictationGrammar()); // carga todas la gramaticas de windows
reconocedor.SetInputToDefaultAudioDevice(); // el programa usara el microfono predeterminado por el sistema
reconocedor.SpeechRecognized += Reconocedor_SpeechRecognized; // evento que se ejecutara al reconocer
reconocedor.RecognizeAsync(RecognizeMode.Multiple);// iniciamos el reconocimiento.
}
private void Reconocedor_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
_speech = e.Result.Text; // aqui la variable _speech tomara la palabra reconocida.
txt_out_rec.Text = _speech; // muestra la palabra reconocida en el texbox
// aqui el codigo aejecutar al reconover
}
}

gramaticas C#

descargar el código AQUÍ.




comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *