Speechsynthesizer(System.Speech.Synthesis.SpeechSynthesizer) - 在运行时更改音量或速率

时间:2015-02-23 13:21:33

标签: c# speech-recognition text-to-speech sapi speech-synthesis

string TextToBeRead = "My sample text";
SpeechSynthesizer speaker = new SpeechSynthesizer();
speaker.Rate = 5;
speaker.Volume = 70;
speaker.SpeakAsync(TextToBeRead);

一旦扬声器开始说话,有没有办法改变速率或音量?我试图在运行时更改它,但输出仍然使用旧的速率和音量。感谢。

2 个答案:

答案 0 :(得分:2)

不能在阅读时无法更改它,但您可以订阅SpeakProgress事件,这样您就可以获得CharacterPosition并在指定位置以新的费率和音量重新开始说话

答案 1 :(得分:1)

您可以使用SSML prosody element以及速率和音量属性进行内联。

您需要在SpeechSynthesizer上使用SpeakSsmlAsync方法才能使其正常工作。