Xamarin.Forms Введение в Azure Cognitive Services
Microsoft Cognitive Services — это набор API, пакетов SDK и служб, доступных разработчикам, чтобы сделать приложения более интеллектуальными, добавив такие функции, как распознавание лиц, распознавание речи и распознавание речи. В этой статье приведены общие сведения о примере приложения, демонстрирующего вызов некоторых API Microsoft Cognitive Service.
Обзор
Сопровождающий пример — это приложение списка todo, которое предоставляет функциональные возможности:
- Просмотр списка задач.
- Добавление и изменение задач с помощью мягкой клавиатуры или распознавание речи с помощью API службы "Речь Майкрософт".
- Орфографические проверка задачи с помощью API проверки орфографии Bing. Дополнительные сведения см. в разделе "Проверка орфографии" с помощью API проверки орфографии Bing.
- Перевод задач с английского на немецкий с помощью API Переводчик. Дополнительные сведения см. в разделе "Перевод текста" с помощью API Переводчик.
- Удаление задач.
- Задайте для задачи состояние "готово".
Предупреждение
API службы "Речь Bing" не рекомендуется использовать в службе "Речь Azure". Пример службы "Речь Azure" см. в разделе "Распознавание речи" с помощью API службы "Речь".
Задачи хранятся в локальной базе данных SQLite. Дополнительные сведения об использовании локальной базы данных SQLite см. в статье "Работа с локальной базой данных".
Отображается TodoListPage
при запуске приложения. На этой странице отображается список всех задач, хранящихся в локальной базе данных, и пользователь может создать новую задачу или оценить приложение:
Новые элементы можно создать, щелкнув + кнопку, которая переходит к элементу TodoItemPage
. На эту страницу можно также перейти, выбрав задачу:
Позволяет TodoItemPage
создавать, изменять, проверка орфографические, переведенные, сохраненные и удаленные задачи. Распознавание речи можно использовать для создания или редактирования задачи. Это достигается путем нажатия кнопки микрофона для запуска записи и нажатием той же кнопки во второй раз, чтобы остановить запись, которая отправляет запись в API распознавания речи Bing.
Общие сведения об анатомии приложения
Проект общего кода для примера приложения состоит из пяти основных папок:
Папка | Характер использования |
---|---|
Модели | Содержит классы модели данных для приложения. Сюда входит TodoItem класс, который моделирует один элемент данных, используемый приложением. В папке также содержатся классы, используемые для моделирования ответов JSON, возвращаемых различными API Microsoft Cognitive Service. |
Репозитории | Содержит ITodoItemRepository интерфейс и TodoItemRepository класс, используемые для выполнения операций базы данных. |
Службы | Содержит интерфейсы и классы, используемые для доступа к различным API Microsoft Cognitive Service, а также интерфейсы, DependencyService используемые классом для поиска классов, реализующих интерфейсы в проектах платформы. |
Utils | Timer Содержит класс, который используется AuthenticationService классом для обновления маркера доступа JWT каждые 9 минут. |
Представления | Содержит страницы для приложения. |
Проект общего кода также содержит некоторые важные файлы:
Файлы | Характер использования |
---|---|
Constants.cs | Класс Constants , указывающий ключи и конечные точки API для вызываемых API Microsoft Cognitive Service. Константы ключа API требуют обновления для доступа к различным API Cognitive Service. |
App.xaml.cs | Класс App отвечает за создание экземпляра первой страницы, которая будет отображаться приложением на каждой платформе, и TodoManager класс, используемый для вызова операций базы данных. |
Пакеты NuGet для Application Insights
В примере приложения используются следующие пакеты NuGet:
Newtonsoft.Json
— предоставляет платформу JSON для .NET.PCLStorage
— предоставляет набор кроссплатформенных локальных API ввода-вывода файлов.sqlite-net-pcl
— предоставляет хранилище базы данных SQLite.Xam.Plugin.Media
— предоставляет кроссплатформенные фотографии, принимающие и выбирая API.
Кроме того, эти пакеты NuGet также устанавливают собственные зависимости.
Моделирование данных
Пример приложения использует TodoItem
класс для моделирования данных, отображаемых и хранящихся в локальной базе данных SQLite. Следующий пример кода демонстрирует класс TodoItem
:
public class TodoItem
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string Name { get; set; }
public bool Done { get; set; }
}
Свойство ID
используется для уникальной идентификации каждого TodoItem
экземпляра и декорируется атрибутами SQLite, которые делают свойство автоматически добавочным первичным ключом в базе данных.
Вызов операций базы данных
Класс TodoItemRepository
реализует операции базы данных, а экземпляр класса можно получить через App.TodoManager
свойство. Класс TodoItemRepository
предоставляет следующие методы для вызова операций базы данных:
- GetAllItemsAsync — извлекает все элементы из локальной базы данных SQLite.
- GetItemAsync — извлекает указанный элемент из локальной базы данных SQLite.
- SaveItemAsync — создает или обновляет элемент в локальной базе данных SQLite.
- DeleteItemAsync — удаляет указанный элемент из локальной базы данных SQLite.
Реализации проектов платформы
Папка Services
в проекте общего кода содержит IFileHelper
интерфейсы и IAudioRecorderService
интерфейсы, используемые DependencyService
классом для поиска классов, реализующих интерфейсы в проектах платформ.
Интерфейс IFileHelper
реализуется классом FileHelper
в каждом проекте платформы. Этот класс состоит из одного метода, GetLocalFilePath
который возвращает локальный путь к файлу для хранения базы данных SQLite.
Интерфейс IAudioRecorderService
реализуется классом AudioRecorderService
в каждом проекте платформы. Этот класс состоит из StartRecording
методов и StopRecording
вспомогательных методов, которые используют API платформы для записи звука с микрофона устройства и хранения его в виде wav-файла. В iOS AudioRecorderService
API используется AVFoundation
для записи звука. В Android AudioRecordService
API используется AudioRecord
для записи звука. В универсальная платформа Windows (UWP) AudioRecorderService
api использует AudioGraph
API для записи звука.
Вызов когнитивных служб
Пример приложения вызывает следующие Службы Microsoft Cognitive Services:
- API службы "Речь Майкрософт". Дополнительные сведения см. в разделе "Распознавание речи" с помощью API службы "Речь Майкрософт".
- API проверки орфографии Bing. Дополнительные сведения см. в разделе "Проверка орфографии" с помощью API проверки орфографии Bing.
- Перевод API. Дополнительные сведения см. в разделе "Перевод текста" с помощью API Переводчик.