$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
бот произнесет фразу пятисот тринадцати тысяч.
В реальном сценарии расшифровки переменных должны отличаться в зависимости от контекста.