2017-02-07 2 views
0

J'ai un problème avec la conversion du son régulier en un son loi. J'obtenir la mauvaise qualité lorsque vous faites comme ça:Wav convertir avec 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); 

Ou rhe twise ont ralenti son:

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); 

Comment convertir le wav à un règlement avec une bonne qualité?

Répondre

1

Vous n'avez pas besoin du RawSourceStream dans les deux exemples, et le deuxième exemple ne fonctionnera pas à moins que in.wav ait le bon format.

Essayez ceci:

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);