5

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

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

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

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

4

2 回答 2

11

如果您对文件的实际音频内容不感兴趣,您可以使用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实用程序,并返回各种信息。我建议试一试:)

应该比使用打开每个 mp3快得多AudioSegment.from_mp3(…)

于 2015-07-14T13:42:59.687 回答
1

frame_rate 表示 sample_rate,所以你可以得到如下所示;

from pydub import AudioSegment

filename = "hoge.wav"
myaudio = AudioSegment.from_file(filename)
print(myaudio.frame_rate)
于 2021-10-23T05:00:08.257 回答