【问题标题】:Librosa to get basic parameters of audioLibrosa 获取音频的基本参数
【发布时间】:2019-07-19 10:29:26
【问题描述】:

在获取音频文件的基本参数时,通过 Wave:

import wave

data = wave.open('c:\\sample.wav', mode = 'rb')
params = data.getparams()
print params

返回:

(1, 2, 4000, 160000, 'NONE', 'not compressed')

适用于:nchannels=1、sampwidth=2、framerate=16000、nframes=47104、comptype='NONE'、compname='未压缩

我假设 Librosa 有类似的功能,但搜索后没有发现。

Librosa 是否有产生类似结果的命令?

谢谢。

【问题讨论】:

  • AFAIK,librosa 本身只包装其他库,如 audioread 来解码音频。 librosa 的重点绝对不是提供此类信息。

标签: python audio librosa


【解决方案1】:

Librosa Core 具有您正在寻找的一些功能。 librosa.core.load 将加载类似wave 的文件,但不会提供详细信息。

import librosa

# Load an example file in .ogg format
fileName = librosa.util.example_audio_file()
audioData, sampleRate = librosa.load(fileName)

print(audioData)
>>> [ -4.756e-06,  -6.020e-06, ...,  -1.040e-06,   0.000e+00]

print(audioData.shape)
>>> (1355168,)

print(sampleRate)
>>> 22050

audioData 的形状会告诉你频道的数量。像(n,) 这样的形状是单声道,(2, n) 是立体声。形状中的n 是样本中音频的长度。如果您想要以秒为单位的长度,请查看librosa.core.get_duration

就像@hendrick 在他的评论中提到的那样,Librosa advanced I/O pagelibrosa 使用 soundfileaudioread 用于音频 I/O,而 load source code 表明它只是围绕这些库。

但是,只要您遵循librosa API,使用wave 加载音频文件和librosa 进行分析应该没有任何问题。您是否遇到了特定问题或需要实现的目标?

【讨论】:

  • 感谢您的知识分享。只是一个兴趣问题,到目前为止没有具体问题。 :)
  • 仅供参考:在 v0.7 中,您应该使用 mono=False 参数
猜你喜欢
  • 1970-01-01
  • 2020-10-21
  • 2020-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-10
  • 1970-01-01
  • 2020-01-17
相关资源
最近更新 更多