我想将音频字节数组从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进行播放。
答案 0 :(得分:2)
您对重新采样器的输入可以是BufferedWaveProvider
或RawSourceWaveStream
。但您无法实时使用CreateWaveFile16进行重新采样。您只需要读取预期可用的音频量并将其写入WAV文件。