我特别遇到numpy问题。 出于测试目的,我试图训练MFCC的两个wav文件。两个数组大小都相同。
当我试图将数据纳入分类器时,我有
ValueError: Found array with dim 3. Estimator expected <= 2.
让我更加精确,因为我长时间与自己一起努力解决这个笨拙的形状问题,并且无法找到解决方案。
>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"]
此时,我试图用#34; sad&#34;标记特征向量。和#34;希望&#34;并希望预测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数组,最终导致错误。我是否应该将其重塑为2D数组,如果是这样,那么正确的形式应该是什么以及背后的逻辑可能是什么。