收到错误“不是WAVE文件 - 没有RIFF标题”

时间:2016-02-10 07:00:54

标签: c# wav naudio speechsynthesizer

这就是我使用SpeechSynthesizer说“你好”的方式,转换为NAudio WaveFormatConversionStream并再次阅读。

我收到了错误

  

不是WAVE文件 - 没有RIFF标题

 int count = sourceFiles.Count;   
    WaveFileReader[] reader = new WaveFileReader[count];    

   var _wavStream = new MemoryStream();
                            using (SpeechSynthesizer synth = new SpeechSynthesizer())
                            {
                                synth.SetOutputToWaveStream(_wavStream);
                                synth.Speak("Hello");
                                _wavStream.Position = 0;
                                int outRate = 44100;
                                var outFormat = new WaveFormat(outRate, 16, 1);
                                using (var resampler = new WaveFormatConversionStream(outFormat, new WaveFileReader(_wavStream)))
                                {
                          reader[i] = new WaveFileReader(resampler); <====GotTheErrorHere 

我该如何解决? 谢谢!

1 个答案:

答案 0 :(得分:1)

语音合成器没有制作WAV文件,所以没有RIFF标题。而不是WaveFileReader你应该使用RawSourceWaveStream并传入内存流和语音合成器输出的正确WaveFormat