0

我正在尝试从单个声卡的多个接口捕获声音。我可以得到不相对于彼此移动的数组吗?我想使用 4 个麦克风(每个通道的一个接口中有 2 个麦克风)来检测声音发射器的位置。我使用 Windows,所以我无法创建聚合设备。我还录制了来自不同线程的声音,但数组之间的延迟非常随机。这是主要问题,因为我想对数组应用互相关函数以获得给出最大值的延迟(移位),这种移位定义了声源的角度,所以我可以使用任何与 ASIO 不同的东西,但它必须对所有人都稳定记录间隔。如果没有 c# 的解决方案,我知道 c++。请告诉我如何解决我的问题。

4

1 回答 1

0

如果所有麦克风都连接到同一个硬件设备,您可以使用 ASIO,假设该设备实际上有 ASIO 驱动程序。如果没有,您可以尝试 ASIO4All(但我不知道它是否会同步独立设备)或使用 WASAPI 并手动执行同步。WASAPI 的 IAudioCaptureClient::GetBuffer 方法将为您提供流位置和记录位置的流时间,从那里您应该能够计算出 4 个麦克风之间的时间偏移,然后自己执行“取消偏移”。

于 2016-05-25T22:00:44.120 回答