如何使用Python获取MP3文件的采样率

5
我需要使用pygame播放这个mp3文件,但我不知道文件的采样率。我需要一种编程方式来获取音频文件的采样率,以便我可以以正确的速率播放它,否则声音会失真。感谢任何帮助。
2个回答

11

使用pydub

>>> from pydub import AudioSegment
>>> song = AudioSegment.from_mp3("file.mp3")
>>> song.frame_rate
44100

或者使用pydub.utils.mediainfo()

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

抱歉,我应该在原始帖子中说过这个问题,但我已经尝试过了,但似乎无法安装所需的FFmpeg依赖项 :/ - sharpchain
尝试安装轮版本。 - Szabolcs Dombi
你也可以安装依赖项。阅读 - Szabolcs Dombi
1
安装wheel版本对我有用,非常感谢! - sharpchain
这不是一个非常高效的方法。如果你只想获取像帧率这样的元数据,那么AudioSegment会解析整个MP3文件,这是不必要的。 - Cerin

2

使用pydub回答很好,但如果您在pyinstaller中使用它,则不太好。以下是如何使用mutagen实现您要查找的内容。

最初的回答:

# Specifically MP3 file
from mutagen.mp3 import MP3
audio_info = MP3('FILENAME.mp3').info

# Generic audio file
import mutagen
audio_info = mutagen.File('FILENAME.ext').info

print(audio_info.sample_rate)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接