Xamarin.Forms Introducción a Azure Cognitive Services y Azure Cognitive Services
Microsoft Cognitive Services es un conjunto de API, SDK y servicios disponibles para que los desarrolladores hagan que sus aplicaciones sean más inteligentes mediante la adición de características como el reconocimiento facial, el reconocimiento de voz y la comprensión del lenguaje. En este artículo se proporciona una introducción a la aplicación de ejemplo que muestra cómo invocar algunas de las API de Microsoft Cognitive Service.
Información general
El ejemplo complementario es una aplicación de lista de tareas pendientes que proporciona funcionalidad a:
- Vea una lista de tareas.
- Agregue y edite tareas a través del teclado flexible o realice el reconocimiento de voz con Microsoft Speech API.
- Tareas de revisión ortográfica mediante Bing Spell Check API. Para obtener más información, consulte Revisión ortográfica con Bing Spell Check API.
- Traducir tareas de inglés a alemán mediante la API de Traductor. Para obtener más información, consulte Traducción de texto mediante la API de Traductor.
- Eliminar tareas.
- Establezca el estado de una tarea en "listo".
Advertencia
Bing Speech API ha quedado en desuso en favor del servicio De voz de Azure. Para obtener un ejemplo dedicado a Azure Speech Service, consulte Reconocimiento de voz con Speech Service API.
Las tareas se almacenan en una base de datos de SQLite local. Para obtener más información sobre el uso de una base de datos DE SQLite local, vea Trabajar con una base de datos local.
TodoListPage
se muestra cuando se inicia la aplicación. En esta página se muestra una lista de las tareas almacenadas en la base de datos local y se permite al usuario crear una nueva tarea o evaluar la aplicación:
Los nuevos elementos se pueden crear haciendo clic en el + botón , que navega a .TodoItemPage
Esta página también se puede navegar a seleccionando una tarea:
TodoItemPage
Permite crear, editar, revisar ortográficamente, traducir, guardar y eliminar tareas. El reconocimiento de voz se puede usar para crear o editar una tarea. Esto se logra presionando el botón de micrófono para iniciar la grabación y presionando el mismo botón una segunda vez para detener la grabación, que envía la grabación a Bing Speech Recognition API.
Descripción de la anatomía de la aplicación
El proyecto de código compartido de la aplicación de ejemplo consta de cinco carpetas principales:
Carpeta | Propósito |
---|---|
Modelos | Contiene las clases del modelo de datos para la aplicación. Esto incluye la TodoItem clase , que modela un solo elemento de datos que usa la aplicación. La carpeta también incluye clases que se usan para modelar respuestas JSON devueltas desde diferentes API de Microsoft Cognitive Service. |
Repositorios | Contiene la interfaz y TodoItemRepository la ITodoItemRepository clase que se usan para realizar operaciones de base de datos. |
Servicios | Contiene las interfaces y clases que se usan para acceder a diferentes API de Microsoft Cognitive Service, junto con interfaces que usa la DependencyService clase para localizar las clases que implementan las interfaces en proyectos de plataforma. |
Utilidades | Contiene la Timer clase , que usa la AuthenticationService clase para renovar un token de acceso JWT cada 9 minutos. |
Vistas | Contiene las páginas de la aplicación. |
El proyecto de código compartido también contiene algunos archivos importantes:
Archivo | Propósito |
---|---|
Constants.cs | La Constants clase , que especifica las claves de API y los puntos de conexión de las API de Microsoft Cognitive Service que se invocan. Las constantes de clave de API requieren la actualización para acceder a las diferentes API de Cognitive Service. |
App.xaml.cs | La App clase es responsable de crear instancias de la primera página que mostrará la aplicación en cada plataforma y la TodoManager clase que se usa para invocar operaciones de base de datos. |
Paquetes NuGet
La aplicación de ejemplo usa los siguientes paquetes NuGet:
Newtonsoft.Json
: proporciona un marco JSON para .NET.PCLStorage
: proporciona un conjunto de API de E/S de archivos locales multiplataforma.sqlite-net-pcl
: proporciona almacenamiento de base de datos de SQLite.Xam.Plugin.Media
– proporciona api de toma y selección de fotos multiplataforma.
Además, estos paquetes NuGet también instalan sus propias dependencias.
Modelado de los datos
La aplicación de ejemplo usa la TodoItem
clase para modelar los datos que se muestran y almacenan en la base de datos local de SQLite. En el ejemplo de código siguiente se muestra la clase TodoItem
:
public class TodoItem
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string Name { get; set; }
public bool Done { get; set; }
}
La ID
propiedad se usa para identificar de forma única cada TodoItem
instancia y está decorada con atributos de SQLite que hacen que la propiedad sea una clave principal de incremento automático en la base de datos.
Invocar operaciones de base de datos
La TodoItemRepository
clase implementa operaciones de base de datos y se puede acceder a una instancia de la clase a través de la App.TodoManager
propiedad . La TodoItemRepository
clase proporciona los métodos siguientes para invocar operaciones de base de datos:
- GetAllItemsAsync : recupera todos los elementos de la base de datos de SQLite local.
- GetItemAsync : recupera un elemento especificado de la base de datos local de SQLite.
- SaveItemAsync : crea o actualiza un elemento en la base de datos local de SQLite.
- DeleteItemAsync : elimina el elemento especificado de la base de datos de SQLite local.
Implementaciones de proyectos de plataforma
La Services
carpeta del proyecto de código compartido contiene las IFileHelper
interfaces y IAudioRecorderService
que usa la DependencyService
clase para buscar las clases que implementan las interfaces en proyectos de plataforma.
La IFileHelper
interfaz se implementa mediante la FileHelper
clase en cada proyecto de plataforma. Esta clase consta de un único método, , GetLocalFilePath
que devuelve una ruta de acceso de archivo local para almacenar la base de datos de SQLite.
La IAudioRecorderService
interfaz se implementa mediante la AudioRecorderService
clase en cada proyecto de plataforma. Esta clase consta de StartRecording
métodos auxiliares , StopRecording
y , que usan API de plataforma para grabar audio desde el micrófono del dispositivo y almacenarlo como un archivo wav. En iOS, usa AudioRecorderService
la AVFoundation
API para grabar audio. En Android, usa AudioRecordService
la AudioRecord
API para grabar audio. En el Plataforma universal de Windows (UWP), usa AudioRecorderService
la AudioGraph
API para grabar audio.
Invocación de Cognitive Services
La aplicación de ejemplo invoca lo siguiente a Microsoft Cognitive Services:
- Microsoft Speech API. Para obtener más información, consulte Reconocimiento de voz mediante Microsoft Speech API.
- Bing Spell Check API. Para obtener más información, consulte Revisión ortográfica con Bing Spell Check API.
- Translate API. Para obtener más información, consulte Traducción de texto mediante la API de Traductor.