Använda talsyntesmarkeringsspråk

Slutförd

Med Azure AI Speech SDK kan du skicka oformaterad text som ska syntetiseras till tal (till exempel med metoden SpeakTextAsync(), men tjänsten stöder även en XML-baserad syntax för att beskriva egenskaperna för det tal som du vill generera. Den här SSML-syntaxen (Speech Synthesis Markup Language ) ger större kontroll över hur de talade utdata låter, så att du kan:

  • Ange ett talformat, till exempel "upphetsad" eller "glad" när du använder en neural röst.
  • Infoga pauser eller tystnad.
  • Ange fonem (fonetiska uttal), till exempel för att uttala texten "SQL" som "uppföljare".
  • Justera röstens prosody (påverkar tonhöjden, timbre och talfrekvensen).
  • Använd vanliga "say-as"-regler, till exempel för att ange att en viss sträng ska uttryckas som ett datum, tid, telefonnummer eller annat formulär.
  • Infoga inspelat tal eller ljud, till exempel för att inkludera ett standardinspelat meddelande eller simulera bakgrundsbrus.

Tänk till exempel på följande 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>

Denna SSML anger en talad dialogruta mellan två olika neurala röster, så här:

  • Ariana (glatt): "Jag säger tomat:
  • Guy: "Jag säger tomat (uttalas tom-ah-toe) ... Låt oss ställa in allt!"

Om du vill skicka en SSML-beskrivning till Speech-tjänsten kan du använda metoden SpeakSsmlAsync(), så här:

speechSynthesizer.SpeakSsmlAsync(ssml_string);

Mer information om SSML finns i Dokumentationen om Azure AI Speech SDK.