我被要求(如果可能的话)在一台计算机上编写一个程序来监控至少 20 个麦克风的输入。
目前我正在使用 Alsa 的 Ubuntu 系统上使用 python (2.6) 进行原型设计。到目前为止,我的尝试已经产生了很多问题......
Ubuntu 是必需的,Alsa 不是,python 是理想的。
对于硬件,一个建议是多个声卡。另一个是一系列 USB 集线器和麦克风适配器(如这些)(在这种情况下,这些设备都是相同的并且在同一 USB 总线上)
问题:
如何从单个声卡同时录制多个麦克风?(例如,使用线路输入和麦克风,任何知道我可以使用多于两个输入的人的奖励!)
在 USB 设置中,如何识别声卡(USB 适配器)插入 USB 集线器(或 USB 集线器链)的位置。
如果解决方案是通过 USB 对麦克风进行原始访问,那么设备在 USB 总线上的位置是否仅取决于它们插入的 USB 集线器上的哪个端口,或者它是否可以在打开和关闭计算机电源之间改变?
最后,如果使用原始访问,我如何最好地获取数据(目前没有使用 pyUSB 的经验)以及从原始 -> 音频需要什么转换(如果有的话)?
编辑:
通过监视器,我被要求将输入记录到磁盘(理想情况下高于设定的阈值,speex 编解码器看起来非常适合),监视音量,提供图形反馈并设置至少一个循环通过所有活动麦克风的输出。
Python 不是长期要求,只是迄今为止我发现的从声卡获取 PCM 数据的最简单方法(不过只有麦克风)
我打算让声卡的轮询和数据处理在不同的线程中进行,这是我没有太多经验的领域。
我在哪里可以找到有关实现 USB 音频类驱动程序的更多信息?