Utiliser le langage de balisage de synthèse vocale

Effectué

Bien que le Kit de développement logiciel (SDK) Azure AI Speech vous permette d’envoyer du texte brut à synthétiser en flux audio (par exemple, à l’aide de la méthode SpeakTextAsync()), le service prend également en charge une syntaxe XML pour décrire les caractéristiques du flux audio que vous souhaitez générer. Cette syntaxe Speech Synthesis Markup Language (SSML) offre un contrôle accru sur la façon dont la sortie orale s’affiche, ce qui vous permet d’effectuer les opérations suivantes :

  • Spécifier un style de parole, par exemple « excited » (enthousiaste) ou « cheerful » (chaleureux) lors de l’utilisation d’une voix neuronale.
  • Insérer des pauses ou un silence.
  • Spécifier des phonèmes (prononciations phonétiques), par exemple pour prononcer le texte « SQL » sous la forme « sequel ».
  • Ajuster la prosodie de la voix (en modifiant l’intonation, le timbre et la vitesse d’élocution).
  • Utiliser des règles « say-as » communes, par exemple pour spécifier qu’une chaîne donnée doit être exprimée sous la forme d’une date, d’une heure, d’un numéro de téléphone ou sous une autre forme.
  • Insérer des données vocales ou audio enregistrées, par exemple pour inclure un message enregistré standard ou simuler un bruit de fond.

Observez par exemple le SSML suivant :

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" 
                     xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US"> 
    <voice name="en-US-AriaNeural"> 
        <mstts:express-as style="cheerful"> 
          I say tomato 
        </mstts:express-as> 
    </voice> 
    <voice name="en-US-GuyNeural"> 
        I say <phoneme alphabet="sapi" ph="t ao m ae t ow"> tomato </phoneme>. 
        <break strength="weak"/>Lets call the whole thing off! 
    </voice> 
</speak>

Ce SSML spécifie une conversation orale entre deux voix neuronales différentes, comme suit :

  • Ariana (d’un ton chaleureux) : « Je dis tomato :
  • Guy: « Je dis tomato (prononcé Tom-Ai-To)... N’en parlons plus ! »

Pour envoyer une description SSML au service Speech, vous pouvez utiliser la méthode SpeakSsmlAsync(), comme suit :

speechSynthesizer.SpeakSsmlAsync(ssml_string);

Pour plus d’informations sur SSML, consultez la documentation du SDK Azure AI Speech.