我正在尝试使用插入我的raspi的USB麦克风获取实时音频的fft图。我希望能够在通过fft图检测到特定频率时激活LED。到目前为止,我试图获得一个现场声波,但我遇到了麻烦。我已关注此视频:https://www.youtube.com/watch?v=AShHJdSIxkY&lc=z22efhti3uaff52pv04t1aokgg3rlotuia3kw5mpcsnubk0h00410.1510779722591217
我已经尝试将块大小更改为更大的值和更低的值但是没有成功。由于某种原因,我得到-9981错误但是打印错误需要很长时间。没有显示情节。我甚至尝试超频我的Raspberry Pi,看看它是否有效,但它仍然不起作用。
我想知道是否有其他人在他们的Pi上尝试了类似的东西,如果有可能,或者我不得不使用除pyaudio之外的其他软件包。
这是我的python代码:
import pyaudio
import struct
import numpy as np
import matplotlib.pyplot as plt
CHUNK = 100000
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
p = pyaudio.PyAudio()
stream = p.open(
format = FORMAT,
channels = CHANNELS,
rate = RATE,
input = True,
output = True,
frames_per_buffer = CHUNK,
start = True
)
fig, ax = plt.subplots()
x = np.arange(0, 2 * CHUNK, 2)
line, = ax.plot(x, np.random.rand(CHUNK))
ax.set_ylim(0, 255)
ax.set_xlim(0, CHUNK)
while True:
data = stream.read(CHUNK)
data_int = np.array(struct.unpack(str(CHUNK*2) + 'B', data), dtype='b')[::2] + 127
line.set_ydata(data_int)
fig.canvas.draw()
fig.canvas.flush_events()
答案 0 :(得分:0)
显示添加:
plt.show(block=False)
后
ax.set_xlim(0, CHUNK)
但是使用rpi,你必须将usb声卡配置为默认卡