在matplotlib中绘制librosa的音频

在matplotlib中绘制librosa的音频

问题描述:

我想绘制一个音频文件在Python中的波形。在matplotlib中绘制librosa的音频

这是我的代码(我用的是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赫兹采样为48kHz。 90,000/5 = 18000Hz。

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

+0

谢谢!为了确保我得到了它,我的采样率大约是。 22000.这是否意味着,因为我的音频文件是5秒钟,x轴代表22000 * 5 = 110000个采样,而不是时间? – pk1914

+0

@ pk1914“大约22000”对于“正常”声音文件的采样率来说是一件很奇怪的事情。这是否恰好是22050? – Matthias

+0

你是对的!我猜这是一个特殊的数字?为什么这样?谢谢! – pk1914