Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void ConectaActiva()
- {
- if (KinectSensor.KinectSensors.Count > 0)
- {
- if (_sensor == null)
- {
- _sensor = KinectSensor.KinectSensors[0];
- if (_sensor != null)
- {
- try
- {
- _sensor.Start();
- _sensor.ElevationAngle = 3;
- statusK.Text = "Kinect conetado";
- }
- catch (Exception ex)
- {
- statusK.Text = ex.Message.ToString();
- }
- RecognizerInfo recInf = ObtenerLenguagePack();
- if (recInf != null)
- {
- speechengine = new SpeechRecognitionEngine(recInf.Id);
- //Creamos esta variable opciones la cual almacenara las opciones de palabras o frases
- //que podran ser reconocidas por el dispositivo
- var opciones = new Choices();
- opciones.Add("uno", "UNO");
- opciones.Add("unidad", "UNO");
- opciones.Add("dos", "DOS");
- opciones.Add(new SemanticResultValue("windows ocho", "TRES"));
- opciones.Add(new SemanticResultValue("nuevo windows", "TRES"));
- //Esta variable creará todo el conjunto de frases y palabras
- //en base a nuestro lenguaje elegido en la variable recInf
- var grammarb = new GrammarBuilder { Culture = recInf.Culture };
- //Agregamos las opciones de palabras y frases a grammarb
- grammarb.Append(opciones);
- //Creamos una variable de tipo Grammar utilizando como parametro a grammarb
- var grammar = new Grammar(grammarb);
- //Le decimos a nuestra variable speechengine que cargue a grammar
- speechengine.LoadGrammar(grammar);
- //mandamos llamar al evento SpeechRecognized el cual se ejecutara cada vez que una palabra sea detectada
- speechengine.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(speechengine_SpeechRecognized);
- //speechengine inicia la entrada de datos de tipo audio
- speechengine.SetInputToAudioStream(_sensor.AudioSource.Start(), new SpeechAudioFormatInfo(EncodingFormat.Pcm, 16000, 16, 1, 32000, 2, null));
- speechengine.RecognizeAsync(RecognizeMode.Multiple);
- }
- }
- }
- }
- else
- statusK.Text = "Kinect desconectado";
- }
- private void speechengine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
- {
- const double igualdad = 0.5;
- //Si hay mas del 50% de igualdad con alguna de nuestras opciones
- if (e.Result.Confidence > igualdad)
- {
- Uri src;
- BitmapImage img;
- switch(e.Result.Words[0].Text)
- {
- case "UNO":
- mensaje.Text = "Todo es mas fácil con Hotmail. Organiza tu bandeja, usa limpiar para mover o eliminar tus correos automaticamente";
- mensaje.Background = new SolidColorBrush(Color.FromRgb(247, 126, 5));
- src = new Uri(@"/Images/1.png", UriKind.Relative);
- img = new BitmapImage(src);
- imagen.Source = img;
- break;
- case "DOS":
- mensaje.Text = "Solo Windows Phone cuenta con un hub de contactos con acceso directo a Facebook, Twitter y Linkedln para que siempre estés al día.";
- mensaje.Background = new SolidColorBrush(Color.FromRgb(255, 0, 0));
- src = new Uri(@"/Images/2.jpg", UriKind.Relative);
- img = new BitmapImage(src);
- imagen.Source = img;
- break;
- default:
- //En caso de que no solo contenga una palabra tambien realizaremos un switch para ver si la frase corresponde a alguna de nuestros valores de opcion
- **switch (e.Result.Semantics.Value.ToString())** //Da error.
- {
- case "TRES":
- mensaje.Text = "Windows 8 reimaginado y renovado. La nueva interfaz metro es sencilla e intuitiva. ";
- mensaje.Background = new SolidColorBrush(Color.FromRgb(5, 134, 247));
- src = new Uri(@"/Images/3.jpg", UriKind.Relative);
- img = new BitmapImage(src);
- imagen.Source = img;
- break;
- default:
- mensaje.Text = "No se reconocio el comando";
- break;
- }
- break;
- }
- }
- }
Add Comment
Please, Sign In to add comment