Udostępnij za pośrednictwem


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:

TodoListPage

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:

TodoItemPage

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 , GetLocalFilePathktó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 StartRecordingmetod , StopRecordingi 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: