我使用NI数据采集模块以48ksps的“现场”捕获了几Gb的样本数据。我想从此数据创建一个WAV文件。
我以前使用MATLAB加载数据,将其规格化为16位PCM范围,然后将其写为WAV文件来完成此操作。但是MATLAB会处理文件大小,因为它会“执行”内存中的所有内容。
理想情况下,我会在C ++或C语言中执行此操作(C#是一个选项),或者如果有现有实用程序,我会使用它。是否有简单的方法(即现有库)来获取原始PCM缓冲区,指定采样率,位深度并将其打包为WAV文件?
为了处理大型数据集,它可能必须能够以块的形式追加数据,因为不一定有可能将整个数据集读取到内存中。
我知道我可以使用格式规范从头开始执行此操作,但是我不想重新发明轮子,也不想花时间修复此错误,如果可以的话。
回答:
我认为您可以为此使用
libsox 。
更多&回答...