python - 在 matplotlib 中绘制来自 librosa 的音频

标签 python audio matplotlib plot librosa

我正在尝试用 Python 绘制音频文件的波形。

这是我的代码(我使用的是 Librosa 库):

import plot as plt

def save_plot(filename):
    y, sr = librosa.load(filename)        
    plt.plot(y, 'audio', 'time', 'amplitude')

plot.py 文件所在位置:

import matplotlib.pylab as plt

def plot(vector, name, xlabel=None, ylabel=None):
    plt.figure()
    plt.plot(vector)
    plt.xlabel(xlabel)
    plt.ylabel(ylabel)
    plt.plot()
    plt.savefig('static/plots/' + name)

奇怪的是,即使我得到的图看起来像一个有效的波形: waveform

音频文件只有 5 秒长。因此,我不明白 x 轴在说什么;好像涨到90000了?

谢谢

最佳答案

每次对音频文件进行采样时,波形都会有一个数据点,可以从 8000 Hz 到 48 kHz 进行采样。 90,000/5 = 18000 赫兹。

查看您当前从 librosa.load 中忽略的变量,即采样率,它可以让您计算出时间尺度。

关于python - 在 matplotlib 中绘制来自 librosa 的音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43835055/

相关文章:

python - Django 点击劫持保护 resp.get ('X-Frame-Options' ) NoneType

audio - 整数FM解调

python - 在 python basemap 中填充国家

python - 如何使用 matplotlib 从数据框中加载条形图数据

python - 创建一个函数来循环现有数据框并将值添加到新列

python - 从网页链接直接加载图像到 NumPy 数组 (Python)

python - 如何从 postgres/mysql 游标对象获取数据库名称

unity3d - 哪种音乐/声音格式适合Unity3D游戏?

c++ - 如何在简单的录音机程序中使用audioDeviceIOCallback,audioDeviceAboutToStart和audioDeviceStopped

python - 在绘图上绘制括号