如何将Librosa频谱图保存为特定大小的图像

如何将Librosa频谱图保存为特定大小的图像?

Librosa是一个Python包,可帮助分析音频和音乐文件。该软件包还帮助创建音乐检索信息系统。本文将介绍如何将Librosa频谱图保存为特定大小的图像。

阅读更多:Python 教程

步骤

  • 设置图形大小并调整子图之间和周围的填充。

  • 创建图形和子图集。

  • 初始化三个不同的变量, hlhiwi ,用于存储频谱图中每个时间的样本、图像的高度和宽度。

  • 加载演示音轨。

  • 创建一个 窗口 ,即音频时间序列的列表。

  • 使用 melspectrogram() 和步骤3的数据计算一个Mel-scaled频谱图。

  • 使用 power_to_db() 方法将功率谱图(振幅的平方)转换为分贝(dB)单位。

  • 显示频谱图作为 img (我们可以在此处保存它)。

  • 使用 savefig() 保存img。

  • 使用 plt.show() 方法显示图像。

范例

import numpy as np
import matplotlib.pyplot as plt
import librosa.display

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

fig, ax = plt.subplots()

hl = 512 # 频谱图中每个时间步骤的采样数
hi = 128 # 图像高度
wi = 384 # 图像宽度

# 加载演示音轨
y, sr = librosa.load(librosa.ex('trumpet'))
window = y[0:wi*hl]

S = librosa.feature.melspectrogram(y=window, sr=sr, n_mels=hi, fmax=8000,
hop_length=hl)
S_dB = librosa.power_to_db(S, ref=np.max)
img = librosa.display.specshow(S_dB, x_axis='time', y_axis='mel', sr=sr, fmax=8000, ax=ax)

plt.savefig("out.png")
plt.show()
Python

输出

如何将Librosa频谱图保存为特定大小的图像?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册