Esta vez os traemos un post de José Luis Fernández uno de los participantes del concurso Mobile Code Jam y finalmente ganador con su proyecto Bluway para Windows Phone. Pero antes de adelantar más cosas os dejo con su post:
Tuve la suerte de participar en el concurso Mobile Code Jam organizado por Microsoft Research con ocasión de la celebración del IEEE Consumer Communications & Networking Conference 2013.
En el concurso se buscaban aplicaciones que hiciesen un uso novedosos de los servicios de cloud computing que provee el equipo de investigación dentro de Microsoft Research denominado Project Hawaii. Logré el primer premio con el proyecto Blueway para Windows Phone, un sistema de navegación en interiores con múltiples interfaces de usuario.
¿Qué es Project Hawaii?
Project Hawaii es un grupo de investigación dentro de Microsoft Research que estudia las sinergias existentes entre los dispositivos móviles y los servicios en la nube (cloud computing).
Los dispositivos móviles han abierto un gran abanico de posibilidades al desarrollo de apps inteligentes al contar con un gran número de sensores como son los acelerómetros, giroscopio, GPS, cámara, entre otros. Pero con una capacidad de procesamiento y almacenamiento limitado, y con el hándicap de la batería. Es precisamente en estas limitaciones donde usar servicios en la nube puede ser de gran ayuda ya que contamos con una capacidad de procesamiento y de almacenamiento mucho mayor que en el móvil y además con la posibilidad de escalarlo según sea la demanda y sin preocuparnos del suministro de energía.
Viendo esta sinergia natural, en Project Hawaii han desarrollado varios servicios en la nube que permiten descargar de carga computacional al móvil, consiguiendo así un ahorro de batería. Algunos de los servicios que proveen son:
· Reconocimiento Óptico de Caracteres (OCR). Este servicio recibe una imagen que contiene un texto, y devuelve al dispositivo móvil el texto que contiene la imagen.
· Servicio de Traducción. Permite traducir textos de diferentes idiomas y devuelve también el audio de la traducción.
· Predicción de la Ruta. Predice el destino al que va a ir el usuario basándose en el camino que va tomando.
· Almacenamiento Clave-Valor. Con este servicio se puede hacer uso de un tipo de almacenamiento clave-valor.
Y hay numerosos servicios más y la lista sigue creciendo. Los podéis ver en el siguiente enlace http://research.microsoft.com/en-US/projects/hawaii/default.aspx y cada servicio cuenta con su respectivo SDK para poder hacer uso de ellos.
Project Hawaii cuenta con un programa para universidades para que puedan impartir cursos sobre el desarrollo de aplicaciones móviles que hagan uso de servicios en la nube. Project Hawaii provee a esos cursos de teléfonos Windows Phone para llevar a cabo el desarrollo, y fomenta la investigación de soluciones innovadoras que muestren las ventajas de construir soluciones híbridas móviles-cloud.
Es en uno de estos cursos, en la Universidad de Illinois, dónde pude conocer la iniciativa de Project Hawaii. En aquella ocasión desarrollé junto a dos compañeros, una aplicación Windows Phone para la reserva y autentificación para abrir salas de reuniones basado en códigos QR y en la localización del usuario.
Blueway
Blueway es un sistema de navegación en interiores basado en tecnologías Bluetooth. En exteriores usamos la tecnología GPS para ubicarnos y guiarnos, pero el GPS deja de tener precisión en cuanto entramos en un edifico.
Al igual que el GPS ha permitido el desarrollo de un gran número de aplicaciones como navegadores gps, seguimiento de flotas, geo etiquetado de fotos, etc. Son muchos los que piensan que también se puede abrir un gran mercado si se puede conocer la posición de la persona dentro de un espacio cerrado como son los edificios.
Para mi Proyecto Fin de Carrera en la Universidad Pontificia Comillas – ICAI, desarrollé un sistema de posicionamiento en interiores basado en balizas Bluetooth de bajo coste. Colocando esas balizas en puntos estratégicos del edificio, un dispositivo móvil que cuente con tecnología Bluetooth podrá saber su posición dentro de este.
Una vez contada con la infraestructura, lo siguiente era pensar un escenario dónde esta tecnología pudiera ser de utilidad. De aquí nació la app Blueway que es un navegador pensado para dentro de estaciones ferroviarias (metro, cercanías). Cuenta con dos interfaces innovadoras:
· Una basada en voz, pensada para usuarios con discapacidad visual. Todo lo que se muestra en pantalla se lee en voz alta y el usuario interactúa con la aplicación a través de comandos de voz.
· Una basada en realidad aumentada, en la que se muestra una flecha encima de lo que ve la cámara del teléfono que nos indica el camino que el usuario ha de seguir para llegar a su destino. Esta interfaz puede ser de gran utilidad para aquellos casos en la que la señalización no sea fácil de entender, por ejemplo si nos vamos a un país extranjero y no entendemos bien el idioma. Con esta interfaz, sólo tenemos que seleccionar nuestro destino y la flecha nos guiará hasta nuestro destino por la estación.
El funcionamiento de la app es sencillo. Al llegar a una estación la aplicación detecta en qué estación se encuentra y enumera al usuario los posibles destinos dentro de la estación. El usuario indica el destino al que quiera ir y la app empezará a guiarle, ya sea por voz o visualmente, al destino indicado.
En este video podéis ver una demo del funcionamiento de BlueWay. [VIDEO] http://www.youtube.com/watch?v=0wJoAlQvaTY
Gracias a los servicios que provee Project Hawaii y el SDK de Windows Phone, fue sencillo incorporar a la aplicaciones funcionalidades que de primeras pueden parecer complejas como el reconocimiento de voz. Para el reconocimiento de voz hago uso del SDK de reconocimiento de voz que provee Project Hawaii. A partir de Windows Phone 8, su SDK ya ofrece la posibilidad de incorporar reconocimiento de voz a nuestras apps de la siguiente manera:
private async void ActivarReconocimientoVoz_Click(object sender, RoutedEventArgs e)
{
// Crear una instance de SpeechRecognizerUI.
SpeechRecognizerUI recoWithUI = new SpeechRecognizerUI();
// Empezar el reconocimiento de voz
SpeechRecognitionUIResult recoResult = await recoWithUI.RecognizeWithUIAsync();
// Operar con el resultado del reconocimiento de voz
MessageBox.Show(string.Format("Has dicho {0}.", recoResult.RecognitionResult.Text));
}
Para transformar el texto que se muestra en la pantalla en voz, hago uso de la funcionalidad Text-to-speech (TTS) de Windows Phone. Al igual que en el caso de reconocimiento de voz, podemos incorporar esta funcionalidad a nuestras aplicaciones con muy pocas líneas de código.
private async void ListarOpcionesMenu()
{
// Inicializar el sintetizador de voz
SpeechSynthesizer synth = new SpeechSynthesizer();
// Seleccionamos una voz en español
IEnumerable<VoiceInformation> lauraVoice = from voice in InstalledVoices.All
where voice.DisplayName == "Microsoft Laura Mobile"
select voice;
synth.SetVoice(lauraVoice.ElementAt(0));
String options = "Hola, por favor diga una de las siguientes opciones. " +
"Listar destinos. " +
"Reconocimiento de Imagen. ";
// Hablar
await synth.SpeakTextAsync(options);
}
También Windows Phone hace sencillo incorporar la imagen de la cámara a aplicaciones, y sobreponer cualquier objeto/interfaz que deseamos para construir aplicaciones de realidad aumentada.
Gracias a este concurso he podido descubrir en más profundidad las múltiples posibilidades que ofrecen las plataformas de Microsoft, desde el dispositivo móvil con Windows Phone, los servicio en la nube de Project Hawaii y la oferta de computación en la nube que ofrece Windows Azure.
Cuento con las herramientas y el apoyo, ahora sólo falta hacer de Blueway una realidad.