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:
È possibile creare nuovi elementi facendo clic sul + pulsante , che passa a TodoItemPage
. È anche possibile passare a questa pagina selezionando un'attività:
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 StartRecording
metodi di supporto , StopRecording
e , 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:
- API Riconoscimento vocale Microsoft. Per altre informazioni, vedere Riconoscimento vocale con l'API Riconoscimento vocale Microsoft.
- API Controllo ortografico Bing. Per altre informazioni, vedere Controllo ortografico con l'API Controllo ortografico Bing.
- API Translate. Per altre informazioni, vedere Traduzione testuale usando l'API Traduttore.