Разметка синтеза речи
При написании ответов бота в телефонном канале вы можете использовать специальную разметку, чтобы управлять звучанием произносимых слов и фраз при синтезе речи бота.
SSML
SSML (Speech Synthesis Markup Language) — язык разметки синтеза речи, основанный на XML. SSML позволяет гибко настраивать речь бота, тем самым делая ее более естественной и выразительной.
Вы можете ознакомиться со списком поддерживаемых тегов SSML в документации выбранного провайдера. В JAICP SSML-разметка поддерживается для следующих провайдеров TTS:
Использовать разметку SSML в сценарии можно несколькими способами:
Тег реакции
a
. После тега укажите параметрtts
и передайте в нем размеченный текст:a: Ты не пройдёшь! || tts = "<emphasis>Ты</emphasis> не пройдёшь!"
Ответы с типом
text
. Передайте размеченный текст в полеtts
объекта с ответом:script:
$response.replies = $response.replies || [];
$response.replies.push({
"type": "text",
"text": "Мой любимый химический элемент — Cr.",
"tts": "Мой любимый химический элемент — <sub alias=\"хром\">Cr</sub>."
});Метод
$reactions.answer
. Передайте размеченный текст в полеtts
аргумента метода:script:
$reactions.answer({
"value": "Вам подарок — промокод на скидку 10%!",
"tts": "Вам подарок <break time=\"1s\"> промокод на скидку десять процентов!"
});
Упрощенная разметка
Провайдеры Яндекс и Google также поддерживают упрощенную разметку синтеза речи, не совместимую с SSML. Если возможностей упрощенной разметки для вас достаточно, то используйте ее вместо SSML.
Использовать упрощенную разметку можно в теге a
, ответе типа text
и методе $reactions.answer
.
tts
.Яндекс
Ударение
При необходимости явно указать ударение в слове, если оно произносится неверно, перед ударной гласной ставьте символ +
:
a: Это система автоматического обзв+она.
Чтобы улучшить качество синтеза длинных слов, их можно разбить на короткие и указать ударения для каждого из них:
a: Мн+ого пр+офильный проект.
пожалуйста
— пож+алуста
.Паузы
Каждый отделенный пробелом пунктуационный знак преобразуется в паузу длительностью 50–100 мс. Таким образом можно задавать небольшие паузы последовательностью дефисов:
a: Здравствуйте - - - {{$dialer.getPayload().name}}!
Google
Ударение
При необходимости явно указать ударение в слове, если оно произносится неверно, после ударной гласной ставьте символ '
:
a: Это система автоматического обзво'на.