python提取音乐midi文件,python 提取音频
你是不是一直想知道一些音乐软件的频谱特效是怎么做出来的,为什么这么好看?要不要尝试自己提取音乐频谱,直观展示?本文将教你如何使用Python提取音乐频谱。快来学吧。
00-1010前言1。准备2。光谱显示
目录
你是不是一直想知道一些音乐软件的频谱特效是怎么做出来的,为什么这么好看?要不要尝试自己提取音乐频谱,直观展示?今天我就结合上一次的音乐编辑操作:
3行Python代码实现剪辑音乐
要简单粗暴的把下面这首歌的频谱形象化!
前言
在开始之前,您应该确保Python和pip已经成功安装在您的计算机上。如果没有,可以访问这篇文章:超详细的Python安装指南进行安装。
在Windows环境下打开Cmd(开始-运行-cmd),在Apple系统环境下打开Terminal(命令空间输入终端),准备开始输入命令安装依赖项。
当然,我推荐你使用VSCode编辑器,复制本文的代码,在编辑器下面的终端中安装依赖模块。多舒服的事啊!
在终端输入以下命令,安装所需的依赖模块:
pip安装pydub
pip安装librosa
看到成功安装xxx说明安装成功。
1.准备
使用librosa和matplot,我们可以用10行代码完整地显示整个频谱:
importmatplotlib.pyplotasplt
importlibrosa.display
#音乐文件加载
audio_path=Fenn.mp3
music,sr=librosa.load(audio_path)
#长宽比为1433605的图
plt.figure(figsize=(14,5))
librosa.display.waveplot(音乐,sr=sr)
#显示图表
plt.show()
但是,这个谱是一整段音乐,看起来很丑。接下来,我们使用pydub对频谱进行切割,以获得更好的结果。让我们将其细分为0到1秒的时间段来查看频谱:
importmatplotlib.pyplotasplt
importlibrosa.display
importnumpyasnp
frompydubimportAudioSegment
# 1秒=1000毫秒
秒=1000
#音乐文件
AUDIO_PATH=Fenn.mp3
defsplit_music(begin,end,filepath):
#音乐指南
song=AudioSegment.from_mp3(文件路径)
#从开始秒到结束秒
宋=宋[begin*SECOND: end*SECOND]
#存储为临时文件的备份
temp_path=backup/ filepath
song.export(临时路径)
返回临时路径
music,sr=librosa.load(split_music(0,1,AUDIO_PATH))
#长宽比为1433605的图
plt.figure(figsize=(14,5))
librosa.display.waveplot(音乐,sr=sr)
plt.show()
这个在底层还好,但是还是太复杂了。事实上,当我们展示光谱时,也许我们只需要一个正值:
然后我们可以进一步放大,比如说,0.9秒到1秒之间的光谱:
#微信官方账号:Python实用合集
n0=9000
n1=10000
music=NP . array([micformicinmicifmic 0])
plt.figure(figsize=(14,5))
pit.plot(音乐[n0:n1])
plt.grid()
#显示图表
plt.show()
这样看起来好多了,但是如果要达到QQ音乐的效果,还是需要很多改造的。
比如如何用精致的图像元素填充代入,然后如何处理零值?如何让频谱更稳定?另外我们是静态图像,需要根据事件动态延续乐队。
制作用的代码肯定比我们简单的代码复杂,去掉负值,画图应该不会很暴力。这些感兴趣的读者可以自己做研究。
以上是Python提取音乐谱方法的详细内容。更多关于Python提取音乐频谱的信息,请关注盛行IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。