Создание формы волны с pyaudio и matplotlib в режиме реального времени - PullRequest
0 голосов
/ 04 июля 2019

Я ищу график в реальном времени для аудиовхода (микрофона) и отображаю эти данные в графике формы сигнала с помощью matplotlib.Как я могу показать данные по осям Y и время (секунды) по осям X?

Я ничего не знаю для обработки аудио, поэтому я многому научился с помощью документов и примеров, но я все еще не знаюкак заставить график реагировать в реальном времени.

from scipy.io import wavfile
from matplotlib import pyplot as plt
import numpy as np

# Load the data and calculate the time of each sample
samplerate, data = wavfile.read('audio.wav')
print(samplerate, data)
times = np.arange(len(data))/float(samplerate)

# Make the plot
# You can tweak the figsize (width, height) in inches
plt.figure(figsize=(30, 4))
print(data[:,0])
plt.fill_between(times, data[:,0], data[:,1], color='k') 
plt.xlim(times[0], times[-1])
plt.xlabel('time (s)')
plt.ylabel('amplitude')
# You can set the format by changing the extension
# like .pdf, .svg, .eps
plt.savefig('plot.png', dpi=100)
plt.show()

Я ожидаю, что форма волны будет выглядеть так, но с использованием моего микрофона вместо wav-файла.Я проверил другие вещи, но это не было таким выводом ...

...