import pyaudio
import numpy as np
from matplotlib import pyplot as plt
CHUNKSIZE = 1024 # fixed chunk size
# initialize portaudio
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16, channels=1, rate=44100, input=True, frames_per_buffer=CHUNKSIZE)
# do this as long as you want fresh samples
data = stream.read(CHUNKSIZE)
numpydata = np.frombuffer(data, dtype=np.int16)
# plot data
plt.plot(numpydata)
plt.show()
# close stream
stream.stop_stream()
stream.close()
p.terminate()
有一个名为
PyAudio
的库。你可以用它来实时记录。另外,在numpy.fromstring()
和numpy.hstack()
的帮助下,您可以获得所需的输出。请注意,下面的代码片段用于MONO-CHANNEL
。这是一个经过测试的代码。它应该有魅力。为了检查记录的数据是否在
numpydata
中正确可用,可以在前面的代码之后添加以下代码片段。这些行将把您的
numpydata
写入“out.wav”。播放文件以检查数据。这是我在StackOverflow中的第一个响应。希望有帮助。
您可以使用^{} 录制音频,并使用^{} 将其转换为numpy数组。
如果要录制立体声而不是单声道,则必须将
channels
设置为2
。然后你得到一个有交错通道的阵列。你可以这样重塑它:相关问题 更多 >
编程相关推荐