我想将音频字节数组从 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 播放。
最佳答案
您对重采样器的输入可以是 BufferedWaveProvider
或 RawSourceWaveStream
。但是,您不能使用 CreateWaveFile16 实时重新采样。您只需读取您希望可用的音频量并将其写入 WAV 文件。
关于c# - 如何使用 NAudio 对内存中的音频流 (byte[]) 进行重采样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24303261/