2017-02-07 15 views
0

У меня возникла проблема с преобразованием обычного звука wav в a-law. Я получаю плохое качество, делая так:Преобразование Wav с NAudio

WaveStream stream = new WaveFileReader(in.wav); 
var s = new RawSourceWaveStream(new WaveFormatConversionStream(new WaveFormat(8000, 16, 1), stream), new WaveFormat(8000, 16, 1)); 
var c = new WaveFormatConversionStream(WaveFormat.CreateALawFormat(8000, 1), s); 
WaveFileWriter.CreateWaveFile(AppDomain.CurrentDomain.BaseDirectory + "\\out.alaw", c); 

Или летящего Twise замедлили звук:

WaveStream stream = new WaveFileReader(in.wav); 
var s = new RawSourceWaveStream(stream, new WaveFormat(8000, 16, 1)); 
var c = new WaveFormatConversionStream(WaveFormat.CreateALawFormat(8000, 1), s); 
WaveFileWriter.CreateWaveFile(AppDomain.CurrentDomain.BaseDirectory + "\\out.alaw", c); 

Как конвертировать WAV в праве с хорошим качеством?

ответ

1

В любом примере вам не нужен RawSourceStream, а второй пример не будет работать, если in.wav не имеет нужного формата.

Попробуйте это:

var stream = new WaveFileReader(in.wav); 
var s = new WaveFormatConversionStream(new WaveFormat(8000, 16, 1), stream); 
var c = new WaveFormatConversionStream(WaveFormat.CreateALawFormat(8000, 1), s); 
WaveFileWriter.CreateWaveFile(AppDomain.CurrentDomain.BaseDirectory + "\\out.alaw", c);