Documentation de référence sur langage de balisage de synthèse vocale (SSML, Speech Synthesis Markup Language) (version bêta)

La plate-forme Actions on Google est compatible avec un certain nombre de fonctionnalités SSML bêta, en plus du Éléments SSML standards d'Actions on Google

Récapitulatif des fonctionnalités SSML (bêta) compatibles :

  • <phoneme> : personnaliser la prononciation de mots spécifiques.
  • <say-as interpret-as="duration"> : spécifier les durées.
  • <voice> : basculer entre les voix figurant dans une même requête.
  • <lang> : utiliser plusieurs langues dans la même requête.
  • Repères temporels: utilisez la balise <mark> pour renvoyer le repère temporel d'une dans votre transcription.

<phoneme>

Vous pouvez utiliser le tag <phoneme> pour produire des prononciations personnalisées de mots intégrés. Actions on Google accepte les l'IPA et alphabets phonétiques X-SAMPA. Consultez le page phonèmes pour obtenir la liste des langues et phonèmes.

Chaque application du tag <phoneme> oriente la prononciation d'un seul mot :

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

Marqueurs de stress

Il existe trois niveaux de stress pouvant être placées dans une transcription :

  1. Stress primaires: indiqué par ˈ dans IPA et " en X-SAMPA.
  2. Stress secondaire: indiqué par ˌ dans IPA et % dans X-SAMPA.
  3. Sans stress : ce champ n'est pas représenté par un symbole (dans l'une ou l'autre notation).

Certaines langues peuvent avoir moins de trois niveaux ou ne pas indiquer de placement de stress. Consultez la page des phonèmes pour découvrir les niveaux de stress disponibles pour votre langue. Les marqueurs de stress sont placés début de chaque syllabe accentuée. Par exemple, en anglais américain :

Exemple de mot  IPA X-SAMPA
eau ˈwɑːtɚ "wA:t@`
underwater ˌʌndɚˈwɑːtɚ %Vnd@"wA:t@

Transcriptions larges ou précises

De manière générale, veillez à ce que vos transcriptions soient plus larges et phonémiques. Par exemple, en anglais américain, transcrivez t intervocalique (au lieu d'utiliser un tapotement):

Exemple de mot  IPA X-SAMPA
beurre ˈbʌtɚ au lieu de ˈbʌɾɚ "bVt@` au lieu de "bV4@`

Dans certains cas, l'utilisation de la représentation phonémique ne rend pas vos résultats de synthèse vocale anormales (par exemple, si la séquence de phonèmes est anatomiquement difficile à prononcer).

Par exemple, vous pouvez exprimer l'assimilation de s en anglais. Dans ce cas, l'assimilation doit être reflétée dans la transcription :

Exemple de mot  IPA X-SAMPA
chats ˈkæts "k{ts
chiens ˈdɑːgz au lieu de ˈdɑːgs "dA:gz au lieu de "dA:gs

Réduction

Chaque syllabe doit contenir une (et une seule) voyelle. Cela signifie que vous devez éviter les consonnes syllabiques et les transcrire par une voyelle réduite. Exemple :

Exemple de mot  IPA X-SAMPA
chaton ˈkɪtən au lieu de ˈkɪtn "kIt@n au lieu de "kitn
kettle ˈkɛtəl au lieu de ˈkɛtl "kEt@l au lieu de "kEtl

Syllabification

Vous pouvez éventuellement spécifier des limites de syllabes à l'aide de .. Chaque syllabe doit contiennent une (et une seule) voyelle. Exemple :

Exemple de mot  IPA X-SAMPA
Lisibilité ˌɹiː.də.ˈbɪ.lə.tiː %r\i:.d@."bI.l@.ti:

Durées

La plate-forme Actions on Google prend en charge <say-as interpret-as="duration"> pour correctement les durées de lecture. Par exemple, l'exemple suivant serait prononcé "cinq heures et trente minutes":

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

La chaîne de format accepte les valeurs ci-dessous :

Abréviation Valeur
h heures
m minutes
s secondes
ms millisecondes

<voice>

Le tag <voice> vous permet d'utiliser plusieurs voix dans une seule requête SSML. Dans l'exemple suivant, la voix par défaut est une voix masculine anglaise. Tous les mots seront synthétisés dans cette voix à l'exception de "qu'est-ce qui t'amène ici", qui sera verbalisé en français à l'aide d'une voix féminine par rapport à la langue par défaut (anglais) et du genre (masculin).

<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>

Vous pouvez également utiliser une balise <voice> pour spécifier une voix individuelle (la nom de la voix sur la page des voix et langues disponibles) au lieu de spécifier language et/ou 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>

Lorsque vous utilisez la balise <voice>, Actions on Google s'attend à recevoir : un name (le nom de la voix que vous souhaitez utiliser) ou une combinaison des attributs suivants. Les trois sont facultatifs, mais vous devez en fournir au moins un si vous n'indiquez name

  • gender: male, female ou neutral.
  • variant: condition de départage en cas d'existence de plusieurs de la voix à utiliser en fonction de votre configuration.
  • language : la langue de votre choix. Une seule langue peut être spécifiée dans un tag <voice> donné. Spécifiez la langue au format BCP-47. Le code BCP-47 correspondant à votre langue figure dans la colonne Code de langue de la page Voix et langues prises en charge.

Vous pouvez également contrôler la priorité relative de chacun des attributs gender, variant et language à l'aide de deux tags supplémentaires : required et ordering.

  • required: si un attribut est désigné comme required et n'est pas configuré correctement, la requête échoue.
  • ordering : tous les attributs répertoriés après un tag ordering sont considérés comme des attributs préférés et non obligatoires. Le SSML considère attributs préférés du mieux possible, dans l'ordre dans lequel ils sont listés après la balise ordering. Si des attributs préférés sont configurés Actions on Google peut toujours renvoyer une voix valide, mais avec la configuration incorrecte supprimée.

Exemples de configurations utilisant les tags required et 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>

Vous pouvez utiliser <lang> pour inclure du texte dans plusieurs langues au sein de la même requête SSML. Toutes les langues seront synthétisées dans la même voix, sauf si vous utilisez le tag <voice> pour modifier explicitement la voix. La chaîne xml:lang doit contenir La langue cible au format BCP-47 (cette valeur est répertoriée comme "code de langue" dans les voix compatibles . Dans l'exemple suivant, "chat" sera prononcée en français la langue par défaut (anglais):

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

La plate-forme Actions on Google accepte la balise <lang> dans la mesure du possible. Il est possible que de langues produisent les mêmes résultats si elles sont spécifiées dans le même requête SSML. Dans certains cas, une combinaison linguistique peut produire un effet détectable, mais subtil ou perçu comme étant négatif. Problèmes connus :

  • Le japonais avec des caractères kanji n'est pas compatible avec le tag <lang>. La l'entrée est translittérée et lue comme des caractères chinois.
  • Les langues sémitiques telles que l'arabe, l'hébreu et le persan ne sont pas acceptées par la balise <lang> et activera le son. Si vous souhaitez utiliser l'un de ces langues, nous vous recommandons d'utiliser le tag <voice> pour passer à une voix parle la langue de votre choix (si disponible).