Librosa获取音频的基本参数

时间:2019-07-17 09:19:23

标签: python audio librosa

在获取音频文件的基本参数时,通过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是否有产生相似结果的命令?

谢谢。

1 个答案:

答案 0 :(得分: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 { {3}}表示它只是包裹这些库。

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