Använda talsyntesmarkeringsspråk
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.