Справочник по языку разметки синтеза речи (SSML) (бета-версия)

Платформа Actions on Google поддерживает ряд бета-функций SSML в дополнение к стандартным элементам SSML Actions on Google .

Краткое описание поддерживаемых функций бета-версии SSML:

  • <phoneme> : настройте произношение определенных слов.
  • <say-as interpret-as="duration"> : укажите продолжительность.
  • <voice> : переключение между голосами в одном запросе.
  • <lang> : используйте несколько языков в одном запросе.
  • Временные точки: используйте тег <mark> , чтобы вернуть временную точку указанного момента в вашей стенограмме.

<phoneme>

Вы можете использовать тег <phoneme> для создания собственного произношения встроенных слов. Действия в Google поддерживают фонетические алфавиты IPA и X-SAMPA . На странице фонем вы найдете список поддерживаемых языков и фонем.

Каждое применение тега <phoneme> управляет произношением одного слова:

  <phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme>
  <phoneme alphabet="x-sampa" ph='m@"hA:g@%ni:'>mahogany</phoneme>

Маркеры стресса

В транскрипции можно разместить до трех уровней ударения:

  1. Первичное ударение : Обозначается ˈ в IPA и " в X-SAMPA.
  2. Вторичное напряжение : Обозначается ˌ в IPA и % в X-SAMPA.
  3. Безударный : не обозначается символом (ни в одном из обозначений).

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

Пример слова МПА Х-САМПА
вода ˈwɑːtɚ "wA:t@`
под водой ˌʌndɚˈwɑːtɚ %Vnd@"wA:t@

Широкая и узкая транскрипция

Как правило, транскрипции должны быть более широкими и фонематическими. Например, в американском английском запишите интервокальную букву t (вместо постукивания):

Пример слова МПА Х-САМПА
масло ˈbʌtɚ вместо ˈbʌɾɚ "bVt@` вместо "bV4@`

В некоторых случаях использование фонематического представления приводит к тому, что результаты TTS звучат неестественно (например, если последовательность фонем анатомически трудно произнести).

Одним из примеров этого является ассимиляция s в английском языке. В этом случае ассимиляция должна быть отражена в транскрипции:

Пример слова МПА Х-САМПА
кошки ˈkæts "k{ts
собаки ˈdɑːgz вместо ˈdɑːgs "dA:gz вместо "dA:gs

Снижение

Каждый слог должен содержать одну (и только одну) гласную. Это означает, что вам следует избегать слоговых согласных и вместо этого записывать их с уменьшенной гласной. Например:

Пример слова МПА Х-САМПА
котенок ˈkɪtən вместо ˈkɪtn "kIt@n вместо "kitn
чайник ˈkɛtəl вместо ˈkɛtl "kEt@l вместо "kEtl

Слогификация

При желании вы можете указать границы слогов, используя . . Каждый слог должен содержать одну (и только одну) гласную. Например:

Пример слова МПА Х-САМПА
читабельность ˌɹiː.də.ˈbɪ.lə.tiː %r\i:.d@."bI.l@.ti:

Продолжительность

Платформа Actions on Google поддерживает <say-as interpret-as="duration"> для правильного считывания продолжительности. Например, следующий пример можно было бы выразить словами «пять часов тридцать минут»:

<say-as interpret-as="duration" format="h:m">5:30</say-as>

Строка формата поддерживает следующие значения:

Сокращение Ценить
час часы
м минуты
с секунды
РС миллисекунды

<voice>

Тег <voice> позволяет использовать более одного голоса в одном запросе SSML. В следующем примере голосом по умолчанию является английский мужской голос. Все слова будут синтезированы этим голосом, за исключением «qu'est-ce qui t'amène ici», которое будет озвучено на французском языке женским голосом вместо языка по умолчанию (английского) и пола (мужского).

<speak>And then she asked, <voice language="fr-FR" gender="female">qu'est-ce qui
t'amène ici</voice><break time="250ms"/> in her sweet and gentle voice.</speak>

Альтернативно вы можете использовать тег <voice> для указания отдельного голоса ( имя голоса на странице поддерживаемых голосов и языков ) вместо указания language и/или gender :

<speak>The dog is friendly<voice name="fr-CA-Wavenet-B">mais la chat est
mignon</voice><break time="250ms"/> said a pet shop
owner</speak>

Когда вы используете тег <voice> , Actions on Google ожидает получить либо name ( имя голоса, который вы хотите использовать) , либо комбинацию следующих атрибутов. Все три атрибута являются необязательными, но если вы не указали name , необходимо указать хотя бы один.

  • gender : male , female или neutral .
  • variant : используется в качестве разрешения конфликта в случаях, когда в зависимости от вашей конфигурации существует несколько возможностей выбора голоса.
  • language : желаемый язык. В данном теге <voice> может быть указан только один язык. Укажите свой язык в формате BCP-47. Код BCP-47 для вашего языка можно найти в столбце кода языка на странице поддерживаемых голосов и языков .

Вы также можете контролировать относительный приоритет каждого атрибута « gender , variant » и language , используя два дополнительных тега: required » и ordering .

  • required : если атрибут обозначен как required и не настроен должным образом, запрос не будет выполнен.
  • ordering : любые атрибуты, перечисленные после тега ordering , считаются предпочтительными, а не обязательными. SSML учитывает предпочтительные атрибуты в максимально возможном порядке в том порядке, в котором они перечислены после тега ordering . Если какие-либо предпочтительные атрибуты настроены неправильно, Actions on Google все равно может возвращать действительный голос, но с удаленной некорректной конфигурацией.

Примеры конфигураций с использованием required тегов и тегов ordering :

<speak>And there it was <voice language="en-GB" gender="male" required="gender"
ordering="gender language">a flying bird </voice>roaring in the skies for the
first time.</speak>
<speak>Today is supposed to be <voice language="en-GB" gender="female"
ordering="language gender">Sunday Funday.</voice></speak>

<lang>

Вы можете использовать <lang> для включения текста на нескольких языках в один и тот же запрос SSML. Все языки будут синтезированы одним голосом, если только вы не используете тег <voice> для явного изменения голоса. Строка xml:lang должна содержать целевой язык в формате BCP-47 (это значение указано как «код языка» в таблице поддерживаемых голосов ). В следующем примере слово «чат» будет озвучено на французском языке вместо языка по умолчанию (английского):

<speak>The french word for cat is <lang xml:lang="fr-FR">chat</lang></speak>

Действия на платформе Google максимально поддерживают тег <lang> . Не все комбинации языков дают одинаковые результаты качества, если они указаны в одном и том же запросе SSML. В некоторых случаях языковая комбинация может произвести эффект, который можно обнаружить, но едва уловить или воспринимать как негативный. Известные вопросы:

  • Тег <lang> не поддерживает японский язык с символами кандзи. Ввод транслитерируется и читается как китайские иероглифы.
  • Семитские языки, такие как арабский, иврит и персидский, не поддерживаются тегом <lang> и приведут к тишине. Если вы хотите использовать любой из этих языков, мы рекомендуем использовать тег <voice> , чтобы переключиться на голос, говорящий на нужном вам языке (если доступен).