我需要尽快画出一张谱图。用librosa计算频谱图,然后用matplotlib绘制。现在大约需要50ms,有没有可能更快?
我对matplotlib和librosa非常陌生。
这是我的代码:
mel_spec = lb.melspectrogram(y=samples, sr=44100, fmax=8000, n_mels=256)
plt.figure()
plt.subplots(figsize=(0.5, 5))
librosa.display.specshow(librosa.power_to_db(mel_spec, ref=np.max), fmax=8000)
plt.axis('off')
plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
plt.margins(0, 0)
predict_img = io.BytesIO()
plt.savefig(predict_img, format="jpeg")
predict_img.seek(0)更新:
有关用例的更多详细信息。
此图像是用100ms音频片段创建的,并以base64编码字符串的形式返回,此字符串被转发到ML模型进行预测。我需要以尽可能低的延迟进行此设置。我对预测的延迟很满意,但是图像创建的延迟有点慢。
发布于 2019-08-14 16:24:49
您不需要也不应该使用matplotlib来创建语谱图的图像表示。在不绘制的情况下,将光谱图阵列转换为图像的速度会快得多。请参阅https://stackoverflow.com/a/57204349中的代码
https://stackoverflow.com/questions/57347505
复制相似问题