librosa.load return 是什么意思?

What does librosa.load return?

我正在使用 librosa 库,并且 我想知道当我读取音频 (.wav) 文件时 librosa.load 函数返回什么信息。 是以pa为单位的瞬时声压,还是没有单位的声音信号的瞬时振幅?

据我所知,振幅是记录时大气压力变化的量度。根据 librosa.load 文档 here,此方法 returns 两件事:

  • 采样率sr:表示每秒记录多少个样本。

  • 一个二维数组:

    • 第一轴:表示音频中幅度(气压变化)的记录样本。
    • 第二轴:表示音频中的声道数

这里是官方文档中的例子:

>>> import librosa

>>> filename = librosa.util.example_audio_file()
>>> y, sr = librosa.load(filename)
>>> sr  #sample rate
22050
>>> y.shape   #mono (1 channel)
(1355168,)
>> y.shape[0] / sr  #duration of audio file in seconds
61.45886621315193

如我们所见:

  • 采样率为 22050,这意味着录音机每秒录制 22050 次。
  • y.shape = (1355168,) 这意味着在整个音频中只有一个通道(单声道)记录了 1355168 个样本。
  • 使用简单的数学运算,您可以通过将 total_number_of_samples 除以 sample_rate
  • 来计算此音频文件的持续时间

要添加到上述答案中,您还可以使用 librosa 函数 librosa.get_duration(y,sr) 以秒为单位获取音频文件的持续时间。 或者您可以使用 len(y)/sr 以秒为单位获取音频文件持续时间

为了确认之前的答案,librosa.load returns 时间序列在 librosa glossary 中定义为:

时间序列: 通常是音频信号,由 y 表示,并表示为 one-dimensional numpy.ndarray 的 floating-point 值。 y[t] 对应样本 t.

处的波形幅度

振幅通常根据最初拾取音频的麦克风或接收器设备周围的压力变化来测量。 (查看更多here)。