Bruk talesyntesemarkeringsspråk
Mens Azure Speech SDK lar deg sende inn ren tekst som syntetiseres til tale, støtter tjenesten også en XML-basert syntaks for å beskrive egenskapene til talen du ønsker å generere. Denne SSML-syntaksen ( Speech Synthesis Markup Language ) gir større kontroll over hvordan de talte utdataene høres ut, slik at du kan:
- Angi en talestil, for eksempel "spent" eller "munter" når du bruker en nevral stemme.
- Sett inn pauser eller stillhet.
- Angi fonemer (fonetiske uttaler), for eksempel for å uttale teksten "SQL" som "oppfølger".
- Juster prosodien til stemmen (påvirker tonehøyden, klangen og talehastigheten).
- Bruk vanlige «say-as»-regler, for eksempel for å angi at en gitt streng skal uttrykkes som dato, klokkeslett, telefonnummer eller annet skjema.
- Sett inn innspilt tale eller lyd, for eksempel for å inkludere en standard innspilt melding eller simulere bakgrunnsstøy.
Vurder for eksempel følgende 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>
Denne SSML angir en muntlig dialogboks mellom to forskjellige nevrale stemmer, som dette:
- Ariana (muntert): "Jeg sier tomat:
- Fyr: "Jeg sier tomat (uttales tom-ah-toe) ... La oss avlyse det hele!»
Hvis du vil sende inn en SSML-beskrivelse til Speech-tjenesten, kan du bruke en passende metode for et SpeechSynthesizer-objekt , slik som dette:
speech_synthesis_result = speech_synthesizer.speak_ssml_async('<speak>...').get()
For mer informasjon om SSML, se Azure Speech SDK-dokumentasjonen.