有没有人知道python、c(++)或java的库,或者甚至是外部应用程序,我可以用它来检查mp3中的特定音频失真?我的问题是这样的:我有一个非常强大的Django应用程序,它可以自动为电台播客所有不同的节目,但大约每周一次,进行实际录制的计算机记录损坏的音频,这有一个特定的间隔模式,这是一种截断的声音,几乎就像直升机一样,音频每秒下降几次。我不希望修复这些音频文件(因为我已经尝试过用好的编辑软件手动修复,但这只是一个失败的原因),而是检测是否存在该类型的损坏,以便我可以自动切换到录音的备份版本。理想情况下,外部工具应该在linux上运行,但是windows是可以接受的,只要它是无头的(没有强制gui)。
谢谢。
发布于 2011-07-23 15:02:23
我认为你所需要做的就是在mp3上做一次快速傅立叶变换,你应该会看到一个非常低的频率尖峰,它对应于大的下降。我不是dsp专家,虽然我不确定这是否会起作用,但它很容易尝试。
为此,您可以使用python的numpy库。http://numpy.scipy.org/
只需将mp3文件读入数组,然后执行快速傅立叶变换,对于测试,我建议先绘制它(例如使用maptlotlib ),两个版本都是损坏的和良好的,看看您是否可以轻松检测损坏的版本。然后,希望你能写一个简单的算法,从这些fft中检测损坏的文件。
要将mp3读入数据缓冲区,可以使用PyMedia http://pymedia.org/
我没有使用过PyMedia,所以我不确定是否将mp3读入缓冲区(我想应该不会太复杂),但是之后绘制fft就像这样简单:
from numpy import *
from numpy.fft import *
import pylab
# place code to read the mp3 file into buf[] here.
buf_fft = fft(buf, 1024)
pylab.plot(fftfreq(1024, 0.1), abs(buf_fft))
pylab.show()发布于 2011-03-26 05:21:24
试试BASS库,看看它是否有你想要的东西。
https://stackoverflow.com/questions/5438188
复制相似问题