2

我在使用 numpy 时遇到问题。出于测试目的,我正在尝试训练两个 wav 文件的 MFCC。两个数组大小相同。

当我试图将数据放入分类器时

ValueError: Found array with dim 3. Estimator expected <= 2.

让我更准确地说,因为我长期以来一直在努力解决这个 numpy 形状问题并且找不到解决方案。

>mfccsorry = sf.getFeatures(dir+"sorry.mp3.wav")
>mfccsorry.shape
(622, 13)
>mfccsorry = sf.getFeatures(dir+"sorry.mp3.wav")
(622, 13)
>mfcctestwav = sf.getFeatures(dir+"test.mp3.wav")
(622, 13)
>arr = [mfccsorry,mfccsad]
>targ = ["sad","hope"]

此时,我正在尝试将特征向量第一个标记为“悲伤”,第二个标记为“希望”,并希望预测 mfcctestwav 的标签。

clf.fit(arr, targ)

返回错误。

我试图解开这些数组,结果得到了 0.5,0.5 的预测率,这并不奇怪,因为我已经将所有特征向量合并为一个。我相信我对 Numpy 或一般而言的 SVM 矩阵形成有疑问。

我检查了来自 http://python-speech-features.readthedocs.io/en/latest/ https://docs.scipy.org/doc/numpy-dev/user/quickstart.html的文档

但是自己还是找不到问题。感谢各种建议和解释。

编辑:我知道这条线

>arr = [mfccsorry,mfccsad]

创建一个形状为 (2, 622, 13) 的 3D 数组,最终导致错误。我是否应该将它重塑为二维数组,如果是这样,正确的形式应该是什么,它背后的逻辑可能是什么。

4

0 回答 0