Разработка приложений с пользовательскими голосовыми командами

Важно!

Пользовательские команды будут прекращены 30 апреля 2026 года. По состоянию на 30 октября 2023 г. в Speech Studio нельзя создавать новые приложения пользовательских команд. В связи с этим изменением LUIS будет прекращена 1 октября 2025 года. По состоянию на 1 апреля 2023 г. невозможно создать новые ресурсы LUIS.

В этом руководстве вы узнаете, как разрабатывать и настраивать приложения с пользовательскими голосовыми командами. Функция пользовательских голосовых команд позволяет создавать приложения с голосовыми командами, оптимизированные для голосового взаимодействия. Эта функция лучше всего подходит для выполнения задач или сценариев "команда и управление". Он хорошо подходит для устройств Интернета вещей (IoT) и для внешних и головных устройств.

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

  • Добавление параметров в команды
  • Добавление конфигураций в параметры команд
  • Создание правил взаимодействия
  • Добавление языковых шаблонов для речевых ответов
  • Использование пользовательских средств голосовой связи

Создание приложения с помощью простых команд

Начните с создания пустого приложения с пользовательскими голосовыми командами. Дополнительные сведения см. в кратком руководстве. В этом приложении вместо импорта проекта создается пустой проект.

  1. В поле Имя введите имя проекта Smart-Room-Lite (или другое имя по своему усмотрению).

  2. В списке Язык выберите Английский (США).

  3. Щелкните или выберите ресурс LUIS (распознавание речи).

    Screenshot showing the

Обновление ресурсов LUIS (необязательно)

Можно обновить ресурс разработки, выбранный в окне Создать проект. Можно также определить ресурс прогнозирования.

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

Добавление команды TurnOn

Добавьте команду в пустом созданном приложении с пользовательскими голосовыми командами, Smart-Room-Lite. Команда обрабатывает речевой фрагмент, Turn on the tv. Он отвечает на сообщение Ok, turning the tv on.

  1. Создайте новую команду, выбрав Новая команда в верхней части левой панели. Откроется окно Новая команда.
  2. Введите значение TurnOn в поле Имя.
  3. Нажмите кнопку создания.

Средняя область содержит свойства команды.

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

Настройка Description
Примеры предложений Примеры речевых фрагментов, которые может произнести пользователь, чтобы активировать эту команду.
Параметры Сведения, необходимые для выполнения команды.
Правила выполнения Действия, предпринимаемые для выполнения команды. Примеры: реакция на пользователя или взаимодействие с веб-службой.
Правила взаимодействия Другие правила для обработки особенных или более сложных ситуаций.

Screenshot showing where to create a command.

Добавление примеров предложений

В разделе Примеры предложений можно предоставить пример того, что может сказать пользователь.

  1. На средней панели выберите Примеры предложений.

  2. На панели справа добавьте примеры:

    Turn on the tv
    
  3. В верхней части области щелкните Сохранить.

Параметры еще не заданы, поэтому можно перейти к разделу Правила выполнения.

Добавление правила выполнения

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

Дополнительные сведения о правилах и правилах выполнения см. в разделе Основные понятия и определения пользовательских голосовых команд.

  1. Выберите правило выполнения по умолчанию Выполнено. Затем измените его следующим образом.

    Параметр Предлагаемое значение Описание:
    Имя ConfirmationResponse Имя, описывающее назначение правила
    Условия нет Условия, определяющие, когда правило может выполняться
    Действия Отправить голосовой ответ>Простой редактор>Ok, turning the tv on Действие, выполняемое, если условие правила имеет значение true

    Screenshot showing where to create a speech response.

  2. Нажмите кнопку Сохранить, чтобы сохранить действие.

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

    Примечание.

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

Добавление команды SetTemperature

Теперь добавьте еще одну команду, SetTemperature. Эта команда принимает одно высказывание и Set the temperature to 40 degreesотвечает с сообщением Ok, setting temperature to 40 degrees.

Чтобы создать новую команду, повторите действия для команды TurnOn, но используйте пример предложения Set the temperature to 40 degrees.

Затем измените существующие правила выполнения Выполнено, как показано ниже.

Параметр Предлагаемое значение
Имя ConfirmationResponse
Условия нет
Действия Отправить голосовой ответ>Простой редактор>Первая вариация>Ok, setting temperature to 40 degrees

Чтобы сохранить все изменения в команде, нажмите кнопку Сохранить.

Добавление команды SetAlarm

Создайте новую команду SetAlarm. Используйте пример предложения Set an alarm for 9 am tomorrow. Затем измените существующие правила выполнения Выполнено, как показано ниже.

Параметр Предлагаемое значение
Имя ConfirmationResponse
Условия нет
Действия Отправить голосовой ответ>Простой редактор>Первая вариация>Ok, setting an alarm for 9 am tomorrow

Чтобы сохранить все изменения в команде, нажмите кнопку Сохранить.

Попробуйте

Протестируйте поведение приложения с помощью панели тестирования:

  1. В правом верхнем углу панели щелкните значок Обучение.
  2. По завершении обучения выберите Тест.

Ознакомьтесь со следующими примерами речевых фрагментов с помощью голоса или текста:

  • Введите: установить температуру равной 40 градусам
  • Ожидаемый ответ: OK, установка температуры равной 40 градусам
  • Введите: Включить телевизор
  • Ожидаемый ответ: ОК, включение телевизора
  • Введите: установить будильник на завтра, на 9 утра
  • Ожидаемый ответ: ОК. Установка будильника на 9 утра, на завтра

Screenshot showing the test in a web-chat interface.

Совет

В области тестирования можно выбрать Включить детали, чтобы вывести сведения об обработке голосового или текстового ввода.

Добавление параметров в команды

Из этого раздела вы узнаете, как добавлять параметры в свои команды. Для выполнения задачи командам нужны параметры. В сложных сценариях параметры можно использовать для определения условий, запускающих настраиваемые действия.

Настройка параметров для команды TurnOn

Начните с изменения существующей команды TurnOn, чтобы включить и выключить несколько устройств.

  1. Теперь, когда команда обрабатывает сценарии включения и выключения, переименуйте команду как TurnOnOff.

    1. На панели слева выберите команду TurnOn. Затем рядом с кнопкой Новая команда в верхней части панели нажмите кнопку правки.

    2. В окне Переименование команды измените имя на TurnOnOff.

  2. Добавьте для команды новый параметр. Параметр указывает, нужно ли включить или выключить устройство.

    1. В верхней части средней панели нажмите кнопку Добавить. В раскрывающемся меню выберите Параметр.

    2. На правой панели в разделе Параметры, в поле Имя, добавьте OnOff.

    3. Выберите Обязательно. В окне Добавление ответа для обязательного параметра выберите Простой редактор. В поле "Первый вариант" добавьте "Вкл." или "Выкл.

    4. Выберите Обновить.

      Screenshot that shows the 'Add response for a required parameter' section with the 'Simple editor' tab selected.

    5. Настройте свойства параметра с помощью следующей таблицы. Сведения обо всех свойствах конфигурации команды см. в статье Основные понятия и определения пользовательских голосовых команд.

      Настройка Предлагаемое значение Описание:
      Имя OnOff Описательное имя для параметра
      Обязательный Выбрано Флажок, указывающий, является ли значение этого параметра обязательным перед завершением команды.
      Ответ на обязательный параметр Простой редактор>On or Off? Запрос на получение значения этого параметра, если оно неизвестно.
      Тип String Тип параметра, например "Номер", "Строка", "Дата, время" или "География".
      Конфигурация Принимать предопределенные входные значения из внутреннего каталога Для строковых параметров это значение ограничивает входные данные набором возможных значений.
      Предопределенные входные значения on, off Набор возможных значений и их псевдонимов.
    6. Чтобы добавить предопределенные входные значения, выберите Добавить предопределенные входные данные. В окне Новый элемент введите Имя, как показано в предыдущей таблице. В этом случае псевдонимы не используются, поэтому это поле можно оставить пустым.

      Screenshot showing how to create a parameter.

    7. Нажмите кнопку Сохранить, чтобы сохранить все настройки параметра.

Добавление параметра SubjectDevice

  1. Чтобы добавить второй параметр для представления имени устройств, которыми можно управлять с помощью этой команды, выберите Добавить. Используйте следующую конфигурацию.

    Параметр Предлагаемое значение
    Имя SubjectDevice
    Обязательный Выбрано
    Ответ на обязательный параметр Простой редактор>Which device do you want to control?
    Тип String
    Конфигурация Принимать предопределенные входные значения из внутреннего каталога
    Предопределенные входные значения tv, fan
    Псевдонимы (tv) television, telly
  2. Выберите Сохранить.

Изменение примеров предложений

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

  • Полные данные параметра: turn {OnOff} the {SubjectDevice}
  • Частичные данные параметра: turn it {OnOff}
  • Данные параметра отсутствуют: turn something

Примеры предложений, использующие различные сведения, позволяют приложению с пользовательскими голосовыми командами разрешать как одноразовые разрешения, так и разрешение с множественным включением, используя частичные данные.

Учитывая эти данные, измените примеры предложений, чтобы использовать предложенные параметры.

turn {OnOff} the {SubjectDevice}
{SubjectDevice} {OnOff}
turn it {OnOff}
turn something {OnOff}
turn something

Выберите Сохранить.

Совет

В редакторе примеров предложений используйте фигурные скобки для ссылки на свои параметры. Например, turn {OnOff} the {SubjectDevice}. Используйте вкладку для автоматического выполнения с помощью ранее созданных параметров.

Изменение правил выполнения для включения параметров

Измените существующее правило выполнения ConfirmationResponse.

  1. В разделе Условия выберите Добавить условие.

  2. В окне Новое условие, в списке Тип выберите Обязательные параметры. В следующем списке ниже выберите OnOff и SubjectDevice.

  3. Нажмите кнопку создания.

  4. В разделе Действия измените действие Отправить голосовой ответ, наведя на него указатель мыши и нажав кнопку изменения. В этот раз используйте только что созданные параметры OnOff и SubjectDevice:

    Ok, turning the {SubjectDevice} {OnOff}
    
  5. Выберите Сохранить.

Проверьте изменения, щелкнув значок Обучение в верхней части панели справа.

По завершении обучения выберите Тест. Откроется окно Тестирование приложения. Попробуйте следующие взаимодействия.

  • Входные данные: выключить телевизор
  • Выходные данные: ОК, выключение телевизора
  • Входные данные: выключить телеприемник
  • Выходные данные: ОК, выключение телевизора
  • Входные данные: выключить
  • Выходные данные: каким устройство вы собираетесь управлять?
  • Входные данные: телевизор
  • Выходные данные: ОК, выключение телевизора

Настройка параметров для команды SetTemperature

Измените команду SetTemperature, чтобы разрешить ей устанавливать температуру в соответствии с указаниями пользователя.

Добавьте параметр TemperatureValue. Используйте следующую конфигурацию:

Настройка Предлагаемое значение
Имя TemperatureValue
Обязательный Выбрано
Ответ на обязательный параметр Простой редактор>What temperature would you like?
Тип Number

Измените примеры речевых фрагментов для использования следующих значений.

set the temperature to {TemperatureValue} degrees
change the temperature to {TemperatureValue}
set the temperature
change the temperature

Измените существующие правила выполнения. Используйте следующую конфигурацию.

Настройка Предлагаемое значение
Условия Обязательный параметр>TemperatureValue
Действия Отправить голосовой ответ>Ok, setting temperature to {TemperatureValue} degrees

Настройка параметров для команды SetAlarm

Добавьте новый параметр с именем DateTime. Используйте следующую конфигурацию.

Параметр Предлагаемое значение
Имя DateTime
Обязательный Выбрано
Ответ на обязательный параметр Простой редактор>For what time?
Тип DateTime
Даты по умолчанию Если дата отсутствует, используйте сегодняшнюю.
Время по умолчанию Если время отсутствует, используйте начало дня.

Примечание.

В этой статье в основном используются типы параметров "Строка", "Номер" и "Дата, время". Список всех поддерживаемых типов параметров и их свойств см. в разделе Основные понятия и определения пользовательских голосовых команд.

Измените примеры речевых фрагментов. Используйте указанные ниже значения.

set an alarm for {DateTime}
set alarm {DateTime}
alarm for {DateTime}

Измените существующие правила выполнения. Используйте следующую конфигурацию.

Параметр Предлагаемое значение
Действия Отправить голосовой ответ>Ok, alarm set for {DateTime}

Протестируйте совместно три команды, используя речевые фрагменты, связанные с различными командами. (Можно переключаться между различными командами.)

  • Входные данные: установить будильник
  • Выходные данные: на какое время?
  • Входные данные: включить телевизор
  • Выходные данные: ОК, включение телевизора
  • Входные данные: установить будильник
  • Выходные данные: на какое время?
  • Входные данные: 5 вечера
  • Выходные данные: "ОК", "Будильник" для 2020-05-01 17:00:00

Добавление конфигураций в параметры команд

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

  • Как значения параметров могут принадлежать к набору, определенному вне приложения с пользовательскими голосовыми командами.
  • Как добавлять предложения проверки для значений параметров.

Настройка параметра в качестве объекта внешнего каталога

Функция "Пользовательские голосовые команды" позволяет настроить параметры строкового типа для ссылки на внешние каталоги, размещенные в конечной веб-точке. Поэтому внешний каталог можно изменять независимо, не редактируя приложение с пользовательскими голосовыми командами. Этот подход полезен, когда каталог содержит много записей.

Повторно используйте параметр SubjectDevice из команды TurnOnOff. Текущей конфигурацией этого параметра является Принимать предопределенные входные данные из внутреннего каталога. Эта конфигурация ссылается на статический список устройств в конфигурации параметров. Переместите это содержимое во внешний источник данных, который можно изменять независимо.

Чтобы переместить содержимое, начните с добавления новой конечной веб-точки узла. На панели слева перейдите в раздел Конечные веб-точки. Добавьте новый URL-адрес конечной точки веб-точки. Используйте следующую конфигурацию.

Параметр Предлагаемое значение
Имя getDevices
URL-адрес <Your endpoint of getDevices.json>
Method GET

Затем настройте и разместите конечную веб-точку, которая возвращает файл JSON со списком устройств, которыми можно управлять. Конечная точка веб-сайта должна возвращать json-файл, форматированный в следующем примере:

{
    "fan" : [],
    "refrigerator" : [
        "fridge"
    ],
    "lights" : [
        "bulb",
        "bulbs",
        "light",
        "light bulb"
    ],
    "tv" : [
        "telly",
        "television"
        ]
}

Далее перейдите на страницу значений параметра SubjectDevice. Настройте следующие свойства.

Параметр Предлагаемое значение
Конфигурация Принимать предопределенные входные данные из внешнего каталога
Конечная точка каталога getDevices
Method GET

Затем выберите Сохранить.

Важно!

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

Проверьте его, выбрав Обучение. После завершения обучения выберите Тест и попробуйте несколько взаимодействий.

  • Входные данные: включить
  • Выходные данные: каким устройство вы собираетесь управлять?
  • Входные данные: освещение
  • Выходные данные: ОК, включение освещения

Примечание.

Теперь можно управлять всеми устройствами, размещенными в конечной веб-точке. Но по-прежнему необходимо обучить приложение, чтобы протестировать новые изменения, а затем повторно опубликовать приложение.

Добавление проверки для параметров

Проверки — это конструкции, применяемые к определенным типам параметров, позволяющим настроить ограничения для значения параметра. Эти конструкции запрашивают исправления, если значения не попадают в ограничения. Список типов параметров, расширяющих конструкцию проверки, см. в разделе Основные понятия и определения пользовательских голосовых команд.

Проверьте правильность проверки с помощью команды SetTemperature. Чтобы добавить проверку для параметра Temperature, выполните следующие действия.

  1. На панели слева выберите команду SetTemperature.

  2. На средней панели выберите Температура.

  3. На панели справа выберите Добавить проверку.

  4. В окне Новая проверка настройте проверку, как показано в следующей таблице. Затем выберите Создать.

    Конфигурация параметров Предлагаемое значение Description
    Минимальное значение 60 Для числовых параметров (типа "Номер") — минимальное значение, которое можно предположить для этого параметра
    Максимальное значение 80 Для числовых параметров (типа "Номер") — максимальное значение, которое можно предположить для этого параметра
    Ответ об ошибке Простой редактор>Первая вариация>Sorry, I can only set temperature between 60 and 80 degrees. What temperature do you want? Запрос нового значения, если проверка не пройдена

    Screenshot showing how to add a range validation.

Проверьте изменение, щелкнув значок Обучение в верхней части панели справа. По завершении обучения выберите Тест. Попробуйте несколько взаимодействий.

  • Входные данные: установить температуру равной 72 градусам.
  • Выходные данные: ОК, установка температуры равной 72 градусам
  • Входные данные: установить температуру равной 45 градусам
  • Выходные данные: к сожалению, я могу задать только температуру от 60 градусов до 80 градусов
  • Входные данные: ладно, сделайте ее равной 72 градусам
  • Выходные данные: ОК, установка температуры равной 72 градусам

Добавление правил взаимодействия

Правила взаимодействия — это дополнительные правила, которые обрабатывают определенные или сложные ситуации. Хотя можно создать собственные правила взаимодействия, в этом примере будут использованы правила взаимодействия для следующих сценариев.

  • Подтверждение команд
  • Добавление одношагового исправления в команды

Дополнительные сведения о правилах взаимодействия см. в разделе Основные понятия и определения пользовательских голосовых команд.

Добавление подтверждений для команды

Чтобы добавить подтверждение, используйте команду SetTemperature. Чтобы получить подтверждение, создайте правила взаимодействия, выполнив следующие действия.

  1. На панели слева выберите команду SetTemperature.

  2. На средней панели добавьте правила взаимодействия, выбрав Добавить. Затем выберите команду Правила взаимодействия>Подтвердить.

    Это действие добавляет три правила взаимодействия. Правила запрашивают у пользователя подтверждение даты и времени будильника. Они предполагают подтверждение (да или нет) следующего включения.

    1. Измените правило взаимодействия Подтвердить команду, используя следующую конфигурацию.

      1. Измените имя на Подтвердить температуру.
      2. Условие "Все необходимые параметры" уже заданы.
      3. Добавьте новое действие: введите>ответ>"Отправить речь", вы уверены, что хотите задать температуру как градусы {TemperatureValue}?
      4. В разделе Ожидания сохраните значение по умолчанию для параметра Ожидание подтверждения от пользователя.

      Screenshot showing how to create the required parameter response.

    2. Измените правило взаимодействия Подтверждение выполнено для обработки успешного подтверждения (пользователь сказал "да").

      1. Измените имя на Подтверждение температуры выполнено.
      2. Оставьте существующее Успешное подтверждение.
      3. Добавьте новое условие: Тип>Обязательные параметры>TemperatureValue.
      4. Сохраните значение по умолчанию для Состояние после выполнения, равное Выполнить правила выполнения.
    3. Измените правило взаимодействия Подтверждение отклонено для обработки сценариев в случае отказа подтверждения (пользователь сказал "нет").

      1. Измените имя на Подтверждение температуры отклонено.
      2. Оставьте существующее условие Подтверждение отклонено.
      3. Добавьте новое условие: Тип>Обязательные параметры>TemperatureValue.
      4. Добавьте новое действие: Тип>Отправить голосовой ответ>Нет проблем. Тогда какую температуру установить?.
      5. Измените значение по умолчанию Состояние после выполнения на Ожидание ввода данных пользователем.

Важно!

В этой статье будет использована встроенная возможность подтверждения. Можно также добавить правила взаимодействия вручную, одно за другим.

Проверьте изменения, выбрав Обучение. По завершении обучения выберите Тест.

  • Входные данные: установить температуру равной 80 градусам
  • Выходные данные: действительно нужно задать температуру равной 80 градусам?
  • Входные данные: нет
  • Выходные данные: нет проблем. Тогда какую температуру установить?
  • Входные данные: 72 градуса
  • Выходные данные: действительно нужно задать температуру равной 72 градусам?
  • Входные данные: да
  • Выходные данные: ОК, установка температуры равной 72 градусам

Внесение исправлений в команде

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

На левой панели выберите команду SetAlarm. Затем добавьте новый параметр AlarmTone.

  • Имя>AlarmTone
  • Тип>Строка
  • Значение по умолчанию>Колокола
  • Конфигурация>Принимать предопределенные входные значения из внутреннего каталога
  • Предопределенные входные значения>Колокола, Перезвони Эхо (эти значения являются отдельными предопределенными входными данными).

Затем измените ответ для параметра DateTime на Готов установить будильник с сигналом {AlarmTone}. На какое время?. Затем измените правило выполнения следующим образом.

  1. Выберите существующее правило выполнение ConfirmationResponse.
  2. На панели справа наведите указатель мыши на существующее действие и выберите Изменить.
  3. Измените голосовой ответ на OK, alarm set for {DateTime}. The alarm tone is {AlarmTone}.

Важно!

Сигнал будильника может измениться без какой бы то ни было явной настройки в текущей команде. Например, он может измениться, если команда еще не завершена. Исправление включено по умолчанию для всех параметров команды, независимо от числа повторов, если команда еще не выполнена.

Внесение исправления после завершения выполнения команды

Платформа пользовательских команд позволяет выполнять одношаговую коррекцию даже после завершения команды. Эта функция по умолчанию не включена. Она должна быть настроена явно.

Чтобы настроить одношаговое исправление, выполните следующие действия.

  1. В команде SetAlarm добавьте правило взаимодействия типа Изменить предыдущую команду, чтобы изменить ранее установленный будильник. Переименуйте правило взаимодействия как Обновить предыдущий будильник.
  2. Сохраните условие по умолчанию: нужно изменить предыдущую команду.
  3. Добавьте новое условие: Тип>Обязательные параметры>DateTime.
  4. Добавьте новое действие: Тип>Отправить голосовой ответ>Простой редактор>Обновление предыдущего времени будильника на {DateTime}.
  5. Сохраните значение по умолчанию Состояние после выполнения, равное Команда выполнена.

Проверьте изменения, выбрав Обучение. Подождите окончания обучения, а затем выберите Тест.

  • Входные данные: установить будильник.
  • Выходные данные: готов установить сигнал будильника как "Колокола". На какое время?
  • Входные данные: установить будильник со значением "Перезвон" на 9 утра, на завтра.
  • Выходные данные: ОК, для 2020-05-21 09:00:00параметра "Будильник". Сигнал будильника — "Перезвон".
  • Входные данные: нет, на 8 утра.
  • Выходные данные: обновление предыдущего времени будильника на 29.05.2020, 08:00.

Примечание.

В реальном приложении в разделе Действия этого правила исправления также необходимо отправить действие обратно клиенту или вызвать конечную точку HTTP, чтобы изменить время будильника в системе. Это действие должно отвечать исключительно за обновление времени будильника. Оно не должно отвечать ни за какой другой атрибут команды. В данном случае таким атрибутом будет сигнал будильника.

Добавление шаблонов генерирования речи для голосовых ответов

Шаблоны генерирования речи (LG) позволяют настраивать ответы, отправляемые клиенту. Они вводят изменения в ответы. Генерирование речи можно обеспечить, используя следующие средства.

  • Шаблоны генерирования речи.
  • Адаптивные выражения.

Шаблоны пользовательских голосовых команд основаны на Шаблонах LG платформы Bot Framework. Поскольку функция пользовательских голосовых команд при необходимости создает новый шаблон LG (для голосовых ответов в параметрах или действиях), указывать имя шаблона LG не нужно.

Поэтому не нужно определять шаблон следующим образом.

   # CompletionAction
   - Ok, turning {OnOff} the {SubjectDevice}
   - Done, turning {OnOff} the {SubjectDevice}
   - Proceeding to turn {OnOff} {SubjectDevice}

Вместо этого можно определить текст шаблона без имени, например так:

Screenshot showing a template editor example.

Это изменение вводит вариации в голосовые ответы, отправляемые клиенту. Для речевых фрагментов соответствующий голосовой ответ выбирается случайным образом из предоставленных вариантов.

Используя преимущества шаблонов LG, можно также определять сложные голосовые ответы для команд с помощью адаптивных выражений. Дополнительные сведения см. в разделе Формат шаблонов LG.

По умолчанию функция пользовательских голосовых команд поддерживает все возможности, со следующими небольшими отличиями.

  • В шаблонах LG сущности представлены как ${entityName}. Функция пользовательских голосовых команд не использует сущности. Но можно использовать параметры в качестве переменных либо с представлением ${parameterName}, либо с представлением {parameterName}.
  • Функция пользовательских голосовых команд не поддерживает создание и расширение шаблона, так как вы никогда не изменяете файл LG напрямую. Вы редактируете только ответы автоматически созданных шаблонов.
  • Функция пользовательских голосовых команд не поддерживает пользовательские функции, вставляемые LG. Поддерживаются предварительно определенные функции.
  • Функция пользовательских голосовых команд не поддерживает такие параметры, как strict, replaceNull и lineBreakStyle.

Добавление ответов шаблона в команду TurnOnOff

Используйте команду TurnOnOff, чтобы добавить новый параметр. Используйте следующую конфигурацию.

Параметр Предлагаемое значение
Имя SubjectContext
Обязательный не выбрано
Тип String
Значение по умолчанию all
Конфигурация Принимать предопределенные входные значения из внутреннего каталога
Предопределенные входные значения room, , bathroomall

Изменение правила выполнения

Измените раздел Действия существующего правила выполнения ConfirmationResponse. В окне Изменение действия переключитесь в Редактор шаблонов. Затем замените текст следующим примером.

- IF: @{SubjectContext == "all" && SubjectDevice == "lights"}
    - Ok, turning all the lights {OnOff}
- ELSEIF: @{SubjectDevice == "lights"}
    - Ok, turning {OnOff} the {SubjectContext} {SubjectDevice}
- ELSE:
    - Ok, turning the {SubjectDevice} {OnOff}
    - Done, turning {OnOff} the {SubjectDevice}

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

  • Входные данные: включить телевизор
  • Выходные данные: ОК, включение телевизора
  • Входные данные: включить телевизор
  • Выходные данные: готово, телевизор включен
  • Входные данные: выключить освещение
  • Выходные данные: ОК, выключение всего освещения
  • Входные данные: выключить освещение в комнате
  • Выходные данные: ОК, выключение освещения в комнате

Использование пользовательского голоса

Другим способом настройки ответов на пользовательские голосовые команды является выбор голоса для выходных данных. Чтобы переключиться с голоса по умолчанию на пользовательский голос, выполните следующие действия.

  1. В приложении с пользовательскими голосовыми командами на панели слева щелкните Настройки.
  2. В средней области выберите "Пользовательский голос".
  3. В таблице выберите пользовательский голос или общедоступный голос.
  4. Выберите Сохранить.

Screenshot showing sample sentences and parameters.

Примечание.

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

Вы можете создать пользовательские голоса на странице проекта пользовательской голосовой связи . Дополнительные сведения см. в статье "Начало работы с пользовательским голосом".

Теперь приложение реагирует на выбранный голос, а не голос по умолчанию.

Следующие шаги