Xamarin.Forms a Azure Cognitive Services úvod

Stáhnout ukázku Stažení ukázky

Microsoft Cognitive Services je sada rozhraní API, sady SDK a služeb, které mají vývojáři k dispozici, aby se jejich aplikace díky přidání funkcí, jako je rozpoznávání obličeje, rozpoznávání řeči a porozumění jazyku, zinteligentnější. Tento článek obsahuje úvod do ukázkové aplikace, který ukazuje, jak vyvolat některá rozhraní API služeb Microsoft Cognitive Service.

Přehled

Doprovodná ukázka je aplikace seznamu úkolů, která poskytuje funkce pro:

Upozornění

Rozhraní Bing Speech API je zastaralé a je ve prospěch služby Azure Speech. Ukázku vyhrazenou pro službu Azure Speech najdete v tématu Rozpoznávání řeči pomocí rozhraní API služby Speech.

Úkoly se ukládají v místní databázi SQLite. Další informace o použití místní databáze SQLite najdete v tématu Práce s místní databází.

Se TodoListPage zobrazí při spuštění aplikace. Tato stránka zobrazuje seznam všech úkolů uložených v místní databázi a umožňuje uživateli vytvořit nový úkol nebo ohodnotit aplikaci:

TodoListPage

Nové položky můžete vytvořit kliknutím na + tlačítko , které přejde na TodoItemPage . Na tuto stránku můžete přejít také výběrem úkolu:

TodoItemPage

Umožňuje TodoItemPage vytvářet, upravovat, kontrolovat pravopis, překládat, ukládat a odstraňovat úlohy. Rozpoznávání řeči lze použít k vytvoření nebo úpravě úlohy. Toho dosáhnete tak, že stisknutím tlačítka mikrofonu spustíte nahrávání a dalším stisknutím stejného tlačítka zastavíte nahrávání, které odešle záznam do rozhraní API pro Bing řeči.

Kliknutím na tlačítko smiřuje na přejde na , který se používá k rozpoznávání emocí na obrázku TodoListPageRateAppPage výrazu tváře:

RateAppPage

Umožňuje uživateli posout fotku tváře, která se odeslala do rozhraní API pro rozpoznávání tváře s RateAppPage vrácenou emocí.

Porozumění anatomii aplikace

Projekt sdíleného kódu ukázkové aplikace se skládá z pěti hlavních složek:

Složka Účel
Modely Obsahuje třídy datového modelu pro aplikaci. To zahrnuje TodoItem třídu , která modeluje jednu položku dat, kterou používá aplikace. Složka obsahuje také třídy používané k modelování odpovědí JSON vrácených z různých rozhraní API služeb Microsoft Cognitive Service.
Úložiště Obsahuje rozhraní ITodoItemRepository a TodoItemRepository třídu, které se používají k provádění databázových operací.
Služby Obsahuje rozhraní a třídy, které se používají pro přístup k různým rozhraním API služeb Microsoft Cognitive Service, spolu s rozhraními, která třída používá k vyhledání tříd, které implementují rozhraní v projektech DependencyService platformy.
Nástroje Obsahuje třídu , kterou třída používá k obnovení TimerAuthenticationService přístupového tokenu JWT každých 9 minut.
Zobrazení Obsahuje stránky pro aplikaci.

Projekt sdíleného kódu obsahuje také některé důležité soubory:

Soubor Účel
Constants.cs Třída , která určuje klíče rozhraní API a koncové body pro vyvolaná rozhraní API služeb Constants Microsoft Cognitive Service. Konstanty klíče rozhraní API vyžadují aktualizaci pro přístup k různým rozhraním API služeb Cognitive Service.
App.xaml.cs Třída zodpovídá za vytvoření instance první stránky, která bude zobrazena aplikací na každé platformě, i třídu, která se používá k vyvolání AppTodoManager databázových operací.

Balíčky NuGet

Ukázková aplikace používá následující NuGet balíčky:

  • Newtonsoft.Json – poskytuje rozhraní JSON pro .NET.
  • PCLStorage – poskytuje sadu rozhraní API pro IO pro více platforem pro místní soubory.
  • sqlite-net-pcl – poskytuje databázové úložiště SQLite.
  • Xam.Plugin.Media – poskytuje pro více platforem pořízené fotky a výběr rozhraní API.

Kromě toho tyto NuGet také nainstalují vlastní závislosti.

Modelování dat

Ukázková aplikace používá třídu k modelování dat, která se zobrazují a ukládají TodoItem v místní databázi SQLite. Následující příklad kódu ukazuje TodoItem třídu :

public class TodoItem
{
  [PrimaryKey, AutoIncrement]
  public int ID { get; set; }
  public string Name { get; set; }
  public bool Done { get; set; }
}

Vlastnost se používá k jednoznačné identifikaci jednotlivých instancí a je dekorovaná atributy SQLite, které z vlastnosti dělají v databázi automaticky se zvětšující IDTodoItem primární klíč.

Vyvolání databázových operací

Třída implementuje databázové operace a instance třídy je TodoItemRepository přístupná prostřednictvím App.TodoManager vlastnosti . Třída TodoItemRepository poskytuje následující metody pro vyvolání databázových operací:

  • GetAllItemsAsync – načte všechny položky z místní databáze SQLite.
  • GetItemAsync – načte zadanou položku z místní databáze SQLite.
  • SaveItemAsync – vytvoří nebo aktualizuje položku v místní databázi SQLite.
  • DeleteItemAsync – odstraní zadanou položku z místní databáze SQLite.

Implementace projektu platformy

Složka v projektu sdíleného kódu obsahuje rozhraní a , která třída používá k vyhledání tříd, které implementují ServicesIFileHelper rozhraní v IAudioRecorderServiceDependencyService projektech platformy.

Rozhraní IFileHelper je implementováno FileHelper třídou v každém projektu platformy. Tato třída se skládá z jedné metody , která vrací místní GetLocalFilePath cestu k souboru pro uložení databáze SQLite.

Rozhraní IAudioRecorderService je implementováno AudioRecorderService třídou v každém projektu platformy. Tato třída se skládá z , a podpůrných metod, které používají rozhraní API platformy k záznamu zvuku z mikrofonu zařízení a k jeho uložení StartRecordingStopRecording jako souboru wav. V iOSu AudioRecorderService používá rozhraní API k záznamu AVFoundation zvuku. V Androidu používá AudioRecordService rozhraní API k záznamu AudioRecord zvuku. Na univerzální platformě Windows Platform (UPW) používá AudioRecorderService rozhraní API k záznamu AudioGraph zvuku.

Vyvolání kognitivních služeb

Ukázková aplikace vyvolá následující akce Cognitive Services: