Платформа 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>, чтобы переключиться на голос, говорящий на нужном вам языке (если он доступен).