【问题标题】:Reading soundcard output with python用python读取声卡输出
【发布时间】:2015-04-05 12:32:34
【问题描述】:

我已成功使用 pyaudio 读取和记录麦克风数据。我想对声卡输出做同样的事情。 (即播放 wavfile 并使用 pyaudio 打开流并逐帧读取声卡输出)。

为了阅读麦克风,我打开了一个 pyaudio 流,如下所示

stream = pyaud.open(
    format = pyaudio.paInt16,
    channels = 1,
    rate = 22050,
    input_device_index = 0,
    input = True)

当我将 input_device_index 更改为 1 时,出现以下错误

IOError: [Errno Invalid number of channels] -9998

下面是macbook声卡的system_info

Default Devices:
================
Default Input Device : 0
    defaultSampleRate: 44100.0
    defaultLowOutputLatency: 0.01
    defaultLowInputLatency: 0.00199546485261
    maxInputChannels: 2
    structVersion: 2
    hostApi: 0 (Core Audio)
    index: 0
    defaultHighOutputLatency: 0.1
    maxOutputChannels: 0
    name: Built-in Microph
    defaultHighInputLatency: 0.0121541950113
    --------------------------------
Default Output Device: 1
    defaultSampleRate: 44100.0
    defaultLowOutputLatency: 0.00655328798186
    defaultLowInputLatency: 0.01
    maxInputChannels: 0
    structVersion: 2
    hostApi: 0 (Core Audio)
    index: 1
    defaultHighOutputLatency: 0.0167120181406
    maxOutputChannels: 2
    name: Built-in Output
    defaultHighInputLatency: 0.1
    --------------------------------

【问题讨论】:

  • 我想知道...你有一个 wav 文件。为什么要先通过声卡?直接使用“wave”python 模块阅读!您可以直接访问帧和所有波形参数。容易得多(至少在我看来)!
  • 在我的场景中没有可用的 wavfile。假设我想处理音频流(即 voip 通话或 youtube 视频的音频)并实时进行一些信号处理(即计算响度并进行一些注释)。
  • 我已将信息添加为回复。
  • 感谢 cmets。

标签: python audio stream pyaudio soundcard


【解决方案1】:

某些声卡具有“捕获”通道,这是声卡的输出。它们可能正常工作,也可能不能正常工作(音乐行业似乎一直在施加压力,要求取消这些端口)。

以下内容适用于 Linux... 例如。在我的系统上,我只有一个标准的板载 ALC887 音频端口。在 /proc/asound/card0 中,我找到了一个端口 pcm2c,其中包含以下信息:

card: 0
device: 2
subdevice: 0
stream: CAPTURE
id: ALC887-VD Alt Analog
name: ALC887-VD Alt Analog
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 1

这些捕捉设备应该会出现在您的混音器中。

【讨论】:

    猜你喜欢
    • 2018-02-04
    • 1970-01-01
    • 2014-01-27
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多