Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
112 lines (78 sloc) 7.3 KB

Использование SSML

Использование Speech Synthesis Markup Language (SSML) дает вам возможность контролировать, как {{ speechkit-name }} синтезирует речь из текста.

Чтобы передать текст в формате SSML используйте параметр ssml в теле запроса, а сам текст оберните в тег <speak>:

{% include ssml-example %}

Пример отправки запроса.

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

На данный момент {{ speechkit-name }} поддерживает следующие теги SSML:

Описание Тег
Добавить паузу <break>
Добавить паузу между параграфами <p>
Использовать фонетическое произношение <phoneme>
Корневой тег для текста в формате SSML <speak>
Добавить паузу между предложениями <s>
Произношение аббревиатур <sub>

break {#break}

Используйте тег <break>, чтобы добавить в речь паузу заданной длительности. Длительность указывается с помощью атрибутов strength и time. Если эти атрибуты не заданы, то по умолчанию используется strength="medium".

Атрибут Описание
strength Длительность паузы. Допустимые значения:
* medium или weak — соответствует паузе после запятой.
* strong — соответствует паузе после точки или предложения.
* x-strong — соответствует паузе после параграфа.
* none или x-weak — эти значения не добавляют паузу, а оставлены для совместимости с AWS API.
time Длительность паузы в секундах или миллисекундах, например 2s или 400ms. Максимальная длительность паузы — 5 секунд.
При синтезе паузы указанной длительности может быть погрешность 100-200 миллисекунд.
<speak>Эй, секундочку<break time="1s"/> Что вы делаете?</speak>

Тег <break> добавляет паузу, даже если он идет после других элементов, добавляющих паузу, например после точки или запятой.

p {#p}

Используйте тег <p>, чтобы добавить паузу между абзацами. Пауза добавляется после закрывающего тега.

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

<speak>
  <p>Палач доказывал, что нельзя отрубить голову, у которой нет туловища, значит казнь не может состояться.</p>
  <p>Король доказывал, что все, имеющее голову, может быть обезглавлено, и что палач говорит пустяки.</p>
  <p>Королева тем временем вопила, что если кот не будет немедленно казнен, то казнены будут все присутствующее (замечание это удручающе подействовало на всех участников игры).</p>
</speak>

Все паузы внутри тега тоже учитываются. Например на месте точки добавится дополнительная пауза, даже если она стоит перед закрывающим тегом.

phoneme {#phoneme}

Используйте тег <phoneme>, чтобы контролировать правильность произношения с помощью фонем. Для воспроизведения будет использован текст, указанный в атрибуте ph. В атрибуте alphabet укажите используемый стандарт: ipa или x-sampa.

  • Международный фонетический алфавит (IPA)

    <speak>
          В разных регионах России по-разному произносят букву
          <phoneme alphabet="ipa" ph="o">О</phoneme> в словах.
          Где-то говорят <phoneme alphabet="ipa" ph="məlɐko">молоко</phoneme>,
          а где-то <phoneme alphabet="ipa" ph="mələko">молоко</phoneme>.
    </speak>
  • Extended Speech Assessment Methods Phonetic Alphabet (X-SAMPA)

    <speak>
          В разных регионах России по-разному произносят букву
          <phoneme alphabet="x-sampa" ph="o">О</phoneme> в словах.
          Где-то говорят <phoneme alphabet="x-sampa" ph="m@l6ko">молоко</phoneme>,
          а где-то <phoneme alphabet="x-sampa" ph="m@l@ko">молоко</phoneme>.
    </speak>

Список поддерживаемых фонем для каждого из языков.

speak {#speak}

Тег <speak> — это корневой тег. Весь текст должен быть внутри этого тега.

<speak>Мой текст в формате SSML.</speak>

s {#s}

Используйте тег <s>, чтобы добавить паузу между предложениями. Пауза после предложения равна паузе после точки. Длительность паузы зависит от выбранного голоса, эмоциональной окраски, скорости и языка.

<speak>
  <s>Первое предложение<s/>
  <s>Второе предложение</s>
</speak>

Все паузы внутри тега тоже учитываются. Например на месте точки добавится дополнительная пауза, даже если она стоит перед закрывающим тегом.

sub {#sub}

Используйте тег <sub>, чтобы подменить текст на другой текст при произношении. Например, чтобы правильно произнести аббревиатуру или название химического элемента.

<speak>
  Мой любимый химический элемент — <sub alias="ртуть">Hg</sub>, потому что блестит.
</speak>
You can’t perform that action at this time.