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

pydub accessing the sampling rate(Hz) and the audio signal from an mp3 file

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

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

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

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

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

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

这使用了 avlib 的 avprobe 实用程序和 returns 各种信息。我建议试一试 :)

应该比使用 AudioSegment.from_mp3(…)

打开每个 mp3 快

frame_rate表示sample_rate,所以可以像下面这样得到;

from pydub import AudioSegment

filename = "hoge.wav"
myaudio = AudioSegment.from_file(filename)
print(myaudio.frame_rate)