试试这样写:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import pyaudio
CHUNK = 1024
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
)
fig, ax = plt.subplots()
x = np.arange(CHUNK)
line, = ax.plot(x, np.random.rand(CHUNK), lw=1, animated=True)
ax.set_ylim(0, 255)
ax.set_xlim(0, CHUNK)
def update_data(i):
data = stream.read(CHUNK)
data = np.frombuffer(data, dtype=np.int16)
plt.setp(line, 'ydata', data[:CHUNK])
return [line]
ani = FuncAnimation(fig, update_data, blit=True, interval=25, frames=1000)
plt.show()
