0

这就是我说“你好”的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 

我该如何解决?
谢谢 !

4

1 回答 1

1

语音合成器没有制作WAV文件,所以没有RIFF头。而不是WaveFileReader您应该使用RawSourceWaveStream和传递内存流以及WaveFormat语音合成器输出的正确性。

于 2016-02-10T14:29:32.937 回答