$reactions.ttsWithVariables
Метод задает аудио и шаблон текста для синтеза речи с переменным на базе технологии Yandex SpeechKit Brand Voice Adaptive.
Синтаксис
Метод принимает объект с полями audioTemplate и textTemplate.
audioTemplate
audioTemplate — описание аудио, в которое будет вставлена переменная. Содержит поля:
audio— ссылка на аудиофайл с шаблоном фразы.
-
textTemplate— описание расшифровки аудиофайла:template— текст шаблона. Переменные должны быть обозначены соответствующими именами в фигурных скобках.textVariables— массив объектов, описывающих использованные переменные. Каждый объект содержит поля:name— название переменной.value— расшифровка переменной, использованной в шаблоне.
-
audioVariables— массив объектов, описывающих расположение переменных в аудиозаписи. Каждый объект содержит поля:name— название переменной.startMs— время от начала аудиозаписи до начала воспроизведения переменной в миллисекундах.lengthMs— длительность воспроизведения переменной в миллисекундах.
textTemplate
textTemplate — описание фразы, которую должен синтезировать бот в диалоге с клиентом. Содержит поля:
template— текст шаблона. Переменные должны быть обозначены соответствующими именами в фигурных скобках.textVariables— массив объектов с переменными, которые должны быть подставлены в шаблон. Каждый объект содержит поля:name— название переменной.value— расшифровка переменной.
audioTemplate и textTemplate повторяет формат AudioTemplate и TextTemplate,
описанный в документации Yandex SpeechKit.Использование
Пример вызова метода из сценария:
$reactions.ttsWithVariables({
"audioTemplate": {
"audio": "https://mybucket.s3-ap-southeast-1.amazonaws.com/myfilename.wav",
"textTemplate": {
"template": "Вам одобрен кредитный лимит в размере {limit} рублей. Ну что, давайте оформим доставку?",
"textVariables": [
{
"name": "limit",
"value": "сто двух тысяч"
}
]
},
"audioVariables": [
{
"name": "limit",
"startMs": 1850,
"lengthMs": 1400
}
]
},
"textTemplate": {
"template": "Вам одобрен кредитный лимит в размере {limit} рублей. Ну что, давайте оформим доставку?",
"textVariables": [
{
"name": "limit",
"value": "пятисот тринадцати тысяч"
}
]
}
});
В аудиофайле для данного примера в качестве суммы кредитного лимита озвучено число сто двух тысяч.
В поле audioTemplate передано описание данного аудиофайла с указанием переменной части.
Поле textTemplate содержит описание фразы, которую бот воспроизведет в стейте, где вызван метод.
На месте переменной limit бот произнесет фразу пятисот тринадцати тысяч.
В реальном сценарии расшифровки переменных должны отличаться в зависимости от контекста.