[英]Plotting audio from librosa in matplotlib
我正在尝试在 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)
音频文件只有 5 秒长。 因此,我不明白 x 轴在说什么; 好像涨到了90000?
谢谢
每次对音频文件进行采样时,波形都会有一个数据点,可以从 8000 Hz 到 48 kHz 采样。 90,000\/5 = 18000 赫兹。
查看您当前从 librosa.load 中忽略的变量,即采样率,它可以让您计算出时间尺度。
这就是您使用
matplotlib.pyplot<\/code>绘制向量的原因,该向量包含许多项,因为它(可能)每秒采样 22050 个数据点。
如果你得到一个 5 秒的音频文件,那么你会得到 5 * 22050 = 110250 个数据点,这些数据点将绘制在图中。
而不是使用
matplotlib.pyplot<\/code>您可以使用正确的方法来使用
librosa<\/code> :
import librosa
import librosa.display
y, sr = librosa.load(<path_audio_file>, sr=<sample_rate>)
fig, ax = librosa.display.waveplot(y, sr=sr)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.