Scipy库是否提供音频处理功能?它对音频信号处理有很好的工具吗?
您可以为此建议一个工具吗?
#1 楼
我个人认为Python是最好的选择之一,并在音频识别领域做了一些工作。欢迎您检查我的软件,以便从嘈杂的音频记录中自动识别鸟类:鸟嘴兽。该程序由新西兰环境保护部使用,他们对此感到高兴。基于此示例,我想指出使用Python的一些优点:庞大,快速发展的社区提供了大量的库。 SciPy提供了多种信号处理方法(授权的方法,不如Matlab的那么成熟。)尽管请记住,尽管SciPy是最重要的功能之一,但它只是可以帮助您完成工作的数百个功能之一。我发现Aubio最适合音乐分析。 Yaafe可以提取语音功能,确保语音和音乐识别。
它是免费的!一旦离开学术界,您很快就会发现Matlab相当昂贵。即使您负担得起,您的透视图用户也不会对此依赖感到满意。例如,提到的环境保护部将不接受专有软件。
识别通常需要机器学习,而Python拥有出色的工具包:sklearn。它是最先进的图书馆-易于使用。看一下Kaggle竞赛(机器学习),检查有多少顶级程序员在使用Python和sklearn。
您可以管理“大数据”。如果您想对庞大的网络记录数据库进行分析,那么Python有一套完善的工具。我不认为Matlab / Octave界面容易与例如Hadoop,但是如果我做错了,请纠正我。 R在这方面做得更好。
说到接口,您可以轻松地将程序与网站接口。这是我管理鸟嘴兽(鸟识别)的方式:该程序在Amazon Web Services云计算服务上运行。如果您想将软件提供给不一定要完成所有必需库的安装过程的其他人,那就太好了。
我的第二个选择是R。尽管不像Python那样功能丰富,它具有大量有用的库(请检查例如seewave的应用程序)。在Windows和Linux上都安装它们很容易,如果您希望其他人使用您的程序,则这很重要。但是,以我的经验,R中的高性能计算更加困难-如果需要进行大量处理和识别,需要注意的重要事项。
Python中音乐分类的示例:
讲座
音频指纹识别
Jack Minardi博客
使用Python的图书构建机器学习系统有一章关于音乐分类
其他工具(列表绝不完整):音乐中的Python
#2 楼
似乎Python在这方面是一种流行的语言,它基于以下事实而提供了一些好的工具集:我已经在某些音乐技术专业的部门和公司中看到了它。在学术界,在Matlab中看到这种类型的工作非常普遍,因为它在易于探测的IDE中汇集了许多强大的工具包(信号处理,并行计算,图形,数据库实用程序,机器学习,AI)。但是,它要花钱并且有一些缺点(就应用程序设计和性能而言,不是最佳的编程语言,因此它主要是一种原型设计工具,但可以编译为C语言)。 Octave是免费的替代产品,但由于我没有使用过它,因此我无法保证信号处理工具或软件本身的质量。
评论
$ \ begingroup $
很棒的库是github.com/worldveil/dejavu。 Python,开放源代码,麻省理工学院许可,并进行音频识别和指纹识别。
$ \ endgroup $
–落地过山车
15年5月4日在16:03
$ \ begingroup $
scipy生态系统具有很多MATLAB功能。
$ \ endgroup $
– Darleison Rodrigues
16年6月12日,0:28
#3 楼
您还可以检查pyAudioAnalysis:它结合了用于模式识别的开放库和几种音频功能实现。在pyAudioAnalysis中实现的一些示例应用程序,您可能会发现有趣的事情:静音消除
扬声器扩音
使用SVM,kNN等的细分分类(和训练)
联合分段分类(使用HMM)
音频缩略图
音频内容可视化
评论
是的,scipy确实提供了执行此类操作的基础结构,但是您需要对所要获得的内容进行更具体的说明,以获得更有用的答案(尤其是要回答是否有“比[scipy]更好的工具”) )。实时还是离线?
离线。我正在寻找语音/音乐分类。
Scipy和Numpy一起提供了用于实时和脱机处理数据的出色工具。与Cython或Ctypes结合使用(我倾向于使用Cython方法),如果无法说服其他库适合使用numpy数组进行C语言编写的低级快速操作,则很容易进行操作。
MATLAB缺少的一件事是无法将数组的原点定义为非1的值。因此,就像FFT输出中的DC值位于bin#1中,而不是应在bin#0中一样。关于MATLAB(或Octave)还有其他一些愚蠢的事情。