首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python,C/++,java...有没有比较音频信号的api?

Python,C/++,java...有没有比较音频信号的api?
EN

Stack Overflow用户
提问于 2011-03-26 05:12:13
回答 2查看 1K关注 0票数 2

有没有人知道python、c(++)或java的库,或者甚至是外部应用程序,我可以用它来检查mp3中的特定音频失真?我的问题是这样的:我有一个非常强大的Django应用程序,它可以自动为电台播客所有不同的节目,但大约每周一次,进行实际录制的计算机记录损坏的音频,这有一个特定的间隔模式,这是一种截断的声音,几乎就像直升机一样,音频每秒下降几次。我不希望修复这些音频文件(因为我已经尝试过用好的编辑软件手动修复,但这只是一个失败的原因),而是检测是否存在该类型的损坏,以便我可以自动切换到录音的备份版本。理想情况下,外部工具应该在linux上运行,但是windows是可以接受的,只要它是无头的(没有强制gui)。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 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就像这样简单:

代码语言:javascript
复制
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()
票数 4
EN

Stack Overflow用户

发布于 2011-03-26 05:21:24

试试BASS库,看看它是否有你想要的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5438188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档