Pyaudio / Portaudio在同步读/写缓冲区时出现问题

时间:2017-01-15 10:05:52

标签: latency pyaudio portaudio

我的采样器(声音冲击波)是96000hz。 我需要将输出信号与输入信号同步,因此time_info对我们来说至关重要。我们需要知道输出缓冲区的第一个样本和输入缓冲区的第一个样本之间的确切时间差。

然而,问题是两个连续的写或读缓冲区(回调)之间的time_info间隙不同。例如: 我的缓冲区是19200用于读写,当我打印它时,我得到的每个回调:

Time gap between READ  buffers: 0.19993333332968177274 
Time gap between WRITE buffers: 0.20000299999810522422

Time gap between READ  buffers: 0.20001300000149058178 
Time gap between WRITE buffers: 0.20000299999810522422

Time gap between READ  buffers: 0.20000900000013643876 
Time gap between WRITE buffers: 0.20000099999742815271

Time gap between READ  buffers: 0.19996774999162880704 
Time gap between WRITE buffers: 0.19999800000368850306

19200/96000总是应该是0.2秒,但是我在time_info中获得了不同的时间,这消除了我将输出与输入同步的能力。 我正在使用40khz的声波,所以为了同步相位,我需要时间精确到1微秒。

这是PortAudio的问题吗?这是我声卡中的问题吗?这些time_info号码来自声卡(硬件)还是来自PortAudio?

我在Ubuntu中使用PyAudio(Python的PortAudio绑定)。

0 个答案:

没有答案