首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyAudioAnalysis,元组指数超出范围

pyAudioAnalysis,元组指数超出范围
EN

Stack Overflow用户
提问于 2016-10-19 09:31:40
回答 2查看 1K关注 0票数 0

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

代码语言:javascript
复制
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")

如果我执行此操作,则会出现以下错误:

代码语言:javascript
复制
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

我知道shape[1]应该返回数组维度的列。但是它为什么在这里返回一个错误?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-25 08:00:55

好吧,所以我发现了问题。

问题是,我的一个分类器没有足够的文件,它至少需要2。所以在添加了更多之后,它再次工作了!

票数 2
EN

Stack Overflow用户

发布于 2018-02-12 17:04:35

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

代码语言:javascript
复制
+Training
  +Bubble - 6 files
  +glass - 6 files
  +bounce - 8 files

然后,它还会生成相同的错误,因为它无法生成所需的数组矩阵(使用dirsWavFeatureExtraction函数在audioFeatureExtraction.py中)。

我发现的解决方案是,培训文件夹中应该有相同数量的文件。

已解决的例子:

代码语言:javascript
复制
+Training
  +Bubble - 6 files
  +glass - 6 files
  +bounce - 6 files
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40127473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档