Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyAudio输入输出“;电线;分道扬镳_Python_Callback_Pyaudio - Fatal编程技术网

Python PyAudio输入输出“;电线;分道扬镳

Python PyAudio输入输出“;电线;分道扬镳,python,callback,pyaudio,Python,Callback,Pyaudio,我正在尝试使用python和pyaudio进行一些实时音频处理。问题是我无法使输入流正常工作(回调版本)。其想法是: 使用audio_in()记录131072个样本(48kHz时应为2.73s),然后将缓冲区推送到ain_队列。如果输入为2声道(立体声),则将其相加为单声道 在主线程中执行self.ain_queue.get(),然后处理数据 将输出数据推送到aout_队列 在音频输出中,从aout队列获取数据,并将其播放给扬声器。如果输出为立体声,则两个扬声器将播放相同的数据 虽然输出流工作正

我正在尝试使用python和pyaudio进行一些实时音频处理。问题是我无法使输入流正常工作(回调版本)。其想法是:

  • 使用audio_in()记录131072个样本(48kHz时应为2.73s),然后将缓冲区推送到ain_队列。如果输入为2声道(立体声),则将其相加为单声道
  • 在主线程中执行self.ain_queue.get(),然后处理数据
  • 将输出数据推送到aout_队列
  • 在音频输出中,从aout队列获取数据,并将其播放给扬声器。如果输出为立体声,则两个扬声器将播放相同的数据
  • 虽然输出流工作正常,但输入流似乎与数据完全不同步。在一个声卡(USB)上,缓冲区的录制时间从3.6秒到5.8秒,PCI声卡的录制时间甚至约为13秒。更令人困惑的是,本例中简单的输入->输出接线工作正常。报告的cpu负载对于两个流都非常小~0.002

    以下是代码(已删除):

    通过以下方式测试代码:

     import chrono.py
     tst = chrono.chrono()
     tst.go(10)
    
    我正在开发GentooLinux、python 2.7和pyaudio 2.9。 我错过了什么? 提前谢谢你,迈克尔·维德洛克

     import chrono.py
     tst = chrono.chrono()
     tst.go(10)