gpt4 book ai didi

python - 音频领域特定语言与 Python

转载 作者:行者123 更新时间:2023-12-03 00:04:50 26 4
gpt4 key购买 nike

我想编写一些代码来进行声学分析,并且正在尝试确定适合该工作的工具。我通常会在 Python 中使用 numpy 和 scipy 以及可能的 Cython 来编写类似的东西作为分析部分。我发现 Python 音频库的世界有点困惑,有大量非常有限的包处于各种开发状态。

我还遇到了一堆音频/声学特定语言,如 SuperCollider、Faust 等,它们似乎使音频处理变得容易,但在 IO 和分析能力方面可能会受到限制。

我目前正在使用默认安装的 Alsa 和 PulseAudio 在 Linux 上工作。如果可能的话,我宁愿不涉及各种杂乱无章的其他音频包,比如 Jack,尽管这不是硬性要求。

我对这个问题的主要兴趣是确定是否有一种特定领域的语言可以提供更快的原型(prototype)设计和测试,或者像 Python 这样的通用语言是否更合适。谢谢。

最佳答案

我在 SuperCollider 和 Python(有和没有 Numpy)方面有很多经验。我做了很多音频分析,恐怕答案取决于你想做什么。

  • 如果你想创建实时输入或输出音频的系统,那么 Python 不是一个好的选择。音频 I/O 库(如您所说)有点粗略。还有一个基本问题是 Python 的垃圾收集器并不是真正为实时数据而设计的。 您应该使用从头开始设计的实时系统。 SuperCollider 非常适合这一点,正如 caseyanderson 所指出的,音频分析的一些标准构建 block 就在那里。还有其他环境。
  • 如果你想做一些核心工作,比如应用各种机器学习算法,不一定是实时的(即,如果你可以读/写 WAV 文件而不是实时音频),那么 您应该使用具有广泛支持的通用编程语言和良好库的生态系统你想要的额外的东西。将 Python 与诸如 numpy 和 scikits-learn 之类的库一起使用非常适合这一点。它有利于快速原型(prototype)制作,但它不仅缺乏可靠的实时音频,而且标准音频构建 block 也少得多。在制作音频管道原型(prototype)时,这两件重要的事情会阻碍你。

  • 所以,那么,你被夹在这两个选项之间。根据您的应用程序,您可以 将两者结合通过在实时环境中操作音频 I/O,并使用 OSC 消息 或 shell 脚本与外部 Python 进程通信。那里的限制是你不能真正在两者之间抛出大量数据(你不能明智地将所有音频传输到其他进程,这很愚蠢)。

    关于python - 音频领域特定语言与 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14469941/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com