Python怎么提取音乐频谱?Python如何绘制可视化音乐频谱图

一段音乐在播放时会有不同的声音高低以及音调变化 , 而这些都是能够表现的音乐频谱图上的 , 在python之中可以获取音乐频谱 , 然后通过模块方法来将其绘制出来 。那么下文所要来介绍的内容就是python提取音乐文件频谱信息 , 并将其绘制成可视化音乐频谱图的详细教程 。

Python怎么提取音乐频谱?Python如何绘制可视化音乐频谱图

文章插图
1.因为提取音乐频谱需要使用到两个第三方库 , 所以需要先点击左下角的开始菜单 , 然后输入cmd回车就会把命令行窗口打开 , 然后分别执行下面两个pip命令 , 示例如下所示:
pip install pydubpip install librosa2.安装完成之后导入matplotlib、pydub以及librosa这三个库 , 然后先调用from方法将音乐文件给读取到python程序中并生成对象 , 然后再使用切片方式取其中的一个片段 , 示例如下:
import matplotlib.pyplot as pltimport librosa.displayfrom pydub import AudioSegmentsong = AudioSegment.from_mp3('Fenn.mp3')song = song[1*1000: 90*1000]    # 1秒到90秒music, sr = librosa.load(song)因为这样取出来的音频频谱看起来就不会显得过于集中 , 如果是要查看整个音乐频谱图的话 , 那么就不需要将pydub这个库和模块导入了 。只需要调用librosa之中的load()方法即可将音乐读取进来 , 代码如下:
music, sr = librosa.load('Fenn.mp3')3.那么无论是以上哪种方式读取进来的音乐文件对象 , 都是需要先用figure()方法创建出来一个指定尺寸比例的画布 , 也就是运行之后显示音乐频谱图的窗口 。再调用waveplot()方法将音乐文件对象作为参数传递进去即可生成可视化频谱图 , 代码示例如下所示:
plt.figure(figsize=(14, 5))librosa.display.waveplot(music, sr=sr)plt.show()【Python怎么提取音乐频谱?Python如何绘制可视化音乐频谱图】以上就是关于“Python怎么提取音乐频谱?Python如何绘制可视化音乐频谱图”的全部内容了 , 希望对你有所帮助 。

    推荐阅读