python - 在不同平台上掀起浪潮

标签 python windows linux language-agnostic audio

我要提前为自己的含糊致歉,但我在这方面的知识有些有限,所以我不知道必要的“关键字”来阐明我的观点/问题。 抱歉

我想要做的是找到一种方法来访问正在输出的原始音频数据,例如,当某些外部应用程序正在播放音乐时,当数据从麦克风传递到输出设备时等等在。我想实时访问这些数据(嗯,几乎是实时的,无论如何),以便我可以分析/可视化它,等等。

我知道,这当然是可能的,因为我很久以前就在 Java 中做到了这一点(我想我正在使用Processing和Minim库)。这是在 Windows 中通过在声卡上启用某种“环回”输入设备来完成的(我认为我的供应商将其称为“Wave Out Mix”或其他名称)。在基于 Linux 的操作系统下如何解决同样的问题?

我打算使用 python 进行分析/可视化部分,但是如果需要获取原始数据,我可以使用 C 语言。

预先感谢您提供任何信息。

最佳答案

是否可以访问“wave out”或“loopback”取决于您的声卡和驱动程序。

Linux 上的 native 声音 API 称为 ALSA。搜索 ALSA 文档和示例代码,您应该能够获得一些从声卡录制的代码,然后希望设置您的混音器,以便您从“波形输出”而不是从麦克风录制。

较旧的 Linux 声音 API (/dev/dsp) 称为 OSS。它稍微简单一些,ALSA 模拟了该 API 的大部分内容 - 但如果您想要完全访问声卡,ALSA 是首选解决方案。

您可能想查看Jack - 它是一个系统,用于将音频输出从一个应用程序路由到另一个应用程序的输入,以大链或各种其他配置的形式。有很多很多兼容程序,如果您需要的一切都已经支持 Jack,那么您会发现它是迄今为止针对此类事物的最简单的 API。

最后,这可能听起来很愚蠢,但您可以使用模拟环回电缆 - 公对公立体声迷你插孔 - 并将其从耳机插孔环接到线路输入插孔,并以这种方式录制“波形输出” ,无论您有什么声卡。这是一个带有模拟孔的愚蠢黑客,但它确实有效,并且根据您想要记录的内容,它可能已经足够好了。

关于python - 在不同平台上掀起浪潮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1978990/

相关文章:

css - 是否有 CSS 方法/hack 来指定基于平台的背景颜色(即 mac vs pc)

python - pipenv 安装错误 ImportError : cannot import name 'ensure_file_on_disk'

linux - 当进程运行在 X 服务器上时会发生什么变化

linux - 为 ping ssh 端口添加超时?

Python Match Case (Switch) 性能

python - 在存在 Python 2.7 的情况下使用 miniconda 安装 OpenCV

python - 如果我在 python 中使用多处理但我的函数不返回任何内容,我是否需要调用 get()?

c++ - Python中低级标准输入的重复重定向

c++ - 关于 Windows 和 posix 中的 1 个刻度

c++ - 构建自定义编译库的更好方法