【问题标题】:Got error "Not a WAVE file - no RIFF header"收到错误“不是 WAVE 文件 - 没有 RIFF 标头”
【发布时间】:2016-02-10 07:00:54
【问题描述】:

这就是我使用 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 

我该如何解决?
谢谢!

【问题讨论】:

    标签: c# wav naudio speechsynthesizer


    【解决方案1】:

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 2018-07-07
    • 2013-06-10
    • 1970-01-01
    相关资源
    最近更新 更多