Перейти к основному содержимому

$imputer.cacheAudio

Метод $imputer.cacheAudio позволяет кэшировать реплику на сервере: на один час или навсегда. Вызов этого метода может потребоваться, чтобы избежать задержек — пауз во время диалога бота с абонентом.

подсказка
Реплику нужно кэшировать заранее — перед ее использованием в сценарии. Предусмотрите стейт в вашем сценарии, где это можно сделать.

Синтаксис

Метод $imputer.cacheAudio принимает аргументы:

АргументТипОписаниеОбязательный
replicaTemplateIdСтрокаИдентификатор шаблона реплики.Да
variablesОбъектИмена и значения переменных для подстановки в шаблон. Для записи значения можно использовать кириллицу, числа и знаки препинания.
Нужно указать столько переменных, сколько будет в реплике. Если в реплике не будет переменных, передайте пустой объект.
Да
voiceSpeedЧислоСкорость произнесения переменных.
Возможные значения: от 0.5 до 2 и undefined, где:
 1 — скорость без изменений.
 undefined — скорость не задана. Необходимо указывать, если скорость не была передана для $imputer.generateAudioUrl, но вы хотите передать аргумент unlimitedLifetime.
Нет
unlimitedLifetimeЛогическийНужно ли навсегда кэшировать реплику.
Рекомендуется использовать в исключительных случаях.
Если аргумент не передан или указано false, реплика будет кэширована на один час.
Нет
предупреждение
Если вы хотите, чтобы реплика была кэширована, аргументы replicaTemplateId, variables, voiceSpeed, переданные для метода $imputer.cacheAudio, должны совпадать с теми, что вы передаете для $imputer.generateAudioUrl.

Примеры вызова

$imputer.cacheAudio("offer", {})
$imputer.cacheAudio("offer", {"amount": "десять"})
$imputer.cacheAudio("offer", {"amount": "десять"}, 1, true)
$imputer.cacheAudio("offer", {"amount": "десять"}, undefined, true)

Пример использования

state: Hello
q!: $regex</start>
# "Здравствуйте! Как вас зовут?"
audio: {{ $imputer.generateAudioUrl("helloPhrase", {}) }}

state: GetName
q: *
# Кэширование реплики с идентификатором thanks ("Спасибо, $client.name!").
script:
$client.name = $parseTree.text;
$imputer.cacheAudio("thanks", {"name": $client.name});
# "Оцените, пожалуйста, качество сервиса."
audio: {{ $imputer.generateAudioUrl("estimateQuality", {}) }}

# ...

state: Thanks
intent!: /Thanks
# Воспроизведение кэшированной реплики thanks ("Спасибо, $client.name!").
audio: {{ $imputer.generateAudioUrl("thanks", {"name": $client.name}) }}
# "Будем дальше улучшать наш сервис."
audio: {{ $imputer.generateAudioUrl("improveService", {}) }}

state: Goodbye
intent!: /Goodbye
# Воспроизведение кэшированной реплики thanks ("Спасибо, $client.name!").
audio: {{ $imputer.generateAudioUrl("thanks", {"name": $client.name}) }}
# "До свидания!"
audio: {{ $imputer.generateAudioUrl("bye", {}) }}

В этом примере реплики без переменных также были использованы в сценарии при помощи вызова метода $imputer.generateAudioUrl. Это было сделано, чтобы избежать разницы в звучании реплик: c переменными и без. Подробнее см. в разделе Гибридный синтез от Just AI.