如何使用NAudio重新采样内存中的音频流(byte [])?

时间:2014-06-19 09:29:33

标签: c# naudio

我想将音频字节数组从8Khz重新采样到48Khz。音频流从网络套接字获得byte[]

阅读Mark Heath's Blog about resampling using NAudio,我遇到了以下代码

int outRate = 16000; 
var inFile = @"test.mp3"; 
var outFile = @"test resampled WDL.wav"; 
using (var reader = new AudioFileReader(inFile)) 
{ 
    var resampler = new WdlResamplingSampleProvider(reader, outRate); 
    WaveFileWriter.CreateWaveFile16(outFile, resampler); 
}

但是此代码作用于文件流(AudioFileReader)而不是内存数据(byte[])。如何修改此代码以对我的字节数组进行上采样?

编辑:基本上我想将从网络对等体获得的8 KHz数据上采样到48 KHz并使用WASAPI进行播放。

1 个答案:

答案 0 :(得分:2)

您对重新采样器的输入可以是BufferedWaveProviderRawSourceWaveStream。但您无法实时使用CreateWaveFile16进行重新采样。您只需要读取预期可用的音频量并将其写入WAV文件。