Xamarin.Forms Introduzione a Servizi cognitivi di Azure

Servizi cognitivi Microsoft sono un set di API, SDK e servizi disponibili per gli sviluppatori per rendere le applicazioni più intelligenti aggiungendo funzionalità come il riconoscimento facciale, il riconoscimento vocale e la comprensione del linguaggio. Questo articolo fornisce un'introduzione all'applicazione di esempio che illustra come richiamare alcune api di Servizi cognitivi Microsoft.

Panoramica

L'esempio a discesa è un'applicazione todo list che fornisce funzionalità per:

  • Visualizzare un elenco di attività.
  • Aggiungere e modificare attività tramite la tastiera soft o eseguendo il riconoscimento vocale con l'API Riconoscimento vocale Microsoft.
  • Attività di controllo ortografico con l'API Controllo ortografico Bing. Per altre informazioni, vedere Controllo ortografico con l'API Controllo ortografico Bing.
  • Tradurre le attività dall'inglese al tedesco usando l'API Traduttore. Per altre informazioni, vedere Traduzione testuale usando l'API Traduttore.
  • Eliminare le attività.
  • Impostare lo stato di un'attività su 'done'.

Avviso

L'API Riconoscimento vocale Bing è stata deprecata a favore del servizio Voce di Azure. Per un esempio dedicato al servizio Voce di Azure, vedere Riconoscimento vocale con l'API servizio Voce.

Le attività vengono archiviate in un database SQLite locale. Per altre informazioni sull'uso di un database SQLite locale, vedere Uso di un database locale.

L'oggetto TodoListPage viene visualizzato all'avvio dell'applicazione. Questa pagina visualizza un elenco di tutte le attività archiviate nel database locale e consente all'utente di creare una nuova attività o di valutare l'applicazione:

TodoListPage

È possibile creare nuovi elementi facendo clic sul + pulsante , che passa a TodoItemPage. È anche possibile passare a questa pagina selezionando un'attività:

TodoItemPage

TodoItemPage consente di creare, modificare, modificare, eseguire il controllo ortografico, tradurre, salvare ed eliminare. Il riconoscimento vocale può essere usato per creare o modificare un'attività. A tale scopo, premere il pulsante del microfono per avviare la registrazione e premendo lo stesso pulsante una seconda volta per arrestare la registrazione, che invia la registrazione all'API Riconoscimento vocale Bing.

Comprendere l'anatomia dell'applicazione

Il progetto di codice condiviso per l'applicazione di esempio è costituito da cinque cartelle principali:

Folder Scopo
Modelli Contiene le classi del modello di dati per l'applicazione. Ciò include la TodoItem classe , che modella un singolo elemento di dati usato dall'applicazione. La cartella include anche classi usate per modellare le risposte JSON restituite da diverse API di Servizi cognitivi Microsoft.
Repository Contiene l'interfaccia e TodoItemRepository la ITodoItemRepository classe utilizzate per eseguire operazioni di database.
Servizi Contiene le interfacce e le classi usate per accedere a diverse API di Servizi cognitivi Microsoft, insieme alle interfacce usate dalla DependencyService classe per individuare le classi che implementano le interfacce nei progetti della piattaforma.
Utils Contiene la Timer classe , usata dalla AuthenticationService classe per rinnovare un token di accesso JWT ogni 9 minuti.
Visualizzazioni Contiene le pagine per l'applicazione.

Il progetto di codice condiviso contiene anche alcuni file importanti:

file Scopo
Constants.cs Classe Constants , che specifica le chiavi API e gli endpoint per le API di Servizi cognitivi Microsoft richiamate. Le costanti della chiave API richiedono l'aggiornamento per accedere alle diverse API di Servizi cognitivi.
App.xaml.cs La App classe è responsabile della creazione di un'istanza della prima pagina che verrà visualizzata dall'applicazione in ogni piattaforma e della TodoManager classe usata per richiamare le operazioni del database.

Pacchetti NuGet

L'applicazione di esempio usa i pacchetti NuGet seguenti:

  • Newtonsoft.Json : fornisce un framework JSON per .NET.
  • PCLStorage : fornisce un set di API I/O per file locali multipiattaforma.
  • sqlite-net-pcl : fornisce l'archiviazione del database SQLite.
  • Xam.Plugin.Media : offre API di acquisizione e selezione di foto multipiattaforma.

Inoltre, questi pacchetti NuGet installano anche le proprie dipendenze.

Modellare i dati

L'applicazione di esempio usa la TodoItem classe per modellare i dati visualizzati e archiviati nel database SQLite locale. L'esempio di codice seguente visualizza 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 proprietà viene usata per identificare in modo univoco ogni TodoItem istanza e viene decorata con attributi SQLite che rendono la proprietà una chiave primaria con incremento automatico nel database.

Richiamare le operazioni del database

La TodoItemRepository classe implementa le operazioni di database e è possibile accedere a un'istanza della classe tramite la App.TodoManager proprietà . La TodoItemRepository classe fornisce i metodi seguenti per richiamare le operazioni del database:

  • GetAllItemsAsync : recupera tutti gli elementi dal database SQLite locale.
  • GetItemAsync : recupera un elemento specificato dal database SQLite locale.
  • SaveItemAsync : crea o aggiorna un elemento nel database SQLite locale.
  • DeleteItemAsync : elimina l'elemento specificato dal database SQLite locale.

Implementazioni del progetto della piattaforma

La Services cartella nel progetto di codice condiviso contiene le IFileHelper interfacce e IAudioRecorderService usate dalla DependencyService classe per individuare le classi che implementano le interfacce nei progetti della piattaforma.

L'interfaccia IFileHelper viene implementata dalla FileHelper classe in ogni progetto di piattaforma. Questa classe è costituita da un singolo metodo, GetLocalFilePath, che restituisce un percorso di file locale per l'archiviazione del database SQLite.

L'interfaccia IAudioRecorderService viene implementata dalla AudioRecorderService classe in ogni progetto di piattaforma. Questa classe è costituita da StartRecordingmetodi di supporto , StopRecordinge , che usano le API della piattaforma per registrare l'audio dal microfono del dispositivo e archiviarlo come file wav. In iOS AudioRecorderService usa l'API per registrare l'audio AVFoundation . In Android AudioRecordService usa l'API per registrare l'audio AudioRecord . Nella piattaforma UWP (Universal Windows Platform) (UWP) AudioRecorderService usa l'API per registrare l'audioAudioGraph.

Richiamare servizi cognitivi

L'applicazione di esempio richiama i servizi cognitivi Microsoft seguenti: