【问题标题】:Librosa Waveplot Displaying Wrong Time on X-AxisLibrosa 波形图在 X 轴上显示错误的时间
【发布时间】:2021-11-17 01:09:52
【问题描述】:

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

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

它提供了这个结果:

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

【问题讨论】:

    标签: python matplotlib librosa


    【解决方案1】:

    我认为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()
    

    您现在可以看到,所有显示都在自然坐标中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多