Azure TTS: volume="silent" or volume="0" doesn't work

mkb13 11 Reputation points
2021-05-09T14:10:19.8+00:00

I am trying to use the prosody - volume attribute in SSML to change the volume of my TTS (output to device speaker). It works -- except for silent/0.

I'm following the instructions for constructing SSML at https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/speech-synthesis-markup?tabs=csharp. My SSML looks like this and I am just changing the value for volume.

<voice name="en-US-GuyNeural">
<prosody volume="100">
Good morning to you too Jenny!
</prosody>
</voice>

If I set volume anywhere greater than 0 up to 100, I can hear the difference in volume.
If I set it to soft, medium, or loud, I can hear the difference.

But if I set it to 0, 0.0, or silent, it speaks loudly.

I'm using SpeechSynthesizer.SpeakSsmlAsync to pass in SSML to speak to the default device speaker on Windows.

I can work around it by using 0.01 (so I can't really hear it), or maybe passing in null for AudioConfig when initializing the synthesizer, but I think silent or 0 should work for volume since they are in the documentation.

Azure AI Speech
Azure AI Speech
An Azure service that integrates speech processing into apps and services.
1,405 questions
{count} votes