我正在使用Focusrite Scarlett 18i20音频接口,在这里我需要至少使用其4个输入来记录脉冲响应。我在Windows 10 PC上运行,使用python(anaconda)和sounddevice。
当我使用sounddevice.query_devices()时,它将设备列为 “ 1个Focusrite USB(Focusrite USB Au,MME(2输入,0输出)”。
我的问题是该设备实际上有8个模拟输入通道,而我至少需要4个。输出也是如此,它看到2,但应该是8。如何使声音设备识别它们?这是驱动程序问题吗?
答案 0 :(得分:0)
由于Windows 10上有大量可以在Scarlett和Python之间运行的音频驱动程序,因此您必须选择更合适的驱动程序(ASIO在Windows上运行良好,可以下载here)。
下载并安装后,sounddevice.query_devices()
应该返回几个包含Scarlett的字符串,每个字符串具有不同的驱动程序。
然后,您只需要启动流并选择所有频道(我的频道是6i6,所以只有6个频道):
def run(self):
try:
with sd.Stream(callback=self.read_stream, {'device': "Focusrite USB ASIO", 'channels': 6}, samplerate=44100):
sd.sleep(2147483647)
except ValueError:
print("Focusrite disconnected")