【问题标题】:What information does librosa.load return?librosa.load 返回什么信息?
【发布时间】:2020-09-11 03:38:27
【问题描述】:

我是信号处理的新手,我正在使用 librosa 库。 我想知道当我使用它读取音频(.wav)文件时 librosa.load 函数返回的信息是什么。 是Pa的瞬时声压吗?或者只是没有单位的声音信号的瞬时幅度?

【问题讨论】:

  • 返回浮点型音频时间序列。你的主要问题是什么?
  • "我想知道当我使用它读取音频(.wav)文件时,librosa.load函数返回的信息是什么。是pa的瞬时声压?还是只是声音信号的瞬时幅度,没有单位?”

标签: python audio signals signal-processing librosa


【解决方案1】:

据我所知,幅度是记录时大气压变化的量度。根据librosa.load文档here,这个方法返回两个东西:

  • 采样率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 来计算此音频文件的持续时间

【讨论】:

    【解决方案2】:

    为了确认前面的答案,librosa.load 返回一个时间序列,在librosa glossary 中定义为:

    "时间序列: 通常是音频信号,用 y 表示,表示为浮点值的一维 numpy.ndarrayy[t]对应样本t处的波形幅度。"

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

    【讨论】:

    • 太棒了!这是我一直在寻找的说明。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2014-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-11
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多