Разметка синтеза речи
При написании ответов бота в телефонном канале вы можете использовать специальную разметку, чтобы управлять звучанием произносимых слов и фраз при синтезе речи бота.
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\"> промокод на скидку десять процентов!"
});
Упрощенная разметка
Провайдеры Aimyvoice, Google и Яндекс поддерживают также упрощенную разметку синтеза речи, не совместимую с SSML. Если возможностей упрощенной разметки для вас достаточно, то используйте ее вместо SSML.
Использовать упрощенную разметку можно в теге a
, ответе типа text
и методе $reactions.answer
.
tts
.Aimyvoice
Символ | Равнозначный SSML‑тег | Функция | Пример |
---|---|---|---|
+ | <say-as stress> | Указывает на ударную гласную в слове. Символ ставится после ударной гласной. | На амбаре висел большо+й замо+к. |
# | <emphasis> | Указывает на позицию фразового ударения. Символ ставится перед ударным словом. | Это #вы ожидаете меня? |
- | <break time="50ms"/> | Минимальная пауза. | Станцию — РЛС — ввели в эксплуатацию. |
– или , | <break time="100ms"/> | Короткая пауза. | Предложение — одна из основных единиц языка. |
. ! ? : ; ( ) | <break time="200ms"/> | Длинная пауза. | Через две мили (примерно 4 км.) поле сменилось лесом. |
Google
Ударение
При необходимости явно указать ударение в слове, если оно произносится неверно, после ударной гласной ставьте символ '
:
a: Это система автоматического обзво'на.
Яндекс
Ударение
При необходимости явно указать ударение в слове, если оно произносится неверно, перед ударной гласной ставьте символ +
:
a: Это система автоматического обзв+она.
Чтобы улучшить качество синтеза длинных слов, их можно разбить на короткие и указать ударения для каждого из них:
a: Мн+ого пр+офильный проект.
пожалуйста
— пож+алуста
.Паузы
Каждый отделенный пробелом пунктуационный знак преобразуется в паузу длительностью 50–100 мс. Таким образом можно задавать небольшие паузы последовательностью дефисов:
a: Здравствуйте - - - {{$dialer.getPayload().name}}!