Microsoft Cognitive Services con Xamarin




Hola amigos, les comparto la forma de crear una aplicación que nos permita conectarnos a los Microsoft Cognitive Services usando Xamarin.

Sin duda los Cognitive Services son una fantástica oportunidad para la creación de aplicaciones móviles de diferentes tipos, especialmente para asistencia a personas con capacidades diferentes.

Podemos crear una cuenta trial en el sitio Web: 



Una vez registrado, obtenemos las claves de acceso para Emotion y Computer Vision:

Ahora empezamos creando un proyecto clásico para iOS:

Paso 1 - Realizar la siguiente Interfaz Gráfica para iOS:



Paso 2 - Agregamos el Paquete vía NuGet:



Paso 3 - Agregamos las librerías necesarias:



Paso 4 - Declaramos una variable de tipo AVSpeechSynthesizer para escuchar la voz de Siri para que nos narre el texto:




Paso 5 - Declaramos un manejador de evento que mande llamar asíncronamente a un método llamado DescargarImagenAnalizarFelicidad el cual descargará la imagen que vamos a verificar, generamos un stream de la misma y enviamos a otro método asíncrono llamado NiveldeFelicidad que nos indicará el porcentaje de acuerdo al Servicio Cognitivo. Por último enviamos el texto a la variable de narración:




Paso 6 - Descargamos la imagen como arreglo de bytes y después la guardamos y extraemos la ruta local:



Paso 7 - Verificamos en un método asíncrono el porcentaje de felicidad del Servicio Cognitivo enviando el stream de la imagen a un método llamado TraerEmocion y dependiendo lo que regrese le extraemos el grado de felicidad.



Paso 8 - Definimos la clave de la API de Emoción de los Servicios Cognitivos, generamos el cliente de conexión con la clave, enviamos el stream de la Imagen y recibimos el resultado, si puede hacer la detección, extraemos la variable, en caso contrario enviamos el mensaje de error.




Paso 9 - Ya con el grado de felicidad verificamos el mensaje a enviar a la pantalla:



Paso 10 - Probamos la funcionalidad:



Paso 11 - Ahora generamos un método para la descripción, en donde extraemos cada elemento en la lista y se envía al narrador uno a uno:



Paso 12 - De la misma forma bajamos la imagen al dispositivo:




Paso 13 - Generamos el método asíncrono para recibir la descripción de la imagen enviándole el stream:


Paso 14 - Mandamos llamar ambos botones desde ViewDidLoad:

Corremos la Aplicación:




A continuación les dejo el video ejecutando la aplicación en iOS que se conecta a los Servicios Cognitivos de Microsoft con narración de los resultados:



Espero les sirva para sus proyectos móviles.

Saludos.
@enriqueaguilar