我有一个与我的工作相关的大型音频文件数据集(大约 80k 个文件,每个文件长约 45 分钟)。其中一些格式为“.m4a”,其他格式为“.mp3”。我不是计算机科学家,但我知道这是两种不同的格式。
稍后我将使用这些音频进行各种分析。我现在主要关心的是编译一个同质数据集。音频文件以两种不同的格式编码,这让我很烦恼。我可以将一个转换成另一个,但我担心转换后的文件质量会下降。
什么对我来说是个好策略?我应该保持文件原样,只转换本地版本进行分析吗?
我有一个与我的工作相关的大型音频文件数据集(大约 80k 个文件,每个文件长约 45 分钟)。其中一些格式为“.m4a”,其他格式为“.mp3”。我不是计算机科学家,但我知道这是两种不同的格式。
稍后我将使用这些音频进行各种分析。我现在主要关心的是编译一个同质数据集。音频文件以两种不同的格式编码,这让我很烦恼。我可以将一个转换成另一个,但我担心转换后的文件质量会下降。
什么对我来说是个好策略?我应该保持文件原样,只转换本地版本进行分析吗?
保持文件原样以便长期存储。
对于实验,只处理一种格式可能是有益的。
根据您拥有的可用资源,问题可能是:
根据分析的要求,您可能希望降低轨道的质量以获得速度优势。
如果您用于分析的软件同时支持 MP3 和 M4A,那么您就大功告成了。如果没有,您需要使用ffmpeg或sox等工具进行转换。
如果您要将文件转换为未压缩的 WAV,这将占用大量磁盘空间。如果你没有这个空间,WAV 就不是一个好的格式。而是转换为另一种无损格式,如 FLAC 或 Apple Lossless。您可以这样做而不会损失任何质量。
除了磁盘空间,您还需要注意磁盘速度。对于一些深度学习任务,您必须为您的网络提供大量不同的样本,您需要从磁盘中读取这些样本。由于 WAV 在磁盘上的大小大约是磁盘的 10 倍,磁盘 I/O 可能会成为瓶颈,因此可能需要最小化磁盘上的文件大小。
使用 FLAC 或 MP3 之类的压缩格式需要付出(小)代价。在分析之前,您必须即时解压缩音频文件。
如果您需要从某个时间戳(例如 10.455 秒)开始快速访问音频,WAV 等格式具有明显的优势,因为它们可以非常轻松地随机访问音频。对于压缩格式,这通常是不可能的(很快)。
这一切都取决于您的要求。
您需要快速随机访问音频吗?您真的需要 44,100 Hz 的立体声质量吗?通过转换为单声道 22,050 Hz,您可以大大减少问题的大小。如果这对您的目的仍然足够好,那就去做吧,并为自己省去很多麻烦(但请保留您的原始文件!)。
此外,为了获得更多技术性,如果您要使用 Python 之类的工具分析数据并且您知道需要频谱图,那么使用librosa 之类的库预处理 MP3/M4A 文件并简单地存储numpy数组是没有问题的,如果那是什么你最终需要。