我使用NI数据采集模块以48ksps的“现场”捕获了几Gb的样本数据。我想从此数据创建一个WAV文件。

我以前使用MATLAB加载数据,将其规格化为16位PCM范围,然后将其写为WAV文件来完成此操作。但是MATLAB会处理文件大小,因为它会“在内存中”执行所有操作。

理想情况下,我会在C++或C中执行此操作(C#是一个选项),或者如果存在现有实用程序,则可以使用它。是否有简单的方法(即现有的库)来获取原始PCM缓冲区,指定采样率,位深度并将其打包为WAV文件?

为了处理大型数据集,它可能必须能够以块的形式追加数据,因为不一定有可能将整个数据集读取到内存中。

我知道我可以使用格式规范从头开始执行此操作,但是我不想重新发明轮子,也不想花时间修复此问题,如果可以的话。

最佳答案

我认为您可以为此使用libsox

07-25 21:40
查看更多