Share via

Azure TTS failing when using SSML

AlexAngelliux 0 Reputation points
2023-05-09T13:41:42.03+00:00

Hi everyone,

I'm developing a C# CLI to read chats from selected Twitch Chatters using Azure text-to-speech.

I've set up the string 'messageText' to contain the given chat, and string 'ssmlText' to add relevant SSML to messageText. This is done to change the voice the text-to-speech uses. I also want to be able to have chat use keywords like '(terrified)' or '(excited)' to change the voice's emotion accordingly.

However, SSML is not working- in any form- for me. The app itself works, as if I change the speech synthesizer to read just messageText it works fine.

Is it because I am a non-paid Azure user? Is there an error with my code?

Here is my code to convert messageText to SSML:

string ssmlText = $"<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-Michael'>" +
    $"<mstts:express-as style='neutral'>{messageText}</mstts:express-as>" +
    $"</voice>" +
    $"</speak>";

// line that is supposed to read the SSML
var speechSynthesisResult = await speechSynthesizer.SpeakSsmlAsync(ssmlText);
Azure Speech in Foundry Tools

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.