Scipy - 音频处理

信息处理 声音的 Python 信号检测
2021-12-22 02:33:20

我正在寻找音频信号处理的好工具。例如语音和音乐分析、自动语言识别等。

Scipy 库是否提供音频处理功能?它有一个很好的音频信号处理工具吗?

你能推荐一个工具吗?

4个回答

就我个人而言,我发现 Python 是最好的选择之一,并且我自己在音频识别领域做了一些工作。欢迎您查看我的软件,例如从嘈杂的录音中自动识别鸟类:Ornithokrites该程序由新西兰自然保护部使用,他们对此感到高兴。基于这个例子,我想指出使用 Python 的几个优点:

  1. 巨大的,快速发展的社区,提供大量的图书馆。SciPy 提供了大量的信号处理方法(当然,不像 Matlab 那么多且成熟)。请注意,尽管 SciPy 是最重要的工具之一,但它只是数百个可以帮助您努力的工具之一。我发现Aubio最适合音乐分析。对于语音和音乐识别,您肯定会喜欢Yaafe可以提取的大量音频特征。
  2. 免费!一旦走出学术界,你很快就会发现 Matlab 相当昂贵。即使您负担得起,您的透视用户也不会对这种依赖性感到满意。例如,提到的保护部不会接受专有软件。
  3. 识别通常需要机器学习,Python 有很好的工具包:sklearn。它是最先进的图书馆 - 并且易于使用。看看Kaggle 比赛 (机器学习),看看有多少顶级程序员在使用 Python 和 sklearn。
  4. 您可以管理“大数据”。如果你想对庞大的网络录音数据库进行分析,那么 Python 有一套完善的工具。我不认为 Matlab / Octave 与例如 Hadoop 的接口很容易,但如果我错了,请纠正我。R在这方面做得更好。
  5. 说到接口,您可以轻松地将程序与网站接口。这就是我管理 Ornithokrites(鸟类识别)的方式:程序运行在 Amazon Web Services 云计算服务上。如果您想将您的软件提供给不一定想要完成所有必需库的安装过程的其他人,那就太好了。

我的第二个选择是 R。虽然没有 Python 那样丰富的功能,但它有大量有用的库(例如,查看应用程序的seewave )。在 Windows 和 Linux 上安装它们是小菜一碟,如果您希望其他人使用您的程序,这一点很重要。但是,根据我的经验,R 中的高性能计算更加困难 - 如果您需要进行大量处理和识别,请注意这一点。

Python中的音乐分类示例:

Book Building Machine Learning Systems with Python有一章是关于音乐分类的

其他工具(列表并不完整):音乐中的 Python

似乎 Python 是一种流行的语言,它有一些很好的工具集,基于这样一个事实……我已经看到它在一些音乐技术研究生部门和公司中使用。

在学术界,在 Matlab 中完成此类工作非常常见,因为它在一个易于探测的 IDE 中汇集了许多强大的工具包(信号处理、并行计算、绘图、数据库实用程序、机器学习、人工智能)。然而,它要花钱并且有一些缺点(就应用程序设计和性能而言,它不是最好的编程语言,所以它主要是一个原型设计工具,但可以编译成 C 语言)。Octave 是免费的替代品,但我无法保证信号处理工具或软件本身的质量,因为我没有使用过它。

您还可以检查pyAudioAnalysis:它结合了用于模式识别的开放库和几个音频功能实现。在pyAudioAnalysis中实现的一些示例应用程序,您可能会觉得有趣:

  • 消除沉默
  • 说话者日记
  • 使用 SVM、kNN 等进行分段分类(和训练)
  • 联合分割分类(使用 HMM)
  • 音频缩略图
  • 音频内容可视化

您可以使用包含 python 绑定的Essentia音频分析 C++ 库。您将充分利用 python/scipy 环境以及 Essentia 附带的大量音频/音乐分析算法的所有优势。