midi格式的音频数据显示为图片形式

背景

一般来说,音频数据的保存格式有wav,mp3,midi等。当需要对音频数据进行比对时,显示为图片是一种比较直观的表示方式,可以将wav显示成波形,频谱,彩虹谱;也可以将midi文件转换为piano_roll,再以图片的形式显示。本文主要针对midi文件的显示。

实现方法

利用python模块pretty_midi读入midi文件内容,将将矩阵转换成piano-roll,使用以下方法,再显示成图片即可。


midi_data = pretty_midi.PrettyMIDI('test.mid')
print(midi_data.instruments)
a = midi_data.instruments[0].get_piano_roll()
# reshape 图片为3维,并将通道级联成3,即rgb
m = np.reshape(a,(a.shape[0],a.shape[1],1))
img = np.concatenate((m,m,m),axis=2)


# 图像显示与保存
plt.figure("Image",figsize=(12,8)) 

plt.imshow(img)
plt.axis('on') # 关掉座标轴为 off
plt.title('image') # 图像题目
plt.savefig('show.png')# 图像保存
plt.show()

显示结果:

在这里插入图片描述

Reference

如何看懂一份MIDI文件
pretty-midi一些简单的上手

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章