fbpx
SSML против сухого текста — как разметка делает AI-голос живым

SSML против сухого текста — как разметка делает AI-голос живым

Вы когда-нибудь слышали, как TTS читает длинный абзац без пауз и интонации? Слушать такое тяжело. SSML решает эту проблему: это язык разметки, который даёт синтезатору инструкции — где сделать паузу, на чём поднять голос, что прочитать медленнее.

Продолжаем цикл статей про использование AI-синтезаторов голоса, начатое в статье "Как приручить синтезатор речи: 7 шагов от робота к живому голосу". В этой статье вы узнаете, как использовать SSML, чтобы управлять голосом TTS-синтезатора как режиссёр управляет актёром: расставлять паузы, менять темп и даже вставлять звуки. 

 

1. Что такое SSML и зачем он нужен

SSML (Speech Synthesis Markup Language) — это «HTML для синтеза речи».
Он не меняет смысл текста, но подсказывает движку, как читать.

  • Хотите длинную паузу? Используйте <break time="700ms"/>.
  • Нужно прочитать слово по буквам? <say-as interpret-as="characters">API</say-as>.
  • Нужен особый тон? <prosody rate="80%">Читайте медленнее</prosody>.

💡 Важно: не все сервисы поддерживают весь набор тегов SSML. Перед внедрением — проверьте документацию вашего движка (Steos, ElevenLabs, Yandex SpeechKit, Google Cloud TTS, Amazon Polly).

 

2. Базовый скелет SSML

Каждый текст оборачивается в <speak>:

<speak>
  Привет! Это мой первый текст с SSML.
</speak>

Без этого тега некоторые движки даже не начнут обрабатывать разметку.

 

3. Управляем паузами: тег <break>

Паузы — ключ к естественной речи.

<speak>
  Первое правило <break time="500ms"/> паузы делают речь понятнее.
</speak>
  • time — указываем в миллисекундах: 500ms, 1s.

  • strength — задаём уровень паузы: none, x-weak, weak, medium, strong, x-strong.

Пример с strength:

<speak>
  В начале <break strength="strong"/> и в конце <break strength="x-strong"/> делаем паузы.
</speak>

4. Меняем темп, тон и громкость: <prosody>

Тег <prosody> управляет «характером» голоса.

<speak>
  <prosody rate="80%">Говорим медленнее</prosody>
  <prosody rate="120%">А теперь быстрее</prosody>
</speak>
  • rate — скорость (80%, fast, x-slow).

  • pitch — высота голоса (+10%, high, low).

  • volume — громкость (loud, soft, +3dB).

Пример с комплексной настройкой:

<speak>
  <prosody rate="90%" pitch="+5%">Торжественный момент</prosody>
</speak>

5. Ударения и фонетика: <emphasis> и <phoneme>

Хочется подчеркнуть слово? Используйте <emphasis>:

<speak>
  Это <emphasis level="strong">действительно важно</emphasis> для проекта.
</speak>
  • levelstrong, moderate, reduced.

Если движок читает слово неправильно — подскажите фонетику:

<speak>
  Моя фамилия — <phoneme alphabet="ipa" ph="ˈdejkstra">Dijkstra</phoneme>
</speak>

💡 Работает не везде, но в сложных текстах спасает.

 

6. Чтение чисел, дат и букв: <say-as>

Тег <say-as> говорит синтезатору, что за тип данных он озвучивает.

<speak>
  Ваш заказ <say-as interpret-as="digits">12345</say-as> готов.
</speak>
  • characters — «API» → «эй-пи-ай».
  • digits — «2024» → «две ноль два четыре».
  • ordinal — «21» → «двадцать первый».
  • date — форматируем даты:
<speak>
  Дата доставки <say-as interpret-as="date" format="dmY">12032024</say-as>
</speak>

7. Эффекты и вставки звуков: <audio> и <amazon:effect>

Можно вставлять звуки:

<speak>
  Внимание! <audio src="/beep.mp3"/> Обновление завершено.
</speak>

А некоторые движки (например, Amazon Polly) дают спецэффекты:

<speak>
  <amazon:effect name="whispered">Это секрет</amazon:effect>
</speak>

 

8. Работа с диалогами

SSML отлично подходит для диалогов:

<speak>
  <p>— Привет! <break time="400ms"/> Как дела?</p>
  <p>— Отлично <break time="300ms"/> спасибо.</p>
</speak>

Тег <p> помогает сделать паузу между репликами длиннее.

 

9. Советы и лайфхаки для новичков

  • Тестируйте кусками. Начинайте с пары фраз, проверяйте, как звучит.
  • Не перегружайте разметкой. Слишком много тегов делает речь искусственной.
  • Комбинируйте приёмы. Например: <emphasis> + <prosody> + <break>.
  • Храните готовые шаблоны. Часто используемые конструкции (даты, цифры, паузы) держите под рукой.
  • Слушайте в наушниках. Так лучше слышны мелкие огрехи.

 

Чек-лист по SSML

Есть тег <speak> вокруг текста.

Паузы стоят с <break>.

Темп и тон настроены через <prosody>.

Важные слова выделены <emphasis>.

Цифры, даты и аббревиатуры размечены <say-as>.

Текст протестирован в реальном движке.

 

Итоги

SSML — это мощный способ управлять голосом синтезатора.
Вы буквально становитесь режиссёром, который ставит «актеру» паузы, задаёт эмоции и темп речи.

Как говорил Станиславский: «Не верю!» — то, что мы часто думаем, слушая плоский синтез.
Попробуйте уже сегодня обернуть свой текст в <speak> и добавить пару пауз — и услышите, как ваш TTS оживает.

 

Хотите попробовать?

По этой ссылке доступен TTS-синтезатор, который бесплатно даёт озвучить ваш текст более, чем 100 голосами:
Steos Vocie Bot ]
Голоса все мультиязычные - отлично говорят как по-русски, так и по-английски, по-испански и на дюжине других голосов. Работает все в Telegram, никаких приложений ставить на телефон или ПК не надо. 
Сам пользуюсь сервисом уже более 2 лет (с 2023 года).

 

Прочитано 5 раз

Интернет-альманах NSYS

Обладая более, чем 20-летним опытом в телекоммуникациях, работая с 1994 года на ИТ-рынке Беларуси, мы собираем полезные и интересные новости для наших читателей. Основные темы наших публикаций относятся к 4 темам: 1). полезные программы, 2). полезные веб-сайты, 3). бизнес в инернете и 4). поддержка владельцев сайтов на CMS Joomla. Подпишитесь на наши новости, чтобы не пропустить очередные выпуски дайджеста новостей NSYS. Дайджест выходит всего раз в неделю.