ParameterError:数据必须是numpy.ndarray类型(使用Librosa时)

时间:2017-12-07 05:01:39

标签: python numpy audio deep-learning librosa

我第一次尝试使用Librosa库(Python 3.x)从wav格式的多个音频文件中提取功能。我面临一个问题,它说数据应该是numpy.ndarray类型,即使它属于那种类型。这是我的代码:

mylist 是我目录中所有wav音频文件的列表。

import os
import librosa
mylist= os.listdir('RawData/')

for y in mylist:
   X, sample_rate = librosa.load('RawData/'+y, res_type='kaiser_fast')
   print(type(sample_rate))
   sample_rate = np.array(sample_rate)
   print(type(X))
   print(type(sample_rate))
   mfccs = np.mean(librosa.feature.mfcc(x=X, sr=sample_rate, n_mfcc=40),axis=0)

这是弹出的输出和错误:

class 'int'

class 'numpy.ndarray'

class 'numpy.ndarray'

ParameterError                            Traceback (most recent call last)
ipython-input-23-817ec793d6c4 in module()
  7     mfccs = np.mean(librosa.feature.mfcc(x=X, 
  8                                          sr=sample_rate,
----> 9                                          n_mfcc=40),
 10                     axis=0)
 .
 .
 .
 ParameterError: data must be of type numpy.ndarray

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

你可能想说     librosa.feature.mfcc(y = X,

https://librosa.github.io/librosa/generated/librosa.feature.mfcc.html