我正在尝试使用插入到我的raspi中的USB麦克风来获得实时音频的fft图。我希望能够在通过fft图检测到特定频率时激活LED。到目前为止,我试图只绘制一个实况声波,但我遇到了麻烦。我关注了这个视频:https://www.youtube.com/watch?v=AShHJdSIxkY&lc=z22efhti3uaff52pv04t1aokgg3rlotuia3kw5mpcsnubk0h00410.1510779722591217
我尝试将块大小更改为一个较大的值和一个较小的值,但由于某些原因没有success.For,我得到了-9981错误,但打印该错误需要很长时间。不显示任何打印。我甚至试着给我的覆盆子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()
发布于 2018-02-22 22:31:53
要显示添加:
plt.show(block=False)
之后
ax.set_xlim(0, CHUNK)
但使用rpi时,您必须将usb声卡配置为默认卡
https://stackoverflow.com/questions/47814829
复制相似问题