如何使用带有 PyTorch 的 CNN 处理音频分类的输入数据?
How to process input data for audio classification using CNN with PyTorch?
作为一名在 DSP 和 ML 领域工作的工程师学生,我正在从事一个音频分类项目,输入是贝司、键盘、吉他等乐器的短片段(4 秒)。(NSynth Dataset by the Magenta team at Google).
想法是将所有短片(.wav 文件)转换为频谱图或 melspectrogram,然后应用 CNN 来训练模型。
但是,我的问题是因为整个数据集很大(大约23GB),我想知道我是否应该先将所有音频文件转换为PNG等图像然后应用CNN。我觉得这可能会花费很多时间,而且它会使我的输入数据的存储量增加一倍 space,因为现在它是音频 + 图像(可能高达 70GB)。
因此,我想知道这里是否有任何可以加快该过程的解决方法。
提前致谢。
预处理是完全值得的。您很可能最终会 运行 在您的网络按您希望的方式工作之前进行多次实验,并且您不想每次都浪费时间对特征进行预处理,您想要更改一些超参数.
与其使用 PNG,不如直接保存 PyTorch 张量 (torch.save
that uses Python's standard pickling protocols) or NumPy arrays (numpy.savez
saves serialized arrays into a zip file). If you are concerned with disk space, you can consider numpy.save_compressed
.
作为一名在 DSP 和 ML 领域工作的工程师学生,我正在从事一个音频分类项目,输入是贝司、键盘、吉他等乐器的短片段(4 秒)。(NSynth Dataset by the Magenta team at Google).
想法是将所有短片(.wav 文件)转换为频谱图或 melspectrogram,然后应用 CNN 来训练模型。
但是,我的问题是因为整个数据集很大(大约23GB),我想知道我是否应该先将所有音频文件转换为PNG等图像然后应用CNN。我觉得这可能会花费很多时间,而且它会使我的输入数据的存储量增加一倍 space,因为现在它是音频 + 图像(可能高达 70GB)。
因此,我想知道这里是否有任何可以加快该过程的解决方法。
提前致谢。
预处理是完全值得的。您很可能最终会 运行 在您的网络按您希望的方式工作之前进行多次实验,并且您不想每次都浪费时间对特征进行预处理,您想要更改一些超参数.
与其使用 PNG,不如直接保存 PyTorch 张量 (torch.save
that uses Python's standard pickling protocols) or NumPy arrays (numpy.savez
saves serialized arrays into a zip file). If you are concerned with disk space, you can consider numpy.save_compressed
.