2017-12-14 33 views
1

私は自分のraspiに接続されたUSBマイクロフォンを使用してリアルタイムオーディオでfftプロットを取得しようとしています。 fftプロットで特定の周波数が検出されたときにLEDを有効にしたい。私は今までにライブサウンドウェーブをプ​​ロットしようとしましたが、私は問題を抱えています。私はこのビデオに従っています:https://www.youtube.com/watch?v=AShHJdSIxkY&lc=z22efhti3uaff52pv04t1aokgg3rlotuia3kw5mpcsnubk0h00410.1510779722591217PythonでpythonでリアルタイムのスペクトラムアナライザRaspiに

チャンクサイズをより大きな値と低い値に変更しようとしましたが、成功しませんでした。何らかの理由で私は-9981エラーが発生しますが、エラー。プロットは表示されません。私はラズベリーパイをオーバークロックしてもうまくいくかどうか試してみましたが、それでも動作しません。

他の誰かがPiのようなものを試していたのか、それが可能だったのか、それともpyaudio以外の別のパッケージを使ってやらなければならないのだろうと思っていました。表示するには

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() 
+1

私はpython 2.7.11でMacでこれを実行するのと同じエラーが発生します。 (1) 'CHUNK = 1024'を設定し、(2)' p.open() 'の呼び出しで' output = False'を使用し、(3)すべてのmatplotlibを削除しますコードでは、プログラムはエラーなしで実行されます。 –

+0

どうすれば表示できますか? – mbh16

+0

また、エラーはまだ出てくる – mbh16

答えて

0

追加:ここで

は私のPythonコードである
plt.show(block=False)

ax.set_xlim(0, CHUNK)

後しかし、あなたはデフォルトのカードとしてあなたのUSBサウンドカードを設定する必要がRPIと

関連する問題