Xamarin.Forms Úvod do služeb Azure Cognitive Services
Microsoft Cognitive Services je sada rozhraní API, sad SDK a služeb dostupných vývojářům, aby jejich aplikace byly inteligentnější přidáním funkcí, jako je rozpoznávání obličeje, rozpoznávání řeči a porozumění jazyku. 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:
- Umožňuje zobrazit seznam úkolů.
- Úkoly můžete přidávat a upravovat pomocí softwarové klávesnice nebo pomocí rozhraní Microsoft Speech API.
- Úlohy kontroly pravopisu pomocí rozhraní API Bingu pro kontrolu pravopisu Další informace najdete v tématu Kontrola pravopisu pomocí rozhraní API Bingu pro kontrolu pravopisu.
- Překlad úkolů z angličtiny do němčiny pomocí služby Translator API Další informace najdete v tématu Překlad textu pomocí služby Translator API.
- Odstraňte úkoly.
- Nastavte stav úkolu na Hotovo.
Upozorňující
Rozhraní API pro zpracování řeči Bingu je ve prospěch služby Azure Speech zastaralé. Ukázku vyhrazenou pro službu Azure Speech najdete v tématu Rozpoznávání řeči pomocí rozhraní SPEECH API služby Speech.
Úkoly se ukládají do místní databáze SQLite. Další informace o použití místní databáze SQLite naleznete v tématu Práce s místní databází.
Zobrazí se TodoListPage
při spuštění aplikace. Na této stránce se zobrazí seznam všech úkolů uložených v místní databázi a umožní uživateli vytvořit nový úkol nebo ohodnotit aplikaci:
Nové položky lze vytvořit kliknutím na + tlačítko, které přejde na TodoItemPage
tlačítko . Na tuto stránku můžete přejít také tak, že vyberete úkol:
Umožňuje TodoItemPage
vytvářet, upravovat, kontrolovat pravopis, překládat, ukládat a odstraňovat úkoly. Rozpoznávání řeči se dá použít k vytvoření nebo úpravě úkolu. 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é nahrávku odešle do rozhraní API pro rozpoznávání řeči Bingu.
Vysvětlení anatomie aplikace
Projekt sdíleného kódu pro ukázkovou aplikaci 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 používaných aplikací. 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ě | ITodoItemRepository Obsahuje rozhraní 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žby Microsoft Cognitive Service, spolu s rozhraními, která používají DependencyService třída k vyhledání tříd, které implementují rozhraní v projektech platformy. |
Utils | Timer Obsahuje třídu, kterou třída používá AuthenticationService k obnovení přístupového tokenu JWT každých 9 minut. |
Zobrazení | Obsahuje stránky aplikace. |
Projekt sdíleného kódu obsahuje také některé důležité soubory:
Soubor | Účel |
---|---|
Constants.cs | Třída Constants , která určuje klíče rozhraní API a koncové body pro rozhraní API služeb Microsoft Cognitive Service, které jsou vyvolány. Klíčové konstanty rozhraní API vyžadují aktualizaci pro přístup k různým rozhraním API služeb Cognitive Service. |
App.xaml.cs | Třída App zodpovídá za vytvoření instance první stránky, která se zobrazí aplikací na každé platformě, a TodoManager třídy, která se používá k vyvolání databázových operací. |
Balíčky NuGet
Ukázková aplikace používá následující balíčky NuGet:
Newtonsoft.Json
– poskytuje rozhraní JSON pro .NET.PCLStorage
– poskytuje sadu rozhraní API io vstupně-výstupních operací pro různé platformy.sqlite-net-pcl
– poskytuje úložiště databáze SQLite.Xam.Plugin.Media
– poskytuje multiplatformní pořizování fotek a výběr rozhraní API.
Kromě toho tyto balíčky NuGet také nainstalují vlastní závislosti.
Modelování dat
Ukázková aplikace používá TodoItem
třídu k modelování dat zobrazených a uložených 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 ID
se používá k jedinečné identifikaci jednotlivých TodoItem
instancí a je zdobena atributy SQLite, které vlastnost automaticky navyšují primární klíč v databázi.
Vyvolání databázových operací
Třída TodoItemRepository
implementuje databázové operace a instanci třídy lze získat přístup 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 projektů platformy
Složka Services
v projektu sdíleného kódu obsahuje IFileHelper
rozhraní IAudioRecorderService
, která třída používá DependencyService
k vyhledání tříd, které implementují rozhraní v 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, GetLocalFilePath
která vrací místní cestu k souboru pro ukládání databáze SQLite.
Rozhraní IAudioRecorderService
je implementováno AudioRecorderService
třídou v každém projektu platformy. Tato třída se skládá z StartRecording
, StopRecording
a podpůrných metod, které používají rozhraní API platformy k záznamu zvuku z mikrofonu zařízení a uložit ho jako soubor wav. V iOSu AudioRecorderService
používá rozhraní API k nahrávání zvuku AVFoundation
. V Androidu AudioRecordService
používá rozhraní API k záznamu zvuku AudioRecord
. Na Univerzální platforma Windows (UPW) AudioRecorderService
používá AudioGraph
rozhraní API k nahrávání zvuku.
Vyvolání kognitivních služeb
Ukázková aplikace vyvolá následující služby Microsoft Cognitive Services:
- Microsoft Speech API. Další informace najdete v tématu Rozpoznávání řeči pomocí rozhraní Microsoft Speech API.
- Rozhraní API bingu pro kontrolu pravopisu Další informace najdete v tématu Kontrola pravopisu pomocí rozhraní API Bingu pro kontrolu pravopisu.
- Překlad rozhraní API Další informace najdete v tématu Překlad textu pomocí služby Translator API.