$dialer.setTtsConfig
Метод переопределяет настройки провайдера TTS телефонного канала, через который проходит текущий звонок.
подсказка
Новые настройки распространяются только на текущую сессию и не влияют на глобальные настройки канала.
Они используются, пока не будут переопределены еще раз или пока звонок не завершится.
Синтаксис
Метод принимает в качестве аргумента объект с новыми настройками TTS. Передавать каждый раз все настройки провайдера не нужно — достаточно указать те, которые вы хотите переопределить.
Метод возвращает объект с новыми настройками провайдера.
подсказка
Для каждого провайдера можно переопределить разный набор настроек.
Вы можете узнать, какие это настройки, в статье про
$dialer.getTtsConfig
, а также получить их в сценарии через этот метод.// Настройки для провайдера Google
$dialer.setTtsConfig({
lang: "tr-TR",
voice: "tr-TR-Wavenet-E",
});
предупреждение
Если вы укажете в объекте поля, которые провайдер не поддерживает, они будут проигнорированы.
Если вы передадите в метод не объект (например, строку), в сценарии возникнет ошибка.
Использование в сценарии
Некоторые провайдеры, например Google и Azure, для большинства языков поддерживают как женские, так и мужские голоса. Вы можете менять голос бота из сценария в зависимости от характеристик пользователя (например, пола или возраста) или по его желанию.
state: SwitchGender
q!: * измени* пол *
script:
var provider = $dialer.getAsrProvider(); # Получение имени текущего провайдера
if (provider === "google") {
var voice = $dialer.getTtsConfig().voice; # Получение текущего голоса
$temp.isMaleVoice = voice.endsWith("B") || voice.endsWith("D"); # Мужские голоса заканчиваются на B и D
var newVoiceLetter = (isMaleVoice ? ["A", "C"] : ["B", "D"])[$reactions.random(2)];
$dialer.setTtsConfig({ voice: "ru-RU-Wavenet-" + newVoiceLetter });
} else {
# Для других провайдеров переопределяемые поля и значения могут быть другими
}
a: Теперь я говорю {{$temp.isMaleVoice ? "женским" : "мужским"}} голосом.