Python pyAudioAnalysis,元组索引超出范围

Python pyAudioAnalysis,元组索引超出范围,python,audio,tuples,indexoutofrangeexception,pyaudioanalysis,Python,Audio,Tuples,Indexoutofrangeexception,Pyaudioanalysis,因此,我正试图使用,制作一个基本的情绪分类器,我收集了一个小的数据样本来测试它是否有效。我的代码如下: from pyAudioAnalysis import audioAnalysis as aA aA.trainClassifierWrapper('svm', False, ["C:\Users\gover_000\Desktop\Angry", "C:\Users\gover_000\Deskt

因此,我正试图使用,制作一个基本的情绪分类器,我收集了一个小的数据样本来测试它是否有效。我的代码如下:

from pyAudioAnalysis import audioAnalysis as aA   

aA.trainClassifierWrapper('svm', False,
                      ["C:\Users\gover_000\Desktop\Angry",
                      "C:\Users\gover_000\Desktop\Happy",
                      "C:\Users\gover_000\Desktop\Sad",
                      "C:\Users\gover_000\Desktop\Scared",
                      "C:\Users\gover_000\Desktop\Neutral"],
                      "testSVM")
如果执行此操作,则会出现以下错误:

Traceback (most recent call last) <ipython-input-7-2e5393432e89> in <module>()
  5                       "C:\Users\gover_000\Desktop\Scared",
  6                       "C:\Users\gover_000\Desktop\Neutral"],
----> 7                       "testSVM")

C:\Users\gover_000\Documents\GitHub\Emotion-Recognition-Prototype\pyAudioAnalysis\audioAnalysis.pyc in trainClassifierWrapper(method, beatFeatures, directories, modelName)
     88         raise Exception("At least 2 directories are needed")
     89     aT.featureAndTrain(directories, 1, 1, aT.shortTermWindow, aT.shortTermStep,
---> 90                        method.lower(), modelName, computeBEAT=beatFeatures)
     91 
     92 

C:\Users\gover_000\Documents\GitHub\Emotion-Recognition-Prototype\pyAudioAnalysis\audioTrainTest.pyc in featureAndTrain(listOfDirs, mtWin, mtStep, stWin, stStep, classifierType, modelName, computeBEAT, perTrain)
    275     featureNames = ["features" + str(d + 1) for d in range(numOfFeatures)]
    276 
--> 277     writeTrainDataToARFF(modelName, features, classNames, featureNames)
    278 
    279     for i, f in enumerate(features):

C:\Users\gover_000\Documents\GitHub\Emotion-Recognition-Prototype\pyAudioAnalysis\audioTrainTest.pyc in writeTrainDataToARFF(modelName, features, classNames, featureNames)
   1097     for c, fe in enumerate(features):
   1098         for i in range(fe.shape[0]):
-> 1099             for j in range(fe.shape[1]):
   1100                 f.write("{0:f},".format(fe[i, j]))
   1101             f.write(classNames[c]+"\n")

IndexError: tuple index out of range
() 5“C:\Users\gover\u 000\Desktop\dake”, 6“C:\Users\gover\u 000\Desktop\Neutral”], ---->7“测试支持向量机”) TrainClassifierRapper中的C:\Users\gover\u 000\Documents\GitHub\Emotion Recognition Prototype\pyAudioAnalysis\audioAnalysis.pyc(方法、功能、目录、模型名) 88引发异常(“至少需要2个目录”) 89 aT.功能和列车(目录,1,1,aT.ShortTerm窗口,aT.ShortTerm步骤, --->90 method.lower(),modelName,computeBEAT=beatFeatures) 91 92 C:\Users\gover\u 000\Documents\GitHub\Emotion Recognition Prototype\pyAudioAnalysis\audioTrainTest.pyc在feature和train中(列出dirs、mtWin、mtStep、stWin、stStep、分类器类型、modelName、computeBEAT、perTrain) 275 featureNames=[“features”+str(d+1)表示范围内的d(numOfFeatures)] 276 -->277 writeTrainDataToARFF(模型名、特征、类名、特征名) 278 279表示枚举中的i,f(特征): C:\Users\gover\u 000\Documents\GitHub\Emotion Recognition Prototype\pyAudioAnalysis\audioTrainTest.pyc in writeTrainDataToARFF(modelName、features、classNames、featureNames) 1097用于枚举中的c、fe(特征): 1098对于范围内的i(有限元形状[0]): ->1099适用于范围内的j(有限元形状[1]): 1100 f.write(“{0:f},”.format(fe[i,j])) 1101 f.write(类名[c]+“\n”) 索引器错误:元组索引超出范围 我知道
shape[1]
应该返回数组维度的列。
但是为什么它会在这里返回一个错误

好的,所以我发现了问题


问题是我的一个分类器没有足够的文件,它至少需要2个。因此,在添加更多之后,它又起作用了

好吧,我找到了问题所在


问题是我的一个分类器没有足够的文件,它至少需要2个。因此,在添加更多之后,它又起作用了

相同的问题可能是由于培训文件夹中的文件数量不同造成的 例如:

然后它也会生成相同的错误,因为它无法生成所需的数组矩阵(使用
dirsWavFeatureExtraction
函数内部
audioFeatureExtraction.py

我找到的解决方案是,在培训文件夹中应该有相同数量的文件

已解决的示例:

+Training
  +Bubble - 6 files
  +glass - 6 files
  +bounce - 6 files

相同的问题可能是由于培训文件夹中的文件数量不同 例如:

然后它也会生成相同的错误,因为它无法生成所需的数组矩阵(使用
dirsWavFeatureExtraction
函数内部
audioFeatureExtraction.py

我找到的解决方案是,在培训文件夹中应该有相同数量的文件

已解决的示例:

+Training
  +Bubble - 6 files
  +glass - 6 files
  +bounce - 6 files

可能是因为
fe
是一个向量,而不是一个矩阵。所以要研究的问题是为什么你的特征是一维的——请考虑用库名标注问题,而不是<代码>元组< /代码>或<代码>索引错误> /代码>。好的。我不能用库名来标记它,因为它可能不存在,因为
fe
是一个向量,而不是一个矩阵。所以要研究的问题是为什么你的特征是一维的——请考虑用库名标注问题,而不是<代码>元组< /代码>或<代码>索引错误> /代码>。好的。我不能用库名标记它,因为它还不存在