管理不同格式的音频文件数据集

数据挖掘 数据集 音频识别
2022-02-21 09:02:03

我有一个与我的工作相关的大型音频文件数据集(大约 80k 个文件,每个文件长约 45 分钟)。其中一些格式为“.m4a”,其他格式为“.mp3”。我不是计算机科学家,但我知道这是两种不同的格式。

稍后我将使用这些音频进行各种分析。我现在主要关心的是编译一个同质数据集。音频文件以两种不同的格式编码,这让我很烦恼。我可以将一个转换成另一个,但我担心转换后的文件质量会下降。

什么对我来说是个好策略?我应该保持文件原样,只转换本地版本进行分析吗?

2个回答

保持文件原样以便长期存储

对于实验,只处理一种格式可能是有益的。

根据您拥有的可用资源,问题可能是:

  • 支持的格式
  • 磁盘空间/速度
  • 减压速度
  • 随机访问

根据分析的要求,您可能希望降低轨道的质量以获得速度优势。

支持的格式

如果您用于分析的软件同时支持 MP3 和 M4A,那么您就大功告成了。如果没有,您需要使用ffmpegsox等工具进行转换。

磁盘空间/速度

如果您要将文件转换为未压缩的 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数组是没有问题的,如果那是什么你最终需要。

如果您有足够的存储空间,请将所有这些转换为一些常见的格式,例如 320kbps MP3 或 WAV。

这将节省分析管道的一些问题(并将这些问题移至 ETL 管道)。

问题是:

  1. 音频处理库的兼容性问题(例如特定库可能只接受原始音频,另一个可能接受 mp3)
  2. 元数据标记和提取的兼容性问题(一些库不会从 wav 读取标签,其他库不会从 m4a 读取它们)
  3. 运行时格式转换引入的工件(离线转换可以承受更多的 CPU 周期)

这将需要约 10TB 或 40TB 的存储空间。

在此处输入图像描述