【发布时间】:2015-04-23 13:17:30
【问题描述】:
我正在尝试将SpeechSynthesizer 的输出写入 .wav 文件。如果合成完成,一切正常,输出文件可播放;
AudioStream = new FileStream(CurAudioFile, FileMode.Create);
reader.SetOutputToWaveStream(AudioStream);
reader.SpeakAsynch(myPromptBuilder);
但是如果我通过以下代码取消对文件的合成(因为过程太长,我可能想取消它)输出文件没有声音! (生成的文件大小不为零,但没有播放)。
// On Cancel Button Clicked
reader.SpeakAsyncCancelAll();
while (reader.State == SynthesizerState.Speaking)
{
Application.DoEvents();
}
// reader.SetOutputToNull();
AudioStream.Close();
我正在寻找一种可以取消音频生成的解决方案,但音频文件可以播放到取消之前的部分。
有什么方法可以实现吗?
【问题讨论】:
标签: c# windows winforms text-to-speech speechsynthesizer