使用Python读取文件夹中的wav文件

时间:2017-02-28 15:36:52

标签: python numpy audio scipy scikit-learn

这是我的代码:

for filename in glob.glob('*.wav') : 
    for i in range(10) : 
        sr[i],x[i]=scipy.io.wavfile.read(filename)

我想读取文件夹中的.wav文件并将其值保存在x上,并将其采样率保存在sr上。但是我的代码给出了错误:“列表分配索引超出范围”。我该如何解决?我在ubuntu上使用python2.7。

1 个答案:

答案 0 :(得分:2)

我可能错了,但我猜测它会成为这条线:

sr[i],x[i] = scipy.io.wavfile.read(filename)

我不认为您能够将结果编入索引,因为我不认为他们会列出这些结果。

试试这个:

sr, x = scipy.io.wavfile.read(filename)

如果您需要srx值的列表,请在阅读文件之前尝试定义列表。将结果单独附加到每个列表中。可能有一种聪明的方式来写这个,但为了清楚起见,我会这样做:

sr = []
x = []

for filename in glob.glob('*.wav'):
    for i in range(10):
        sr_value, x_value = scipy.io.wavfile.read(filename)
        sr.append(sr_value)
        x.append(x_value)

我也建议您将srx(特别是x)变量重命名为更有意义的变量。它可能会使您的代码更容易阅读,并且可以在以后节省一些命名冲突。