gpt4 book ai didi

python - 声音设备上的多个输入

转载 作者:太空宇宙 更新时间:2023-11-03 14:11:20 25 4
gpt4 key购买 nike

我有 2 个声卡,我必须从中获取输入、处理它并馈送到第三张卡的输出。我认为 sounddevice lib 是实现此目的的最佳选择,因为它直接与使用起来非常舒适的 numpy 数组一起使用。但目前我遇到了两个问题:
1.我不明白如何连接到一个流中不同卡的 2 个(或更多)输入(或者可能可以打开多个流)
2. 当尝试使用预定义设备启动输出流时,出现错误:

def callback(indata, outdata, frames, time, status):
outdata[:, 1] = data
with sd.Stream(device = 1, channels=2, callback=callback):
print(' ')

sounddevice.PortAudioError: Error opening Stream: Invalid number of channels [PaErrorCode -9998]

我想这是因为我的 MacBook 上有 Core Audio channel 映射,它具有以下音频配置:

0 内置输入,核心音频(2 输入,0 输出)
1 个内置输出,核心音频(0 输入,2 输出)

但我自己无法解决这个问题。

提前致谢

最佳答案

单个流不可能具有多个输入或多个输出设备,另请参阅 https://stackoverflow.com/a/39919494/ .

但是,您也许可以在 macOS 音频设置中组合两个设备(查找“聚合设备”)。

您显示的错误发生是因为您使用的是具有输入和输出的sd.Stream。指定 channels=2 意味着输入输出 channel 的数量都是 2。但是您只是为单个设备提供 device=1,它没有任何输入 channel ,从而导致给定的错误消息。

使用 CoreAudio,您通常可以使用默认设备,但如果您想明确指定设备编号,则必须指定正确的输入和输出设备,如下所示:

device=[0, 1]

关于python - 声音设备上的多个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48473146/

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