Utiliser le langage de balisage de synthèse vocale

Effectué

Bien que le Kit de développement logiciel (SDK) Azure AI Speech vous permet de soumettre du texte brut à synthétiser en synthèse vocale (par exemple, à l’aide de la méthode SpeakTextAsync(), le service prend également en charge une syntaxe BASÉE sur XML pour décrire les caractéristiques de la parole que vous souhaitez générer. Cette syntaxe SSML ( Speech Synthesis Markup Language ) offre un meilleur contrôle sur la façon dont les sons de sortie prononcés vous permettent de :

  • Spécifiez un style de parole, tel que « excité » ou « joyeux » lors de l’utilisation d’une voix neuronale.
  • Insérer des pauses ou un silence.
  • Spécifiez des phonèmes (prononciations phonétiques), par exemple pour prononcer le texte « SQL » comme « suite ».
  • Ajustez la prosodie de la voix (affectant la hauteur, le timbre et le taux de parole).
  • 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érez la voix ou l’audio enregistrés, par exemple pour inclure un message enregistré standard ou simuler le bruit d’arrière-plan.

Par exemple, tenez compte de la SSML suivante :

<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 un dialogue parlé entre deux voix neuronales différentes, comme suit :

  • Ariana (joyeusement) : "Je dis tomate :
  • Mec : "Je dis tomate (prononcé to-ma-te) ... Finissons-en avec cette histoire !"

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 Kit de développement logiciel (SDK) Azure AI Speech.