Librosa 波形图在 X 轴上显示错误的时间

Librosa Waveplot Displaying Wrong Time on X-Axis

我正在尝试将波图可视化如下:

sig, rate = librosa.load(test_audio, sr=32000, offset=None)
plt.figure(figsize=(15, 5))
librosa.display.waveplot(sig, sr=3200)

它提供了这个结果:

如果您查看此 x 轴,它会显示为 8 分钟的音频文件,但实际上只有 47 秒长。我在这里错过了什么?

我认为 x-axissamples 中。默认情况下,该方法对信号进行下采样,这意味着要对齐另一个时间序列赞助人需要计算其在 samples 中的 x 位置,然后通过 downsampling factor 调整这些位置(默认情况下 1000 / sr).

我给你举个例子,或许能解开你的疑惑。

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

y, sr = librosa.load(librosa.util.example_audio_file())

tempo, beats = librosa.beat.beat_track(y=y, sr=sr, units='time', trim=False)

fig = plt.figure(figsize=(15, 8))
librosa.display.waveplot(y=y, sr=sr)
plt.vlines(beats, -1, 1, color='r',linestyles="dashed")
plt.grid()

你可以看到,现在所有的显示都是自然坐标。