Librosa 获取音频基本参数

Librosa to get basic parameters of audio

获取音频文件的基本参数,Wave:

import wave

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

它returns:

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

这是为了:nchannels=1,sampwidth=2,framerate=16000,nframes=47104,comptype='NONE',compname='未压缩

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

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

谢谢。

Librosa Core has some of the functionality you're looking for. 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 page says librosa uses soundfile and audioread for audio I/O, and the load source code 表明它只是围绕着那些图书馆。

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