pyAudioAnalysis库错误:无法将4400大小的数组重塑为形状(220,10)

时间:2017-06-19 03:49:46

标签: python numpy audio

我试图提取wav文件的某些功能,我有这个:

https://s3-us-west-2.amazonaws.com/music-emotions/ambient/13+Clock+in+the+Morning+-+Waiters+the++Free+Music+Archive+(No+Copyright+Music).wav

我正在使用pyAudioAnalysis库的特征提取工具:

https://github.com/tyiannak/pyAudioAnalysis/wiki/3.-Feature-Extraction

问题是我收到了numpy reshape()函数的错误。我遵循如下使用功能提取器的指导原则,如下所示:

[Fs, x] = audioBasicIO.readAudioFile('13 Clock in the Morning - Waiters the  Free Music Archive (No Copyright Music).wav')
F = audioFeatureExtraction.stFeatureExtraction(x, Fs, 0.050 * Fs, 0.025 * Fs)

这是我得到的错误:

      1 [Fs, x] = audioBasicIO.readAudioFile("song-wavs/"+song.name)
----> 2 F = audioFeatureExtraction.stFeatureExtraction(x, Fs, 0.050 * Fs, 0.025 * Fs)

pyAudioAnalysis/audioFeatureExtraction.pyc in stFeatureExtraction(signal, Fs, Win, Step)
    575         curFV[0] = stZCR(x)                              # zero crossing rate
    576         curFV[1] = stEnergy(x)                           # short-term energy
--> 577         curFV[2] = stEnergyEntropy(x)                    # short-term entropy of energy
    578         [curFV[3], curFV[4]] = stSpectralCentroidAndSpread(X, Fs)    # spectral centroid and spread
    579         curFV[5] = stSpectralEntropy(X)                  # spectral entropy

pyAudioAnalysis/audioFeatureExtraction.pyc in stEnergyEntropy(frame, numOfShortBlocks)
     49             frame = frame[0:subWinLength * numOfShortBlocks]
     50     # subWindows is of size [numOfShortBlocks x L]
---> 51     subWindows = frame.reshape(subWinLength, numOfShortBlocks, order='F').copy()
     52 
     53     # Compute normalized sub-frame energies:

ValueError: cannot reshape array of size 4400 into shape (220,10)

有谁能告诉我如何解决重塑的问题以及我做错了什么?

1 个答案:

答案 0 :(得分:1)

我有同样的错误,但根据https://github.com/tyiannak/pyAudioAnalysis/issues/72,我将立体声音乐转换为单声道,它解决了我的问题。