首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Raspi上用python实现的实时频谱分析仪

在Raspi上用python实现的实时频谱分析仪
EN

Stack Overflow用户
提问于 2017-12-14 21:44:11
回答 1查看 3.7K关注 0票数 2

我正在尝试使用插入到我的raspi中的USB麦克风来获得实时音频的fft图。我希望能够在通过fft图检测到特定频率时激活LED。到目前为止,我试图只绘制一个实况声波,但我遇到了麻烦。我关注了这个视频:https://www.youtube.com/watch?v=AShHJdSIxkY&lc=z22efhti3uaff52pv04t1aokgg3rlotuia3kw5mpcsnubk0h00410.1510779722591217

我尝试将块大小更改为一个较大的值和一个较小的值,但由于某些原因没有success.For,我得到了-9981错误,但打印该错误需要很长时间。不显示任何打印。我甚至试着给我的覆盆子Pi超频,看看这是否会起作用,但仍然不起作用。

我想知道是否有人在他们的Pi上尝试过类似的东西,是否可能,或者我是否必须使用不同的包而不是pyaudio。

下面是我的python代码:

代码语言:javascript
代码运行次数:0
运行
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2018-02-23 06:31:53

要显示添加:

plt.show(block=False)

之后

ax.set_xlim(0, CHUNK)

但使用rpi时,您必须将usb声卡配置为默认卡

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47814829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档