2016-02-10 12 views
0

Так я говорю «Привет», используя SpeechSynthesizer, конвертировать с NAudio WaveFormatConversionStream и читать его снова.Got error «Не WAVE-файл - нет заголовка RIFF»

И я получил ошибку

Не файл 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

Речевой синтезатор не создал WAV-файл, поэтому нет заголовка RIFF. вместо WaveFileReader вы должны использовать RawSourceWaveStream и передать в поток памяти и правильный WaveFormat, который выводит речевой синтезатор.

+0

Я пытался с этим http://stackoverflow.com/a/4237282/1427849, но он по-прежнему дает мне такую ​​же ошибку, не могли бы вы помочь мне с кодом? – zey