pydub 从 mp3 文件访问采样率 (Hz) 和音频信号

bni*_*aul 4 python audio mp3 wav pydub

刚刚发现了这个有趣的 python 包 pydub,它可以将任何音频文件转换为 mp3、wav 等。

据我阅读它的文档,过程如下:

  1. 使用 from_mp3() 读取 mp3 音频文件
  2. 使用 export() 创建一个 wav 文件。

只是好奇是否有办法直接从 mp3 文件访问采样率和音频信号(一维数组,假设它是单声道),而无需将其转换为 wav 文件。我正在处理数千个音频文件,将它们全部转换为 wav 文件可能会很昂贵。

Jia*_*aro 9

如果您对文件的实际音频内容不感兴趣,您可以使用pydub.utils.mediainfo()

>>> from pydub.utils import mediainfo
>>> info = mediainfo("/path/to/file.mp3")
>>> print info['sample_rate']
44100
>>> print info['channels']
1
Run Code Online (Sandbox Code Playgroud)

这使用 avlib 的avprobe实用程序,并返回各种信息。我建议试一试:)

比使用打开每个MP3快AudioSegment.from_mp3(…)

  • 它是一个字节串 - 大多数音频以很多零开头(开头为静音) - 如果你想要一个数字数组,你可以很容易地转换它(这是我在 EQ 过滤器中做的一个例子:https://github.com /jiaaro/pydub/blob/master/pydub/effects.py#L200) (2认同)