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 :
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 :
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, GetLocalFilePath
qui 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 StartRecording
méthodes de StopRecording
prise 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 AudioRecorderService
AudioGraph
utilise l’API pour enregistrer l’audio.
Appeler cognitive services
L’exemple d’application appelle les services Microsoft Cognitive Services suivants :
- API Microsoft Speech. Pour plus d’informations, consultez Reconnaissance vocale à l’aide de l’API Microsoft Speech.
- API Vérification orthographique Bing. Pour plus d’informations, consultez Vérification orthographique à l’aide de l’API Vérification orthographique Bing.
- Traduire l’API. Pour plus d’informations, consultez Traduction de texte à l’aide de l’API Traducteur.