用Python播放MP3 - 自动处理不同的采样频率

时间:2016-10-15 06:57:38

标签: python pygame mp3 frequency sampling

我正在编写一个python程序来练习和测试我的普通话口语理解。它从我指定的目录中选择一个随机mp3并播放它(之后会做更多的事情)。我正在使用pygame播放这些mp3,但我的问题是我当前的设置需要明确声明mp3的采样频率才能正常播放。但是,我有48 kHz和44.1 kHz mp3的混合,并且希望能够在不扭曲声音的情况下播放它们。

import pygame
import random
import os

filenames = [x[:-4] for x in os.listdir(filepath) if x.endswith(suffix)]

pygame.mixer.init(48000, -16, 2, 4096)
selected_filename = random.choice(filenames)
selected_filename_full = filepath + selected_filename + suffix 
pygame.mixer.music.load(selected_filename_full)
pygame.mixer.music.set_volume(volume)
pygame.mixer.music.play()

有没有办法检测mp3的采样频率?或者以某种方式正确播放mp3?这似乎是一个奇怪的问题,每当我双击一个mp3时,我的音乐播放器将始终正常播放,那么我可以做些什么来在我的python代码中获得相同的行为?

1 个答案:

答案 0 :(得分:1)

您可以使用eyeD3

import eyed3
e = eyed3.load(filename)
print e.info.sample_freq