https://d226lax1qjow5r.cloudfront.net/blog/blogposts/christmas-poetry-reading-using-text-to-speech-dr/Christmas-Poetry-Reading-Using-Text-To-Speech.png

Lecture de poèmes de Noël à l'aide de la synthèse vocale et de SSML

Publié le May 10, 2021

Temps de lecture : 1 minute

Chez Nexmo, nous utilisons la synthèse vocale dans nos Applications de téléphonie, mais saviez-vous que votre texte pouvait faire plus que parler ? Notre Voice API prend en charge les éléments suivants SSML (Speech Synthesis Markup Language) qui vous permet d'ajouter une certaine expression dans vos sorties de synthèse vocale.

Comme c'est Noël, j'ai pensé me lancer un défi en écrivant un poème de Noël ! La synthèse vocale avec seulement la ponctuation comme les virgules et les points fonctionne plutôt bien, donc même au premier essai, on pouvait dire qu'il était censé y avoir un mètre.

Le petit Jack Horner, assis dans un coin, mangeait une tarte de Noël : Il a mis son pouce, a sorti une prune, et a dit : "Quel bon garçon je suis !"

Nous pouvons améliorer cela en marquant les mots qui doivent être accentués. J'ai utilisé des <prosody> pour donner plus de volume aux mots forts de la rime et pour les ralentir. Par exemple, "Horner", "corner", "plum" et "thumb" sont tous marqués de <prosody rate="x-slow"> pour faciliter le rythme du discours.

La synthèse vocale ne connaissait pas le mot "Horner", j'ai donc utilisé une balise <phoneme> pour épeler phonétiquement la façon dont le mot devrait être prononcé (ce qui permet au moins de le faire rimer avec "corner" dans la ligne suivante, mais il me semble toujours un peu étrange !) Il s'agit d'une astuce très utile lors de l'élaboration de votre contenu de synthèse vocale, en particulier pour les noms propres qui ne sont souvent pas familiers à l'analyseur syntaxique. Vous pouvez également l'utiliser pour tout autre mot dont la prononciation n'est pas conforme à vos attentes.

Enfin, pour le plaisir, j'ai supprimé le mot "bon" dans la dernière ligne en utilisant la balise <say-as> et en faisant de ce mot un explétif. Cette balise peut s'avérer très utile si votre application doit parler d'un contenu fourni par l'utilisateur dont le contenu est inconnu !

Voici le SSML que j'ai obtenu :

<speak>
    <lang xml:lang="en-GB">
        Little Jack <prosody rate="x-slow"><phoneme alphabet="ipa" ph="ˈhɔːnə">Horner</phoneme></prosody>,
        Sat in the<prosody rate="x-slow">corner</prosody>,
        Eating of <prosody volume="x-loud">Christmas</prosody> <prosody rate="x-slow">pie:</prosody>
        He put in his <prosody rate="x-slow">thumb</prosody>,
        And pulled out a <prosody rate="x-slow">plum</prosody>,
        And said, “What a <say-as interpret-as="expletive">good</say-as> boy am <prosody rate="x-slow">I</prosody>!”
    </lang>
</speak>

En incluant ce XML dans le champ text dans l'action talk de mon NCCO, et en ajoutant une action record j'ai pu capturer la poésie du robot :

https://soundcloud.com/user-872225766-984610678/conference-31696a4f-983f-40ea-b81a-ab942fc33782


Vous pourriez envisager d'ajouter un peu plus d'expression à votre interaction orale avec vos utilisateurs en ajoutant SSML - et la poésie est un excellent moyen de s'exercer. Faites-nous savoir si vous créez quelque chose de poétique pour Noël !

Partager:

https://a.storyblok.com/f/270183/250x250/e3d3b71060/lornajane.png
Lorna MitchellAnciens de Vonage

Lorna est une ingénieure en informatique qui a la manie incurable de bloguer. Elle tente d'apprivoiser les mots et le code à parts égales.