Le SSML (Speech Synthesis Markup Language) permet de contrôler la prononciation, la prosodie, et d’ajouter des éléments tels que des pauses ou des accents dans le texte synthétisé. Il est très utile pour améliorer la qualité et la naturel de la synthèse vocale, surtout pour des livres audio.
Étape 1 : Comprendre les Balises SSML
Les balises SSML permettent d’ajuster divers aspects de la synthèse vocale. Voici quelques balises couramment utilisées :
<speak>
: La balise racine qui encapsule tout le contenu SSML.<p>
et<s>
: Pour marquer les paragraphes et les phrases, respectivement.<break>
: Pour ajouter des pauses.<prosody>
: Pour modifier le débit, le volume et la hauteur.<emphasis>
: Pour ajouter de l’emphase sur certaines parties du texte.<say-as>
: Pour spécifier le type de contenu (numéros, dates, etc.).<phoneme>
: Pour indiquer la prononciation phonétique d’un mot.
Étape 2 : Exemple de Texte avec SSML
Voici un exemple de texte utilisant différentes balises SSML :
<speak> <p> <s>Once upon a time, in a land far, far away, there was a beautiful kingdom.</s> <s>One day, a <emphasis level="strong">brave</emphasis> knight set out on a quest.</s> </p> <p> <s>He travelled for days, facing many <prosody rate="slow">dangers</prosody> and overcoming numerous obstacles.</s> <break time="1s"/> <s>Finally, he reached his destination and found the <prosody pitch="+2st">treasure</prosody>.</s> </p> </speak>
Étape 3 : Utiliser SSML avec Amazon Polly
Vous pouvez inclure du SSML directement dans le texte que vous passez à Amazon Polly. Voici comment intégrer cela dans un script Python :
- Installer les bibliothèques nécessaires :
pip install boto3
- Écrire un script pour utiliser SSML :
import boto3 # Configurer le client polly = boto3.client('polly') # Préparer le texte du livre avec SSML ssml_text = """ <speak> <p> <s>Once upon a time, in a land far, far away, there was a beautiful kingdom.</s> <s>One day, a <emphasis level="strong">brave</emphasis> knight set out on a quest.</s> </p> <p> <s>He travelled for days, facing many <prosody rate="slow">dangers</prosody> and overcoming numerous obstacles.</s> <break time="1s"/> <s>Finally, he reached his destination and found the <prosody pitch="+2st">treasure</prosody>.</s> </p> </speak> """ # Diviser le texte en parties si nécessaire (chaque synthèse a une limite de caractères) text_parts = [ssml_text[i:i+1500] for i in range(0, len(ssml_text), 1500)] audio_content = b'' for part in text_parts: response = polly.synthesize_speech( Text=part, OutputFormat='mp3', VoiceId='Joanna', # Changez la voix selon vos préférences TextType='ssml' ) # Combiner les parties audio audio_content += response['AudioStream'].read() # Sauvegarder le fichier audio with open("output_book.mp3", "wb") as out: out.write(audio_content) print("Audio book created successfully.")
Étape 4 : Tester et Affiner
- Écouter l’audio généré :
- Vérifiez la qualité et la fluidité de l’audio généré.
- Ajustez les balises SSML pour améliorer la prononciation et la prosodie selon vos besoins.
- Effectuer des ajustements :
- Utilisez des balises
<break>
pour ajouter des pauses naturelles. - Utilisez
<prosody>
pour ajuster le débit et la hauteur selon l’émotion ou l’accentuation souhaitée. - Utilisez
<emphasis>
pour mettre en avant des mots importants.
- Utilisez des balises
Étape 5 : Finaliser et Distribuer
- Assembler l’audio final :
- Si nécessaire, utilisez des outils de montage audio pour combiner, couper ou ajuster les fichiers audio générés.
- Distribuer le livre audio :
- Téléchargez le fichier finalisé sur les plateformes de distribution de livres audio ou de podcasts.
En suivant ces étapes, vous pouvez utiliser Amazon Polly avec SSML pour créer un livre audio de haute qualité avec une synthèse vocale naturelle et bien structurée.