如何避免使用c#中文本转语音功能后的延迟
本文关键字:功能 语音 延迟 文本 何避免 中文 | 更新日期: 2023-09-27 17:54:32
如何在c#中使用文本转语音功能后避免延迟,如何在语音合成器后避免延迟。请讲,我想让我的定时器立即启用。
SpeechSynthesizer sr = new SpeechSynthesizer();
sr.Rate = 1;
sr.Volume = 100;
sr.Speak("mytext");
timer1.enabled=true; /*how to run this line immediately, not wating for sr.speak */
您需要使用异步版本的Speak。如果这个不可用,那么你可以创建一个线程在后台运行Speak。
SpeechSynthesizer sr = new SpeechSynthesizer();
sr.Rate = 1;
sr.Volume = 100;
//the following starts a background thread
Task.Factory.StartNew(
() =>
{
//this anon method will be run in a background thread
sr.Speak();
SpeakCallBack();
});
当定义SpeakCallBack
时,确保Invoke
有任何UI代码
private async void speakSomething(string message)
{
SpeechSynthesizer sr = new SpeechSynthesizer();
sr.Rate = 1;
sr.Volume = 100;
await sr.Speak(message);
}
然后,在你的主函数或刚才的方法中…
speakSomething("my text");
timer1.enabled=true;