Xamarin.Forms et Présentation d’Azure Cognitive Services

Microsoft Cognitive Services est un ensemble d’API, sdk et services disponibles pour les développeurs afin de rendre leurs applications plus intelligentes en ajoutant des fonctionnalités telles que la reconnaissance faciale, la reconnaissance vocale et la compréhension du langage. Cet article fournit une introduction à l’exemple d’application qui montre comment appeler certaines API microsoft Cognitive Service.

Vue d’ensemble

L’exemple associé est une application de liste de tâches qui fournit des fonctionnalités pour :

  • Affichez une liste de tâches.
  • Ajoutez et modifiez des tâches via le clavier logiciel ou en effectuant une reconnaissance vocale avec l’API Microsoft Speech.
  • Tâches case activée orthographiques à l’aide de l’API Vérification orthographique Bing. Pour plus d’informations, consultez Vérification orthographique à l’aide de l’API Vérification orthographique Bing.
  • Traduire des tâches de l’anglais en allemand à l’aide de l’API Traducteur. Pour plus d’informations, consultez Traduction de texte à l’aide de l’API Traducteur.
  • Supprimer des tâches.
  • Définissez l’état d’une tâche sur « terminé ».

Avertissement

L’API Reconnaissance vocale Bing a été déconseillée en faveur du service Azure Speech. Pour obtenir un exemple dédié au service Azure Speech, consultez reconnaissance vocale avec l’API Du service Speech.

Les tâches sont stockées dans une base de données SQLite locale. Pour plus d’informations sur l’utilisation d’une base de données SQLite locale, consultez Utilisation d’une base de données locale.

Le TodoListPage message s’affiche lorsque l’application est lancée. Cette page affiche une liste de toutes les tâches stockées dans la base de données locale et permet à l’utilisateur de créer une tâche ou d’évaluer l’application :

TodoListPage

Vous pouvez créer de nouveaux éléments en cliquant sur le + bouton, qui accède au TodoItemPage. Cette page peut également être accédée en sélectionnant une tâche :

TodoItemPage

Les TodoItemPage tâches peuvent être créées, modifiées, case activée orthographiques, traduites, enregistrées et supprimées. La reconnaissance vocale peut être utilisée pour créer ou modifier une tâche. Pour ce faire, appuyez sur le bouton du microphone pour démarrer l’enregistrement et en appuyant sur le même bouton une deuxième fois pour arrêter l’enregistrement, ce qui envoie l’enregistrement à l’API Reconnaissance vocale Bing.

Comprendre l’anatomie de l’application

Le projet de code partagé pour l’exemple d’application se compose de cinq dossiers principaux :

Dossier Objectif
Modèles Contient les classes de modèle de données pour l’application. Cela inclut la TodoItem classe, qui modélise un seul élément de données utilisé par l’application. Le dossier inclut également des classes utilisées pour modéliser les réponses JSON retournées par différentes API Microsoft Cognitive Service.
Référentiels Contient l’interface et TodoItemRepository la ITodoItemRepository classe utilisées pour effectuer des opérations de base de données.
Services Contient les interfaces et les classes utilisées pour accéder à différentes API Microsoft Cognitive Service, ainsi que les interfaces utilisées par la DependencyService classe pour localiser les classes qui implémentent les interfaces dans les projets de plateforme.
Utilitaires Contient la Timer classe, qui est utilisée par la AuthenticationService classe pour renouveler un jeton d’accès JWT toutes les 9 minutes.
Vues Contient les pages de l’application.

Le projet de code partagé contient également certains fichiers importants :

File Objectif
Constants.cs Classe Constants , qui spécifie les clés d’API et les points de terminaison des API Microsoft Cognitive Service appelées. Les constantes de clé API nécessitent une mise à jour pour accéder aux différentes API Cognitive Service.
App.xaml.cs La App classe est chargée d’instancier à la fois la première page qui sera affichée par l’application sur chaque plateforme et la TodoManager classe utilisée pour appeler des opérations de base de données.

Packages NuGet

L’exemple d’application utilise les packages NuGet suivants :

  • Newtonsoft.Json : fournit une infrastructure JSON pour .NET.
  • PCLStorage : fournit un ensemble d’API d’E/S de fichiers locaux multiplateformes.
  • sqlite-net-pcl : fournit un stockage de base de données SQLite.
  • Xam.Plugin.Media : fournit la prise de photos multiplateforme et la sélection d’API.

En outre, ces packages NuGet installent également leurs propres dépendances.

Modéliser les données

L’exemple d’application utilise la TodoItem classe pour modéliser les données affichées et stockées dans la base de données SQLite locale. L’exemple de code suivant illustre la classe TodoItem :

public class TodoItem
{
  [PrimaryKey, AutoIncrement]
  public int ID { get; set; }
  public string Name { get; set; }
  public bool Done { get; set; }
}

La ID propriété est utilisée pour identifier de manière unique chaque TodoItem instance et est décorée avec des attributs SQLite qui rendent la propriété une clé primaire incrémentante automatiquement dans la base de données.

Appeler des opérations de base de données

La TodoItemRepository classe implémente des opérations de base de données et une instance de la classe est accessible via la App.TodoManager propriété. La TodoItemRepository classe fournit les méthodes suivantes pour appeler des opérations de base de données :

  • GetAllItemsAsync : récupère tous les éléments de la base de données SQLite locale.
  • GetItemAsync : récupère un élément spécifié à partir de la base de données SQLite locale.
  • SaveItemAsync : crée ou met à jour un élément dans la base de données SQLite locale.
  • DeleteItemAsync : supprime l’élément spécifié de la base de données SQLite locale.

Implémentations de projets de plateforme

Le Services dossier du projet de code partagé contient les IFileHelper interfaces utilisées IAudioRecorderService par la DependencyService classe pour localiser les classes qui implémentent les interfaces dans les projets de plateforme.

L’interface IFileHelper est implémentée par la FileHelper classe dans chaque projet de plateforme. Cette classe se compose d’une méthode unique, GetLocalFilePathqui retourne un chemin d’accès de fichier local pour le stockage de la base de données SQLite.

L’interface IAudioRecorderService est implémentée par la AudioRecorderService classe dans chaque projet de plateforme. Cette classe se compose de StartRecordingméthodes de StopRecordingprise en charge, qui utilisent des API de plateforme pour enregistrer l’audio à partir du microphone de l’appareil et la stocker sous forme de fichier wav. Sur iOS, l’API AudioRecorderService utilise pour enregistrer l’audio AVFoundation . Sur Android, l’API AudioRecordService utilise pour enregistrer l’audio AudioRecord . Sur le plateforme Windows universelle (UWP), l’API AudioRecorderServiceAudioGraph utilise l’API pour enregistrer l’audio.

Appeler cognitive services

L’exemple d’application appelle les services Microsoft Cognitive Services suivants :