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一些简单的上手

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还是少年呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值