在获取音频文件的基本参数时,通过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是否有产生相似结果的命令?
谢谢。
答案 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 page说librosa
使用soundfile
和audioread
进行音频I / O,而load
{ {3}}表示它只是包裹这些库。
但是,只要遵循source code,使用wave
加载音频文件和使用librosa
进行分析应该不会有任何问题。您是否有特定问题或需要实现的目标?