Разметка синтеза речи
Aimyvoice позволяет размечать синтезируемый текст, чтобы управлять его звучанием: задавать паузы, ударения, тон и другие особенности произношения. Разметка делает звучание более естественным и выразительным.
Вы можете размечать текст двумя способами:
-
Чтобы расставлять в тексте ударения и паузы, используйте упрощенную разметку при помощи специальных символов и знаков препинания.
-
Чтобы задавать правила произношения отдельных слов, управлять громкостью, стилем и другими характеристиками речи, используйте SSML-теги.
подсказкаSSML (Speech Synthesis Markup Language) — язык разметки синтеза речи, основанный на XML.
Упрощенная разметка
Символ | Равнозначный SSML‑тег | Функция | Пример |
---|---|---|---|
+ | <say-as stress> | Указывает на ударную гласную в слове. Символ ставится после ударной гласной. | На амбаре висел большо+й замо+к. |
# | <emphasis> | Указывает на позицию фразового ударения. Символ ставится перед ударным словом. | Это #вы ожидаете меня? |
- | <break time="50ms"/> | Минимальная пауза. | Станцию — РЛС — ввели в эксплуатацию. |
– или , | <break time="100ms"/> | Короткая пауза. | Предложение — одна из основных единиц языка. |
. ! ? : ; ( ) | <break time="200ms"/> | Длинная пауза. | Через две мили (примерно 4 км.) поле сменилось лесом. |
Поддерживаемые SSML-теги
Тег | Функция |
---|---|
<break> | Добавляет в текст паузу. |
<emphasis> | Задает место фразового ударения в предложении. |
<p> | Добавляет паузу, по длительности равную паузе между абзацами. |
<prosody> | Задает громкость, темп и тон речи. |
<s> | Добавляет паузу, по длительности равную паузе после точки. |
<say-as> | Задает словесное ударение и другие правила озвучивания текста. |
<style> | Изменяет манеру (стиль) речи диктора. |
<sub> | Заменяет звучание слова на другое. |
<break>
Добавляет в текст паузу.
<break>
использован совместно со знаками препинания, то он имеет более высокий приоритет и заменяет другие паузы.Возможные атрибуты:
-
time
— длительность паузы. Указывается в формате<число>s
(в секундах) или<число>ms
(в миллисекундах). Максимальная длительность — 5 секунд.предупреждениеПри значении более 2 секунд фактическая длительность паузы может отличаться от указанной на ±200 миллисекунд. -
breath
— логическое значение 0 или 1. Указывает на необходимость синтеза вдоха в конце паузы. Значение по умолчанию — 0. -
breath_power
— целое или дробное число в диапазоне 0–1. Задает силу вдоха: чем больше значение, тем вдох будет громче. Значение по умолчанию — 0.6. -
breath_dura
— целое или дробное число в диапазоне 0–2. Задает коэффициент изменения длительности вдоха. Значение по умолчанию — 1.предупреждениеЕсли значениеtime
меньше, чем предполагаемая длительность вдоха, то он не будет синтезирован. Сила вдоха зависит от выбранного голоса. Большие значенияbreath_power
иbreath_dura
могут приводить к синтезу неестественного дыхания или шума.
<break time="0.8s" breath="1" breath_power="0.8" breath_dura="1.2"/>
Мой дядя <break time="1s"/> самых честных правил. <break time="250ms"/> Когда не в шутку занемог.
<break time="0.5s"/> Он уважать себя заставил. И лучше выдумать не мог.
<emphasis>
Задает место фразового ударения в предложении.
Вы также можете обозначить его специальным символом #
перед ударным словом.
Вы сегодня подписываете договор?
Вы <emphasis>сегодня</emphasis> подписываете договор?
#Вы сегодня подписываете договор?
<p>
Добавляет паузу, по длительности равную паузе между абзацами. Пауза после нового абзаца длиннее, чем после точки.
<p>В тё+мно-синем лесу+</p> <p>Где трепещут осины</p>
<p>Где с дубов-колдунов</p> <p>Облетает листва</p>
<prosody>
Задает громкость, темп и тон речи. Тег может быть применен ко всему тексту, его части или отдельному слову, но не к слогу или букве слова.
Возможные атрибуты:
volume
— громкость.rate
— темп.pitch
— основной тон.
Значения атрибутов указываются в процентах от базового значения (100), в диапазоне 50–200.
Голос будет <prosody volume="175">звучать громче.</prosody>
Речь будет <prosody rate="140">произноситься быстрее.</prosody>
Речь будет <prosody rate="75">произноситься медленнее.</prosody>
<prosody pitch="125">Тон голоса будет повышен.</prosody>
<s>
Добавляет паузу, по длительности равную паузе после точки. Пауза после точки короче, чем после нового абзаца.
<s>Нет я не плачу</s> <s>И не рыдаю</s>
<say-as>
Задает словесное ударение и другие правила озвучивания текста.
Возможные атрибуты:
-
stress
— указывает порядковый номер ударной гласной в слове.подсказкаВы также можете обозначить словесное ударение специальным символом+
после ударной гласной. -
interpret-as
— задает формат прочтения слова. Возможные значения:Значение Описание date
Чтение числа как даты. Нужно также указать формат даты через атрибут format
.telephone
Чтение числа как номера телефона. characters
Чтение текста по символам. Поддерживается только кириллица. cardinal
Чтение числа как количественного числительного. ordinal
Чтение числа как порядкового числительного. -
format
— определяет формат даты. Его нужно указывать, если для атрибутаinterpret-as
задано значениеdate
. Возможные значения:Значение Описание dmy
День, месяц, год. mdy
Месяц, день, год. ymd
Год, месяц, день. dm
День, месяц. md
Месяц, день. ym
Год, месяц. my
Месяц, год. d
День. m
Месяц. y
Год.
<say-as stress="3">гидроксильная</say-as>;
<say-as interpret-as="date" format="ydm">20212102</say-as>; <!-- двадцать первое февраля две тысячи двадцать первого года -->
<say-as interpret-as="date" format="md">6.11</say-as>; <!-- одиннадцатое июня -->
<say-as interpret-as="telephone">89123456789</say-as>; <!-- восемь девятьсот двенадцать триста сорок пять шестьдесят семь восемьдесят девять -->
<say-as interpret-as="telephone">20-21-22</say-as>; <!-- двадцать двадцать один двадцать два -->
<say-as interpret-as="characters">РЛС</say-as>; <!-- эр эл эс -->
<say-as interpret-as="cardinal">42</say-as>; <!-- сорок два -->
<say-as interpret-as="ordinal">42</say-as>. <!-- сорок второй -->
<style>
Изменяет манеру (стиль) речи диктора. Например, вы можете сделать так, чтобы голос звучал более энергично или печально.
Для всех голосов, кроме Татьяна (для рекламы), предусмотрены три основных стиля: воодушевленный, раздраженный, подавленный. Для любого голоса вы также можете сгенерировать свои уникальные наборы стилей.
style
зависит от выбранного голоса и иногда может быть неотличим от стиля по умолчанию.Основные стили
Чтобы использовать один из основных стилей, укажите у тега <style>
атрибут name
.
Возможные значения:
exilant
— в голосе появится больше энергии, воодушевления.irate
— голос приобретет оттенки раздраженности.depressive
— голос станет подавленным, грустным.
В варианте с атрибутом name
тег style
используется как парный тег.
Основные стили могут быть применены ко всему тексту, его части или отдельному слову.
Сегодня пятница, значит впереди долгожданные выходные!
<style name="exilant">Сегодня пятница, значит впереди долгожданные выходные!</style>
<style name="depressive">Ну вот, выходные #закончились, завтра</style> <style name="irate">снова понедельник!</style>
Случайные стили
В Aimyvoice вы также можете использовать случайные стили. Их особенности генерируются случайным образом в зависимости от подобранного числа — идентификатора стиля.
Чтобы использовать случайные стили, примените к тегу <style>
атрибуты:
-
id
— идентификатор стиля, целое число в диапазоне от 0 до 999999999. При одном и том же значении атрибута особенности стиля будут сохранены. -
sigma
— целое или дробное число от 0 до 4. Усиливает или ослабляет выраженность (интенсивность) случайного стиля. Значение по умолчанию — 1.предупреждениеБольшие значенияsigma
могут приводить к появлению артефактов в звуке или неверному произношению текста.
При использовании атрибута id
тег style
является непарным и применяется, только если стоит в начале текста.
Стиль распространяется на весь текст целиком.
<style id="9989"/> В Санкт-Петербурге станцию метрополитэна - «Горный институт» - закончат строить к началу 2024 года. Об этом свидетельствуют данные на сайте гос закупок.
<style id="99999"/> В Санкт-Петербурге станцию метрополитэна - «Горный институт» - закончат строить к началу 2024 года. Об этом свидетельствуют данные на сайте гос закупок.
<style id="99999" sigma="2.5"/> В Санкт-Петербурге станцию метрополитэна - «Горный институт» - закончат строить к началу 2024 года. Об этом свидетельствуют данные на сайте гос закупок.
<style id="1199" sigma="3.0"/> Производители сланцевого газа и нефти в США не смогут предстоящей зимой резко увеличить поставки в страны Европы, которая рискует столкнуться с энергетическим кризисом.
<style id="627892919" sigma="2.0"/> Производители сланцевого газа и нефти в США не смогут предстоящей зимой резко увеличить поставки в страны Европы, которая рискует столкнуться с энергетическим кризисом.
Наложение стилей
Aimyvoice позволяет копировать манеру речи определенного диктора, комбинируя речевые особенности разных голосов. При копировании у голоса меняется ритмика и основной тон, но не тембр.
Чтобы комбинировать стили, используйте следующие атрибуты тега <style>
:
-
mimic_voice
— имя диктора из каталога (например,Маруся
) илиrandom
— тогда диктор будет выбран случайно.предупреждениеПри указании значенияrandom
следует всегда использовать атрибутid
— идентификатор стиля, целое число в диапазоне от 0 до 999999999. Иначе стиль будет каждый раз звучать по-разному. -
rhythm
— логическое значение 0 или 1. Указывает на то, что ритм целевого голоса будет изменен. Значение по умолчанию — 1. -
pitch
— логическое значение 0 или 1. Указывает на то, что тон целевого голоса будет изменен. Значение по умолчанию — 1.
При использовании атрибута mimic_voice
тег style
является непарным и применяется, только если стоит в начале текста.
Стиль распространяется на весь текст целиком.
<style mimic_voice="Маруся"/> В образцах лунного грунта, который был доставлен на Землю космическим аппаратом, китайские учёные нашли ранее неизвестный минерал.
<style mimic_voice="Маруся" pitch="0"/> В образцах лунного грунта, который был доставлен на Землю космическим аппаратом, китайские учёные нашли ранее неизвестный минерал.
<style mimic_voice="Маруся" id="23209" sigma="3.0"/> В образцах лунного грунта, который был доставлен на Землю космическим аппаратом, китайские учёные нашли ранее неизвестный минерал.
<sub>
Заменяет звучание слова на другое. Например, вы можете использовать этот тег, чтобы:
- Передать более привычное звучание: «что» — «што».
- Указать правильное произнесение единицы измерения: «м/c» — «метров в секунду».
Укажите желаемое звучание в атрибуте alias
.
Дни и ночи у <sub alias="мартэновских">мартеновских</sub> печей.