Возможности SSML разметки для синтеза речи

, Обновлено 27 августа 2023

SSML (Speech Synthesis Markup Language) - это разметочный язык, который используется для описания текста, предназначенного для синтеза речи нейросетями.

  • Для чего он? С его помощью можно контролировать интонацию, акценты, произношение, добавлять паузы и другие аудиоэффекты. Это делает сгенерированную речь более живой и выразительной.

  • Цели использования: Главная цель — придание синтезированной речи естественности и выразительности. Также SSML обеспечивает более точное произношение цифр, дат, номеров телефонов и другой специфической информации.

  • Кто стоит за этим? SSML была разработана организацией World Wide Web Consortium (W3C), ответственной за стандарты веба.

  • Какова его миссия? SSML призван стандартизировать и улучшить методы синтеза речи в цифровом пространстве.

Документация по SSML на официальном сайте W3C: https://www.w3.org/TR/speech-synthesis/

Основные правила написания тегов SSML

  1. Теги SSML обычно обрамляются угловыми скобками, как в HTML. Пример: <speak>текст</speak>.

  2. Как правило, должен быть открывающий и закрывающий тег (исключение - <break>).

  3. Внутри тегов вы можете использовать атрибуты для настройки параметров произношения.

  4. Некоторые теги могут быть вложенными друг в друга.

  5. Синтаксис тегов и атрибутов SSML подчиняется стандарту XML.

Поддерживаемые теги

Звукограм поддерживает основные популярные SSML-теги. Часть из голосов могут не подчиняться некоторым атрибутам тегов, об этом указано в документации к конкретному параметру.

Далее представлен список основных тегов с ссылкой на подробную документацию по каждому.

Break пауза

Это самый популярный тег на Звукограме. С его помощью можно регулировать длительность паузы.

Say-as скажи как

Основной SSML-тег с множеством настроек - это say-as. Он управляет озвучкой информации различного типа.

Characters или spell-out - текст по буквам

<say-as interpret-as="spell-out">банан</say-as>

 
 
00:02

Документация по spell-out.

Cardinal - количественное числительное

<say-as interpret-as="cardinal">5</say-as>

 
 
00:01

Документация по количественным числительным.

Ordinal - порядковое числительное

<say-as interpret-as="ordinal">3</say-as>

Пример:

 
 
00:02

Документация по порядковым числительным.

Fraction - произношение дробей 

<say-as interpret-as="fraction">1/2</say-as>

Пример:

 
 
00:02

Документация по дробям.

Date - озвучка дат

<say-as interpret-as="date" format="dmy" detail="1">5/7/24</say-as>

Пример:

 
 
00:03

Документация по произношению дат.

Time - озвучка времени

<say-as interpret-as="time">13:45</say-as>

Пример:

 
 
00:03

Документация по озвучке времени.

Telephone - озвучка телефонов

<say-as interpret-as="telephone">88005557778</say-as>

Пример:

 
 
00:05

Документация по телефонам.

Currency - озвучка валют

<say-as interpret-as="currency">99 CHF</say-as>

Пример:

 
 
00:03

Документация по валютам.

Bleep - цензура

Это <say-as interpret-as="bleep">цензурное</say-as> слово

 
 
00:02

Документация по запикиванию цензурой.

Alias - псевдонимы

Alias является значением тега sub. С его помощью одно слово можно прочитать другим. Часто длинные названия им оформляют в аббревиатуру.

<sub alias="МИД">Министерство иностранных дел</sub>

Пример:

 
 
00:01

Prosody - тон, громкость и скорость

Этот тег управляет тоном, громкостью и скоростью озвучивания. Применяется только к целому предложению.

<prosody pitch="-2st" rate="fast" volume="+3dB">Это пример с комбинированными настройками.</prosody> <prosody pitch="-4st" rate="fast">Например тут у меня высота на 4 полут+она ниже, скорость быстрая, а громкость обычная .</prosody> <prosody pitch="+5st" rate="slow"  volume="-8dB">А тут у меня высота на 5 полут+она выше, скорость тихая, а громкость на 8 децибел ниже.</prosody>

Исходник примера:

 
 
00:16

Документация по просодии.

Emphasis

Emphasis - это упрощённая версия Prosody. Также применяется только к предложению целиком.

Phoneme - фонетическая транскрипция

Это самый мощный способ коррекции произношения. При помощи международного фонетического словаря можно записать произношение слова по звукам. Посмотрите пример.

<phoneme alphabet="ipa" ph="nʲɪkˈitʲənko">Никитенко</phoneme>

 
 
00:02

Документация по фонемам.

 
2024 - Звукограм