在音频文件上调用librosa.feature.mfcc()会像这样吐出一个2D数组:
array([[ -5.229e+02, -4.944e+02, ..., -5.229e+02, -5.229e+02],
[ 7.105e-15, 3.787e+01, ..., -7.105e-15, -7.105e-15],
...,
[ 1.066e-14, -7.500e+00, ..., 1.421e-14, 1.421e-14],
[ 3.109e-14, -5.058e+00, ..., 2.931e-14, 2.931e-14]])
我的问题是这些是什么?因为我期待一维系数的数组,为什么它是2D?什么尺寸?也许这是我对我应该回来的误解,但是任何解释都会受到赞赏。我尝试在网上看,但似乎每个人都知道它是什么。
答案 0 :(得分:3)
我也绊倒了这个。
专门查看https://librosa.github.io/librosa/glossary.html“框架”的措辞。
你通常会想象一系列样本在x轴上从左到右 - 但请注意它在librosa中被称为'y'。
假设我的样本是2,窗口大小为1:
[1,2,3,4,5]
当我期待以下内容时:
array([[1, 2],
[2, 3],
[3, 4],
[4, 5]])
librosa实际上给了我的是:
array([[1, 2, 3, 4],
[2, 3, 4, 5]])
这似乎是由于方便了librosa喜欢显示/抛出数据的方式。
使用你脑子里常用的简单方法是转换 np.array
mfccs = librosa.feature.mfcc(np.array([1,2,3,4,5]))
# The mfccs exists down the columns, not across each row!
array([[-353.18529412],
[ -9.92147635],
[ 1.39044844],
[ 19.76460942],
[ 25.52789074],
[ -18.65229483],
[ 17.41164986],
[ 32.40858638],
[ -13.52776281],
[ 8.38747316],
[ 23.82210792],
[ 16.50381765],
[ -23.39931177],
[ 40.04480991],
[ 7.76233177],
[ -2.54971281],
[ 4.81715362],
[ 36.80008536],
[ -9.8943455 ],
[ -0.57583487]])
mfccs.T
# Now mffcs[0] (the first row) refers to the first mfcc!
array([[-353.18529412, -9.92147635, 1.39044844, 19.76460942,
25.52789074, -18.65229483, 17.41164986, 32.40858638,
-13.52776281, 8.38747316, 23.82210792, 16.50381765,
-23.39931177, 40.04480991, 7.76233177, -2.54971281,
4.81715362, 36.80008536, -9.8943455 , -0.57583487]])
初学者 :这是做什么用的?想象一下矩阵(阵列)印在一块透明塑料上,然后抓住左下角翻转页面,将左下角移动到右上角。
答案 1 :(得分:1)
一个维度是时间,另一个维度是不同的频率。此链接显示了绘制它的外观: