用python验证mp3文件的最佳方法

xtl*_*luo 5 python audio-processing

我必须检测文件是否是有效的 mp3 文件。到目前为止,我找到了两个解决方案,包括:

  1. 来自 Peter Carroll 的这个解决方案

  2. 使用try-catch表达式:

try:
    _ = librosa.get_duration(filename=mp3_file_path)
    return True
except:
    return False
Run Code Online (Sandbox Code Playgroud)

上述两种解决方案都有效,但可能有一些缺点,第一个解决方案似乎太复杂而第二个解决方案太慢(以秒为单位,取决于音频的长度)。所以我想知道是否有更好的方法用python验证mp3文件?

谢谢。

alt*_*urt 5

试试eyed3。

\n\n
In [8]: %timeit eyed3.load("some.mp3").info.time_secs                                                    \n1.94 ms \xc2\xb1 43.8 \xc2\xb5s per loop (mean \xc2\xb1 std. dev. of 7 runs, 1000 loops each)\n\nIn [10]: %timeit eyed3.load("120mb_video.mp4")                                                        \n4.43 ms \xc2\xb1 26.6 \xc2\xb5s per loop (mean \xc2\xb1 std. dev. of 7 runs, 100 loops each)\n\n
Run Code Online (Sandbox Code Playgroud)\n\n

基本上,如果 eyesed3.load 返回 None,则该文件不是有效的 mp3 文件。即使是 120mb 的文件,它的平均运行时间也为 4.5 毫秒。

\n