Librosa 获取音频的基本参数

Mar*_*k K 3 python audio librosa

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

import wave

data = wave.open('c:\\sample.wav', mode = 'rb')
params = data.getparams()
print params
Run Code Online (Sandbox Code Playgroud)

它返回:

(1, 2, 4000, 160000, 'NONE', 'not compressed')
Run Code Online (Sandbox Code Playgroud)

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

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

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

谢谢你。

Jul*_*une 6

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
Run Code Online (Sandbox Code Playgroud)

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

就像@hendrick 在他的评论中提到的那样,Librosa高级 I/O 页面librosa用途soundfileaudioread用于音频 I/O,以及load 源代码显示它只是围绕这些库。

但是,只要您遵循librosa API ,wave用于加载音频文件和librosa分析就不会有任何问题。你有什么特别的问题,或者你需要实现的目标吗?