Welcome to Microsoft Q&A,
What you’re seeing is actually expected behavior when using input text streaming with Azure Text-to-Speech.
When you use:
SpeechSynthesisRequestInputType.TextStream
the service starts synthesizing audio immediately as text arrives. Because of that, request-level properties like SpeechSynthesisRequest_Rate are ignored. This isn’t a configuration issue in your code, the rate setting simply isn’t supported for text streaming today.
That property works only when the full text is known in advance.
If you need to control speaking speed, the only supported option is to use SSML prosody instead of plain text. In other words, you need to stream SSML, not raw text.
So instead of TextStream, switch to SsmlStream and wrap your text like this:
<prosody rate="1.2">Your text here</prosody>
Once you do that, the speech rate will be applied correctly.
Unfortunately, there’s no way right now to dynamically change speech speed for TextStream inputs, and the SDK doesn’t expose a client-side playback rate control for cloud TTS either. This is a current service limitation rather than a bug.
If this behavior is important for your scenario, SSML streaming is the recommended workaround.
Let us know if you need any further assistance, we’d be happy to help.
Best regards,
Chakravarthi Rangarajan Bhargavi
If you find this answer helpful, please click Accept Answer and upvote. This helps others in the community find the solution more easily.