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

Есть ли способ, чтобы изменить скорость или объем, когда говорящий начинает говорить? Я попытался изменить его во время выполнения, но на выходе все еще используется старая скорость и объем. Благодарю.Speechsynthesizer (System.Speech.Synthesis.SpeechSynthesizer) - Изменение объема или скорости во время выполнения

+0

Возможный дубликат [.NET Text To Speech Volume] (http://stackoverflow.com/questions/6444081/net-text-to-speech-volume) – stuartd

+0

В соответствии с связанным вопросом: «Пока текст читать, громкость не может быть изменена » – stuartd

+0

Спасибо stuartd! – ShipOfTheseus

ответ

2

Нет, вы не можете изменить его, пока он читает, но вы можете подписаться на SpeakProgress событие, так что вы можете получить CharacterPosition и перезапустить говорить с новой скоростью и объемом в данной позиции

+0

Спасибо за помощь. – ShipOfTheseus

1

Вы можете сделать это инлайн с помощью SSML prosody element, а также атрибуты скорости и объема.

Чтобы использовать эту функцию, вам необходимо использовать метод SpeakSsmlAsync на SpeechSynthesizer.

 Смежные вопросы

  • Нет связанных вопросов^_^