Skip to main content

SSML-разметка

Теги

SSML-теги используются для тонкой настройки синтеза речи — можно изменить паузы, ударения, выделять акцентные слова и так далее.

Поддерживаются следующие теги:

  • <speak> — обязательный тег, необходим для работы с SSML.

    <speak> Пример использования обязательного тега speak </speak>
  • <break> — используется, чтобы задать паузу в тексте. Обязательный атрибут тега time — позволяет параметризовать продолжительность паузы, принимает значения в мс и с. Например, time="80ms", time="2s". Максимальное значение — 10 секунд.

    <speak>
    Так можно вставить паузу <break time="500ms"/>
    Пауза закончилась
    </speak>
  • <voice> — используется, чтобы задать спикера и параметры голоса (для выбора стиля прочтения), которым будет озвучиваться текст. Тег имеет обязательный атрибут name со значениями наименования голосов. Актуальный список значений можно получить через метод Список голосов или посмотреть в таблице общедоступных голосов.

    <speak>
    <voice name='anna'>
    Этот пример начал озвучиваться одним голосом,
    </voice>
    <voice name='dima'>
    а вот дальше озвучивается уже другим.
    </voice>
    </speak>
  • <emphasis> — используется для обозначения акцентного слова в вопросительном предложении. Текст, находящийся внутри тега, должен быть короче 150 символов с пробелами. Если ваша фраза внутри тега <emphasis> превышает 150 символов, тег не применится.

    Имеет обязательный атрибут level, который задает силу акцента на слове. level может принимать следующие значения:

    • none — акцент на обернутом тегом слове в вопросе не изменяется;

    • moderate — умеренное ударение на слове;

    • strong — выраженное смысловое ударение.

      <speak>
      Вы хотите заказать <emphasis level="moderate">капучино</emphasis>
      или <emphasis level="strong">американо</emphasis>?
      Вы <emphasis level="strong">хотите</emphasis> что-нибудь заказать?
      </speak>
  • <s> и <p> — задают предложение и абзац в тексте:

    • для <s> пауза составляет 200 ms;
    • для <p> пауза составляет 400 ms.

      <speak>
      <p><s>Это первое предложение первого абзаца.</s> <s>Это второе предложение первого абзаца.</s></p>
      <p> Это второй абзац. </p>
      </speak>
      В примере пауза между первым и вторым предложением первого абзаца составит 200 ms, а между первым и вторым абзацем — 400 ms.
  • <say-as> — задает информацию о типе текста внутри тега. Текст, находящийся внутри тега, должен быть короче 150 символов с пробелами. Если ваша фраза внутри тега <say-as> превышает 150 символов, тег не применится.

    Тег имеет обязательный атрибут interpret-as, который определяет, как произносить текст. interpret-as может принимать значения characters или spell-out — произнесение текста по символам, вне зависимости от того, текст это или число: «1234» можно произнести как «один два три четыре», в то время как без тега это «тысяча двести тридцать четыре».

    Также работает и для различных аббревиатур:

    <speak>
    Я недавно видел <say-as interpret-as="characters">НЛО</say-as>
    </speak>

    При помощи атрибута можно произнести и более сложные конструкции:

    <speak>
    Номер договора: <say-as interpret-as="characters">1234/5-6</say-as>
    </speak>
  • <prosody> — задает скорость произношения и высоту тона голоса. С помощью тега можно:

    • Изменить скорость произношения — при помощи атрибута rate:

      <speak>
      Ускорить произношение можно следующим образом: <prosody rate ="150%">увеличение скорости произношения при автоматизации обслуживания клиентов может повысить эффективность обзвона, т.к. сэкономит время клиента</prosody>
      </speak>
    • Изменить тональность голоса — при помощи атрибута pitch:

      <speak>
      Меняя тональность, <prosody pitch ="80%">мы можем получить более глубокий голос</prosody>
      </speak>

      Оба атрибута можно изменять единовременно внутри одного тега, а также сочетать с другими тегами:

      <speak>
      <prosody rate="140%" pitch="110%">Работает на всех голосах, в сочетании с <break time="5ms"/> паузами и другими тегами.</prosody>
      </speak>

      Максимально можно втрое ускорить речь (300%) и замедлить (33%), сделать голос втрое выше (300%) и ниже (33%).

Расстановка ударений

Для управления ударениями достаточно добавить 0 после ударной гласной: «соро0ка» и «сорока0». Разметка ударений работает как в сочетании с SSML-тегами, так и в тексте без SSML.

def build_request():
return tts_pb2.SynthesizeSpeechRequest(
input=tts_pb2.SynthesisInput(
ssml="""
<speak> Разметка ударений работает и в SSML: жа0ркое, жарко0е.</speak>
"""
),
audio_config=tts_pb2.AudioConfig(
audio_encoding=tts_pb2.LINEAR16,
sample_rate_hertz=sample_rate,
),
)

openapi@tbank.ru

АО «ТБанк» использует файлы «cookie» с целью персонализации сервисов и повышения удобства пользования веб-сайтом. «Cookie» представляют собой небольшие файлы, содержащие информацию о предыдущих посещениях веб-сайта. Если вы не хотите использовать файлы «cookie», измените настройки браузера.