Добавление речи в сообщения с помощью API Bot Connector

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

Вы можете настроить бот так, чтобы клиентские приложения могли обмениваться данными с ним через канал Direct Line Speech.

Указание текста, произносимого ботом

Чтобы указать текст, который бот будет произносить по каналу с поддержкой речи, задайте свойство speak в объекте Activity, который представляет ваше сообщение. Можно установить свойство speak в текстовую строку или строку, которая отформатирована как Speech Synthesis Markup Language (SSML) (Язык разметки синтеза речи) — язык разметки на основе XML, который позволяет управлять различными характеристиками речи бота, такими как голос, скорость, громкость, произношение, тон и другое. Если канал не поддерживает, сообщение доставляется в виде текста.

В следующем примере запроса показана отправка сообщения, которое задает текст для отображения и текст для произнесения и указывает, что бот принимает входные данные пользователя. Он задает свойство, speak использующее формат SSML , чтобы указать, что слово "sure" должно произносится с умеренным выделением. В этом примере запроса Direct Line представляет базовый URI. Базовый URI для запросов, отправляемых вашим ботом, может отличаться. Дополнительные сведения о настройке базового URI см. в статье Справочник по API.

POST https://smba.trafficmanager.net/teams/v3/conversations/abcd1234/activities/5d5cdc723
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{
    "type": "message",
    "from": {
        "id": "12345678",
        "name": "sender's name"
    },
    "conversation": {
        "id": "abcd1234",
        "name": "conversation's name"
   },
   "recipient": {
        "id": "1234abcd",
        "name": "recipient's name"
    },
    "text": "Are you sure that you want to cancel this transaction?",
    "speak": "<speak version=\"1.0\" xmlns=\"http://www.w3.org/2001/10/synthesis\" xml:lang=\"en-US\">Are you <emphasis level=\"moderate\">sure</emphasis> that you want to cancel this transaction?</speak>",
    "inputHint": "expectingInput",
    "replyToId": "5d5cdc723"
}

Подсказки для ввода

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

Дополнительные ресурсы