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一些簡單的上手

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