从 Python 中捕获音频

Posted

技术标签:

【中文标题】从 Python 中捕获音频【英文标题】:Capture audio out Python 【发布时间】:2012-06-04 20:41:27 【问题描述】:

我想使用 Python 从音频中捕获原始数据。在 Python 文档中,似乎使用 ossaudiodev 可以达到此目的。但是,我使用的是 Ubuntu 11.10,它没有 /dev/dsp:

>>> import ossaudiodev
>>> ossaudiodev.open('r');
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 2] No such file or directory: '/dev/dsp'

有人知道如何使用 Python 捕捉我的声卡输出的声音吗?

【问题讨论】:

看到这个link 【参考方案1】:

OSS 是用于 Linux 的较旧且已弃用的音频系统。当前的标准是使用 ALSA,并使用 JACK 或 PulseAudio 在 ALSA 之上分层。 Ubuntu 使用 PulseAudio。

您能做的最好的事情就是找到好的 Python 绑定来连接到 PulseAudio。我刚刚在 Google 上进行了快速搜索,没有找到任何适合您的信息,我现在没有时间跟进。

编辑:我只记得 ALSA 确实有 OSS 兼容模式。您也许可以安装 OSS 兼容性的东西,然后只需使用您已有的 Python 代码。

https://help.ubuntu.com/community/alsa-oss

http://www.alsa-project.org/main/index.php/Main_Page

【讨论】:

【参考方案2】:

我有一些程序需要 /dev/dsp 才能运行

aoss <PROGRAM NAME AND ARGUMENTS HERE>

如果你在 Ubuntu 的命令行上输入 aoss,它会告诉你要安装的包,然后安装所需的依赖项。如果它不能立即工作,您可以尝试加载内核模块,例如sudo modprobe snd_mixer_oss

【讨论】:

以上是关于从 Python 中捕获音频的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 3 捕获 192 kHz 音频

在 Python 中捕获输出音频频谱

如何在 C++ 中从音频输出中捕获声音

从音频输入中捕获原始音频以在 Mac 上进行实时处理的最简单方法

如何使用 QAudioInput 从两个通道捕获音频信号

从 WasapiLoopbackCapture 捕获音频,并转换为 muLaw