Xamarin.Forms Wprowadzenie do usług Azure Cognitive Services
Usługi Microsoft Cognitive Services to zestaw interfejsów API, zestawów SDK i usług dostępnych dla deweloperów w celu zwiększenia ich inteligencji przez dodanie funkcji, takich jak rozpoznawanie twarzy, rozpoznawanie mowy i interpretacja języka. Ten artykuł zawiera wprowadzenie do przykładowej aplikacji, która demonstruje sposób wywoływania niektórych interfejsów API usługi Microsoft Cognitive Service.
Omówienie
Towarzyszący przykład jest aplikacją listy zadań do wykonania, która zapewnia następujące funkcje:
- Wyświetlanie listy zadań.
- Dodawanie i edytowanie zadań za pomocą klawiatury miękkiej lub przez rozpoznawanie mowy za pomocą interfejsu API usługi Microsoft Speech.
- Zadania sprawdzania pisowni przy użyciu interfejsu API sprawdzania pisowni Bing. Aby uzyskać więcej informacji, zobacz Sprawdzanie pisowni przy użyciu interfejsu API sprawdzania pisowni Bing.
- Tłumaczenie zadań z języka angielskiego na niemiecki przy użyciu interfejsu API tłumaczenia w usłudze Translator. Aby uzyskać więcej informacji, zobacz Tłumaczenie tekstu przy użyciu interfejsu API tłumaczenia tekstu w usłudze Translator.
- Usuń zadania.
- Ustaw stan zadania na "gotowe".
Ostrzeżenie
Interfejs API rozpoznawania mowy Bing został przestarzały na rzecz usługi Azure Speech Service. Aby zapoznać się z przykładem poświęconym usłudze Azure Speech Service, zobacz Rozpoznawanie mowy za pomocą interfejsu API usługi Mowa.
Zadania są przechowywane w lokalnej bazie danych SQLite. Aby uzyskać więcej informacji na temat korzystania z lokalnej bazy danych SQLite, zobacz Praca z lokalną bazą danych.
Element TodoListPage
jest wyświetlany po uruchomieniu aplikacji. Na tej stronie zostanie wyświetlona lista wszystkich zadań przechowywanych w lokalnej bazie danych i umożliwia użytkownikowi utworzenie nowego zadania lub ocenianie aplikacji:
Nowe elementy można utworzyć, klikając + przycisk , który przechodzi do elementu TodoItemPage
. Tę stronę można również przejść do strony, wybierając zadanie:
Umożliwia TodoItemPage
tworzenie, edytowanie, sprawdzanie pisowni, tłumaczenie, zapisywanie i usuwanie zadań. Rozpoznawanie mowy może służyć do tworzenia lub edytowania zadania. Jest to osiągane przez naciśnięcie przycisku mikrofonu, aby rozpocząć nagrywanie, i naciskając ten sam przycisk po raz drugi, aby zatrzymać nagrywanie, co wysyła nagranie do interfejsu API rozpoznawania mowy Bing.
Omówienie anatomii aplikacji
Projekt kodu udostępnionego dla przykładowej aplikacji składa się z pięciu głównych folderów:
Folder | Purpose |
---|---|
Modele | Zawiera klasy modelu danych dla aplikacji. Obejmuje to klasę TodoItem , która modeluje pojedynczy element danych używanych przez aplikację. Folder zawiera również klasy używane do modelowania odpowiedzi JSON zwracanych z różnych interfejsów API usługi Microsoft Cognitive Service. |
Repozytoria | Zawiera interfejs i TodoItemRepository klasę ITodoItemRepository używaną do wykonywania operacji bazy danych. |
Usługi | Zawiera interfejsy i klasy używane do uzyskiwania dostępu do różnych interfejsów API usługi Microsoft Cognitive Service wraz z interfejsami używanymi przez DependencyService klasę do lokalizowania klas implementujących interfejsy w projektach platformy. |
Utils | Zawiera klasę Timer używaną przez klasę do odnawiania tokenu AuthenticationService dostępu JWT co 9 minut. |
Widoki | Zawiera strony aplikacji. |
Projekt kodu udostępnionego zawiera również kilka ważnych plików:
Plik | Purpose |
---|---|
Constants.cs | Klasa Constants , która określa klucze interfejsu API i punkty końcowe dla wywoływanych interfejsów API usługi Microsoft Cognitive Service. Stałe klucza interfejsu API wymagają aktualizacji w celu uzyskania dostępu do różnych interfejsów API usługi Cognitive Service. |
App.xaml.cs | Klasa App jest odpowiedzialna za utworzenie wystąpienia zarówno pierwszej strony, która będzie wyświetlana przez aplikację na każdej platformie, jak i TodoManager klasę używaną do wywoływania operacji bazy danych. |
Pakiety NuGet
Przykładowa aplikacja używa następujących pakietów NuGet:
Newtonsoft.Json
— udostępnia strukturę JSON dla platformy .NET.PCLStorage
— udostępnia zestaw międzyplatformowych interfejsów API we/wy plików lokalnych.sqlite-net-pcl
— udostępnia magazyn bazy danych SQLite.Xam.Plugin.Media
— zapewnia międzyplatformowe robienie zdjęć i wybieranie interfejsów API.
Ponadto te pakiety NuGet również instalują własne zależności.
Modelowanie danych
Przykładowa aplikacja używa TodoItem
klasy do modelowania danych wyświetlanych i przechowywanych w lokalnej bazie danych SQLite. Poniższy przykład kodu przedstawia klasę TodoItem
:
public class TodoItem
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string Name { get; set; }
public bool Done { get; set; }
}
Właściwość ID
służy do unikatowego identyfikowania każdego TodoItem
wystąpienia i jest ozdobiona atrybutami SQLite, które sprawiają, że właściwość automatycznie zwiększa klucz podstawowy w bazie danych.
Wywoływanie operacji bazy danych
Klasa TodoItemRepository
implementuje operacje bazy danych, a wystąpienie klasy można uzyskać dostęp za pośrednictwem App.TodoManager
właściwości . Klasa TodoItemRepository
udostępnia następujące metody wywoływania operacji bazy danych:
- GetAllItemsAsync — pobiera wszystkie elementy z lokalnej bazy danych SQLite.
- GetItemAsync — pobiera określony element z lokalnej bazy danych SQLite.
- SaveItemAsync — tworzy lub aktualizuje element w lokalnej bazie danych SQLite.
- DeleteItemAsync — usuwa określony element z lokalnej bazy danych SQLite.
Implementacje projektów platformy
Folder Services
w projekcie kodu udostępnionego zawiera IFileHelper
interfejsy i IAudioRecorderService
, które są używane przez DependencyService
klasę do lokalizowania klas implementujących interfejsy w projektach platformy.
Interfejs IFileHelper
jest implementowany przez klasę FileHelper
w każdym projekcie platformy. Ta klasa składa się z jednej metody , GetLocalFilePath
która zwraca lokalną ścieżkę pliku do przechowywania bazy danych SQLite.
Interfejs IAudioRecorderService
jest implementowany przez klasę AudioRecorderService
w każdym projekcie platformy. Ta klasa składa się z StartRecording
metod , StopRecording
i pomocniczych, które używają interfejsów API platformy do rejestrowania dźwięku z mikrofonu urządzenia i przechowywania go jako pliku wav. W systemie iOS AudioRecorderService
interfejs API używa go do rejestrowania dźwięku AVFoundation
. W systemie Android AudioRecordService
interfejs API używa go do rejestrowania dźwięku AudioRecord
. Na platforma uniwersalna systemu Windows (UWP) AudioRecorderService
interfejs API używa interfejsu API do rejestrowania dźwiękuAudioGraph
.
Wywoływanie usług Cognitive Services
Przykładowa aplikacja wywołuje następujące usługi Microsoft Cognitive Services:
- Interfejs API rozpoznawania mowy firmy Microsoft. Aby uzyskać więcej informacji, zobacz Rozpoznawanie mowy przy użyciu interfejsu API rozpoznawania mowy firmy Microsoft.
- Interfejs API sprawdzania pisowni Bing. Aby uzyskać więcej informacji, zobacz Sprawdzanie pisowni przy użyciu interfejsu API sprawdzania pisowni Bing.
- Tłumaczenie interfejsu API. Aby uzyskać więcej informacji, zobacz Tłumaczenie tekstu przy użyciu interfejsu API tłumaczenia tekstu w usłudze Translator.