Speech Synthesis Markup Language gebruiken

Voltooid

Hoewel u met de Azure AI Speech SDK tekst zonder opmaak kunt verzenden om te worden gesynthetiseerd in spraak (bijvoorbeeld met behulp van de Methode SpeakTextAsync(), ondersteunt de service ook een xml-syntaxis voor het beschrijven van de kenmerken van de spraak die u wilt genereren. Deze SSML-syntaxis (Speech Synthesis Markup Language ) biedt meer controle over hoe de gesproken uitvoer klinkt, zodat u het volgende kunt doen:

  • Geef een spreekstijl op, zoals 'opgewonden' of 'vrolijk' wanneer u een neurale stem gebruikt.
  • Plaats pauzes of stilte.
  • Geef phonemes (fonetische uitspraak) op, bijvoorbeeld om de tekst 'SQL' uit te spreken als 'vervolg'.
  • Pas de prosody van de stem aan (die van invloed is op de toonhoogte, timbre en spreeksnelheid).
  • Gebruik veelgebruikte 'say-as'-regels, bijvoorbeeld om op te geven dat een bepaalde tekenreeks moet worden uitgedrukt als een datum, tijd, telefoonnummer of een ander formulier.
  • Voeg opgenomen spraak of audio in, bijvoorbeeld om een standaard opgenomen bericht op te nemen of achtergrondruis te simuleren.

Denk bijvoorbeeld aan de volgende SSML:

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

Met deze SSML geeft u een gesproken dialoogvenster op tussen twee verschillende neurale stemmen, zoals deze:

  • Ariana (vrolijk): "Ik zeg tomaat:
  • Kerel: "Ik zeg tomaat (uitgesproken als tom-ah-teen) ... Laten we het allemaal uitbellen!"

Als u een SSML-beschrijving wilt verzenden naar de Speech-service, kunt u de methode SpeakSsmlAsync() als volgt gebruiken:

speechSynthesizer.SpeakSsmlAsync(ssml_string);

Zie de Documentatie van de Azure AI Speech SDK voor meer informatie over SSML.