我正试图从单个声卡的几个接口捕获声音。我可以获得相互之间没有相互转移的数组吗?我想使用4个麦克风(每个通道在一个接口中有2个麦克风)来检测声音发射器位置。我使用窗口,所以我无法创建聚合设备。我还记录了来自不同线程的声音,但阵列之间的延迟非常随机。这是主要的问题,因为我想为数组应用互相关函数来获得给出最大值的延迟(移位),这个移位定义了声源的角度,所以我可以使用与ASIO不同的任何东西,但它必须对所有人都是稳定的录音间隔。如果没有c#的解决方案,我就知道c ++。请告诉我如何解决我的问题。
答案 0 :(得分:0)
如果所有话筒都连接到同一个硬件设备,则可以使用ASIO,假设设备实际上有ASIO驱动程序。如果没有,您可以尝试ASIO4All(但我不知道它是否将同步独立设备)或使用WASAPI并手动执行同步。 WASAPI的IAudioCaptureClient :: GetBuffer方法将为您提供记录位置的流位置和流时间,从那里您应该能够计算出每个麦克风之间的时间偏移,然后自己执行“取消连接”。 / p>