我查看了所有示例代码,但似乎无法使用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。