Платформа 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>
Маркеры стресса
В транскрипции можно разместить до трех уровней ударения:
- Первичное ударение : Обозначается
ˈ
в IPA и"
в X-SAMPA. - Вторичное напряжение : Обозначается
ˌ
в IPA и%
в X-SAMPA. - Безударный : не обозначается символом (ни в одном из обозначений).
В некоторых языках может быть меньше трех уровней или вообще не обозначаться размещение ударения. Посетите страницу фонем , чтобы узнать уровни ударения, доступные для вашего языка. Маркеры ударения ставятся в начале каждого ударного слога. Например, на американском английском:
Пример слова | МПА | Х-САМПА |
---|---|---|
вода | ˈ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
. Если какие-либо предпочтительные атрибуты настроены неправильно, Действия в 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>
, чтобы переключиться на голос, говорящий на нужном вам языке (если он доступен).