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 accepte un certain nombre de fonctionnalités SSML bêta en plus des é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'un moment spécifié 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 alphabets phonétiques IPA et X-SAMPA. Consultez la page des phonèmes pour obtenir la liste des langues et des phonèmes acceptés.

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. Stressage principal: indiqué par ˈ dans l'IPA et " dans X-SAMPA.
  2. Stressage secondaire: indiqué par ˌ dans l'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 connaître les niveaux de stress disponibles pour votre langue. Des marqueurs de stress sont placés au début de chaque syllabe stressé. 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 fines et larges

De manière générale, veillez à ce que vos transcriptions soient plus larges et phonémiques. Par exemple, en anglais américain, transcrivez la requête intervocale t (au lieu d'appuyer sur l'écran):

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

C'est par exemple le cas de 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
cats ˈkæts "k{ts
dogs ˈ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
kitten ˈ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 contenir 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 accepte <say-as interpret-as="duration"> pour lire correctement les durées. Par exemple, l'exemple suivant serait verbalisé "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éviations Valeur
h heures
m minutes
s secondes
ms milliseconde

<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 (le nom de la voix sur la page Voix et langues compatibles) 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 soit un name (le nom de la voix que vous souhaitez utiliser), soit une combinaison des attributs suivants. Les trois attributs sont facultatifs, mais vous devez en indiquer au moins un si vous ne fournissez pas de name.

  • gender: male, female ou neutral.
  • variant: utilisé pour marquer les points lorsqu'il existe plusieurs possibilités 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 les attributs préférés au mieux dans l'ordre dans lequel ils sont listés après la balise ordering. Si certains attributs préférés sont mal configurés, Actions on Google peut toujours renvoyer une voix valide, mais avec une 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 en tant que "code de langue" dans le tableau des voix compatibles). Dans l'exemple suivant, "chat" sera verbalisé en français au lieu de 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. Toutes les combinaisons de langues ne produisent pas les mêmes résultats de qualité si elles sont spécifiées dans la 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>. L'entrée fait l'objet d'une translittération et est lue en caractères chinois.
  • Les langues sémites telles que l'arabe, l'hébreu et le persan ne sont pas compatibles avec la balise <lang> et entraînent le silence. Si vous souhaitez utiliser l'une de ces langues, nous vous recommandons d'utiliser la balise <voice> pour passer à une voix qui parle la langue de votre choix (si disponible).