Упражнение. Настройка распознавания намерения и естественных языков

Завершено

В этом модуле мы рассмотрим распознавание намерения в Azure Speech Services. Распознавание намерений позволяет оснастить приложение командами распознавания речи с помощью искусственного интеллекта, где пользователи могут говорить неспецифические речевые команды и по-прежнему понимать свое намерение.

Подготовка сцены

  1. В окне иерархии выберите объект Lunarcom, а затем в окне Инспектора нажмите кнопку "Добавить компонент", чтобы добавить компонент "Распознаватель намерений Лункома" (Скрипт) в объект Lunarcom.

    Screenshot of adding the Lunarcom Intent Recognizer (Script) component.

  2. В окне "Проект" перейдите в раздел "Активы>MRTK". Tutorials.GettingStarted>Prefabs>RocketLauncher folder, перетащите RocketLauncher_Complete префаб в окно иерархии и поместите его в подходящее расположение перед камерой. Например:

    • Позиция преобразования X = 0, Y = 1, Z = 1,5
    • для параметра преобразования Rotation (Поворот) укажите значения X = 0, Y = 90, Z = 0.

    Screenshot of adding the RocketLauncher_Complete prefab.

  3. В окне иерархии снова выберите объект Lunarcom, а затем разверните объект RocketLauncher_Complete>Button и назначьте каждому дочернему объекту Button соответствующее поле "Кнопки лунного запуска".

    Screenshot of assigning each of the buttons.

Создание ресурса службы языка Azure

В этом разделе вы создадите ресурс службы языка Azure для приложения CLU, которое вы создадите в следующем разделе.

  1. Войдите в портал Azure и выберите "Создать ресурс", а затем найдите и выберите языковую службу:

    Screenshot of the Azure language service resource.

  2. Нажмите кнопку Создать, чтобы создать экземпляр этой службы:

    Screenshot of creating an instance of this service.

  3. На странице "Создание языка" введите следующие значения:

    • Для подписки выберите бесплатную пробную версию, если у вас есть пробная подписка. Если у вас нет такой подписки, выберите другую.
    • Для группы ресурсов выберите ссылку "Создать новую", а затем введите подходящее имя, например MRTK-Tutorials. Нажмите ОК.

    Screenshot of the Create Language screen.

    Совет

    Если у вас уже есть другая подходящая группа ресурсов в учетной записи Azure, вы можете использовать эту группу ресурсов вместо создания новой.

  4. На странице "Создание" введите следующие значения:

    • В поле "Имя" введите подходящее имя службы, например MRTK-Tutorials-AzureSpeechServices
    • В регионе выберите расположение, близкое к физическому расположению пользователей приложения; например, восточная часть США
    • Для ценовой категории в этом руководстве выберите F0 (5k транзакций в 30 дней)

    Screenshot of the configured Create Language form.

  5. Затем нажмите кнопку "Проверить и создать", просмотрите сведения, а затем нажмите кнопку "Создать " в нижней части страницы, чтобы создать ресурс (и новую группу ресурсов, если она настроена для создания):

    Screenshot of the Review + Create screen.

  6. После завершения процесса создания ресурсов вы увидите сообщение о завершении развертывания:

    Screenshot of the Overview screen.

Создание приложения "Распознавание речи беседы" (CLU)

В этом разделе описано, как создать приложение CLU, настроить и обучить модель прогнозирования и подключить его к ресурсу языка Azure, созданному на предыдущем шаге.

В частности, вы создадите намерение, которое, если пользователь говорит, что необходимо выполнить действие, приложение активирует PressableButton.OnClicked() событие на одной из трех синих кнопок в сцене в зависимости от того, какая кнопка ссылается на пользователя.

Например, если пользователь говорит, что идти вперед и запустить ракету, приложение прогнозирует, что идти вперед означает, что необходимо предпринять некоторые действия , и что PressableButton.OnClicked() событие для целевого объекта находится на кнопке запуска .

Ниже приведены основные действия, которые необходимо выполнить.

  1. Создание приложения CLU
  2. Создание намерений
  3. Создание примеров речевых фрагментов.
  4. Создание сущностей
  5. Сопоставление сущностей и примеров речевых фрагментов
  6. Обучение, тестирование и публикация приложения.

1. Создание приложения CLU

Используя ту же учетную запись пользователя, которую вы использовали при создании ресурса Azure в предыдущем разделе, войдите в Language Studio.

  1. После входа вам будет предложено выбрать ресурс Azure. Выберите значения, используемые при создании ресурса службы языка Azure, а затем нажмите кнопку "Готово".

    Screenshot showing the Select an Azure resource popup.

  2. После подключения ресурса Azure выберите "Создать новую > беседу" Распознавание речи и введите следующие значения в всплывающем окне "Создание проекта".

    • В поле "Имя" введите подходящее имя, например MRTK-Tutorials-AzureSpeechServices. Запишите выбранное имя, вам потребуется позже в руководстве.
    • Для основного языка речевых фрагментов выберите язык.
    • Для описания при необходимости введите подходящее описание.

    Screenshot of the Create a project popup.

  3. Нажмите кнопку "Рядом ", чтобы просмотреть конфигурацию проекта. Выберите Создать, чтобы создать проект.

    Screenshot of the Review and finish screen.

  4. После создания нового приложения вы перейдете на страницу определения схемы этого приложения.

    Screenshot of the App's dashboard page.

2. Создание намерений

  1. На странице определения схемы выберите "Добавить" и введите следующее значение во всплывающем окне "Добавление намерения".

    • В поле Имя намерения введите PressButton.
  2. Нажмите кнопку "Добавить намерение", чтобы создать новое намерение :

    Screenshot of the Add an intent screen.

    Внимание

    В рамках этого руководства проект Unity будет ссылаться на это намерение по его имени (PressButton). Очень важно, чтобы вы назвали свое намерение точно таким же.

  3. После создания нового намерения вы вернетесь на страницу определения схемы. Намерение PressButton будет отображаться в списке намерений.

    Screenshot of the list of Intents.

3. Создание примеров речевых фрагментов

  1. На боковой панели слева нажмите кнопку "Метка данных". На экране маркировки данных выберите PressButton в раскрывающемся списке намерений Select.

    Screenshot of the Data labeling page.

  2. В список речевых фрагментов намерения PressButton добавьте следующие примеры высказываний:

    • активируйте последовательность запуска
    • покажите мне подсказку по размещению
    • инициируйте последовательность запуска
    • нажмите кнопку подсказок по размещению
    • дайте мне подсказку
    • нажмите кнопку запуска
    • i need a hint
    • нажмите кнопку сброса
    • настало время сбросить накопленный опыт
    • продолжайте и [запустите] ракету
  3. При добавлении всех примеров речевых фрагментов страница меток данных должна выглядеть следующим образом:

    Screenshot of the updated Data labeling page.

    Внимание

    В этом руководстве проект Unity будет ссылаться на слова "подсказки", "подсказки", "сброс" и "запуск". Очень важно заклинить эти слова точно так же, как и во всех случаях.

4. Создание сущностей

  1. На странице меток данных выберите "Добавить сущность" в области действий справа и введите следующие значения в всплывающем окне "Добавление сущности".

    • В поле Имя сущности введите Action.
  2. Нажмите кнопку "Добавить сущность ", чтобы создать новую сущность.

    Screenshot of adding a new entity.

  3. Повторите предыдущий шаг, чтобы создать другую сущность с именем Target, поэтому у вас есть две сущности с именем Action и Target.

    Screenshot of creating a target entity.

    Внимание

    В рамках этого руководства в проекте Unity для ссылки на эти намерения будут использоваться их имена (Action и Target). Очень важно назвать сущности точно так же.

5. Назначение сущностей примеру речевых фрагментов

  1. Выберите слово go, а затем в слове впереди, а затем выберите действие (простой) в контекстном всплывающем меню, чтобы пометить как значение сущности Action.

    Screenshot of labeling go ahead as an action entity value.

  2. Теперь речевой фрагмент go ahead определен как значение сущности Action. Теперь есть значение сущности действия под словами "идти вперед".

    Screenshot of the added action entity value.

    Примечание.

    Красная линия, которая отображается под меткой на изображении, указывает, что значение сущности не было предсказано; Это будет разрешено при обучении модели в следующем разделе.

  3. Затем выберите команду "Запустить слово", а затем выберите "Целевой" в контекстном всплывающем меню, чтобы пометить ее как значение целевой сущности.

    Screenshot of selecting the word launch.

  4. Теперь слово launch определено как значение сущности Target. Теперь под словом "launch" есть значение целевой сущности.

    Screenshot of the added Target entity value under the word launch.

  5. Пример речевого фрагмента go ahead and launch the rocket для намерения PressButton теперь настроен для прогнозирования следующим образом:

    • Намерение: PressButton
    • Сущность Action: go ahead
    • Сущность Target: launch
  6. Повторите описанный выше процесс, чтобы присвоить метки сущностей Action и Target каждому примеру речевого фрагмента, обязательно добавив следующие слова в качестве сущностей Target:

    • hint (обозначает кнопку HintsButton в проекте Unity);
    • hints (обозначает кнопку HintsButton в проекте Unity);
    • reset (обозначает кнопку ResetButton в проекте Unity);
    • launch (обозначает кнопку LaunchButton в проекте Unity).
  7. Нажмите кнопку Сохранить изменения. Когда вы помечаете все примеры речевых фрагментов, страница намерения PressButton должна выглядеть следующим образом:

    Screenshot of the PressButton intent page with all example utterances labeled.

6. Обучение, тестирование и публикация приложения

  1. Чтобы обучить приложение, нажмите кнопку "Обучение " на боковой панели слева. Вы увидите страницу заданий обучения.

    Screenshot of the Training jobs screen.

  2. Нажмите кнопку "Начать обучение" и выберите следующие значения:

    • Выберите "Обучение новой модели " и введите подходящее имя, например MRTK-Tutorials-AzureSpeechServices.
    • Выберите "Стандартный" обучение.
    • Выберите "Автоматически разделить набор тестирования" из обучающих данных.
  3. Выберите "Обучение", чтобы начать учебный процесс. После завершения обработки обучения вы увидите уведомление о завершенном обучении .

    Screenshot of Finished training notification.

  4. Чтобы просмотреть результаты обучения, выберите модель вывода на экране заданий обучения, а затем перейдите на вкладку "Производительность модели".

    Screenshot of the Model performance screen.

  5. Чтобы развернуть приложение, нажмите кнопку "Развернуть модель " на левой боковой панели. Вы увидите страницу развертывания модели.

    Screenshot of the Deploying a model page.

  6. Выберите "Добавить развертывание" и введите следующие значения во всплывающем оккупе "Добавить развертывание".

    • Выберите "Создать новое имя развертывания" и введите подходящее имя. Запишите выбранное имя, вам потребуется позже в руководстве.
    • Выберите модель, созданную ранее в раскрывающемся списке "Выбор обученной модели ".
  7. Выберите "Развернуть " и дождитесь завершения процесса публикации.

    Screenshot of the Deployment completed notification.

  8. Выберите новое развертывание и нажмите кнопку "Получить URL-адрес прогнозирования".

    Screenshot of the Get Prediction URL page.

Подключение проект unity в приложение CLU

  1. Во время всплывающего окна "Получить URL-адрес прогнозирования" выберите значок "Копировать ", чтобы скопировать URL-адрес прогнозирования.

    Screenshot of Get Prediction URL popup.

  2. Вернитесь в проект Unity в окне иерархии, выберите объект Lunarcom , а затем в окне инспектора найдите компонент "Распознаватель намерений Лункома" (скрипт) и настройте его следующим образом.

    • В поле "Конечная точка CLU" передайте URL-адрес прогнозирования, скопированный на предыдущем шаге.
    • В поле "Имя проекта CLU" передайте имя проекта, которое вы указали при создании приложения CLU.
    • В поле развертывания CLU передайте имя развертывания, указанное при создании нового развертывания.
    • В поле "Ключ API службы языка" передайте ключ API (Key1 или Key2) для языковой службы. Это можно найти в портал Azure, выбрав языковую службу, а затем выбрав ключи и конечную точку в меню слева.

    Screenshot of passing the example query you copied.

Проверка распознавания намерений

  1. Чтобы применить распознавание намерений прямо в редакторе Unity, необходимо разрешить использовать диктовку на компьютере разработке. Чтобы проверить этот параметр, откройте Windows Параметры, а затем выберите "Речь конфиденциальности>" и убедитесь, что включена функция распознавания речи в Интернете.

    Screenshot of Testing the intent recognition.

  2. При переходе в игровой режим вы можете проверить распознавание намерений. Для этого нажмите кнопку ракеты. Затем, когда вы говорите первый пример высказываний, идти вперед и запустить ракету, вы увидите лунныйmodule запуск в космос.

    Screenshot of Enter the game mode.

  3. Попробуйте все примеры речевых фрагментов, а затем некоторые варианты примеров речевых фрагментов, а затем несколько случайных речевых фрагментов.