在PyAudio中读取数据

时间:2015-10-19 13:25:44

标签: python python-2.7 pyaudio

我查看了所有示例代码,但似乎无法使用PyAudio从我的RME卡读取音频。 这是我使用的代码:

import wave
import scipy.io.wavfile as waveIO
from __future__ import division
import pyaudio
import time

p=pyaudio.PyAudio()

def record_audio(RECORD_SECONDS,MIC_channel):

   CHUNK = 1024
   FORMAT = pyaudio.paInt16
   CHANNELS = 1
   RATE = 44100

   stream_in = p.open(rate=RATE,
                channels=CHANNELS,
                format=FORMAT,
                input=True,
                input_device_index=MIC_channel,
                frames_per_buffer=CHUNK)

   frames = ""

   t=time.time()
   for i in range(0, int((RATE / CHUNK) * RECORD_SECONDS)):
       data = stream_in.read(CHUNK)
       frames=frames+data

   elapsed=time.time() - t

   print('I read the data in %f seconds' %elapsed)


   stream_in.stop_stream()
   stream_in.close()


   return frames

record_audio(5,40)

我希望这段代码可以读取5秒的音频。但是,我得到的音频只是噪音所以我添加了计时器线来检查。我得到的答案是'我在0.001秒内读取数据'。

帧字符串的长度是正确的(sample_rate * 2(每个样本的字节数)* 5秒)。 帧数也是正确的。因此,看起来data=stream_in.read(CHUNK)行几乎没有时间占用,而我预计它会占用CHUNK / RATE。

0 个答案:

没有答案