0
我正在尝试将SpeechSynthesizer
的输出写入.wav文件。如果综合完成,一切运作良好,输出文件是可播放的;如何从写入文件中取消SpeechSynthesizer,同时保留生成的音频?
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();
我在寻找一种解决方案,在该解决方案中,我可以取消音频生成,但音频文件可以播放到取消前的部分。
有什么办法可以实现这个目标吗?
谢谢,刷新流不起作用。你说没有办法取消或强制合成完成并获得有效的流?如何使用NAudio.Wave.RawSourceWaveStream输出? – Ahmad
@Ahmad我不够精通语音合成系统来正确回答我的问题。祝你好运! – Clint