我在文件夹中有50个.wav文件,我需要遍历数据集并加载所有50个文件。对于每个音频文件,我只需将音频数据(不是sample_rate,只是数据)附加到名为'零'的Python列表中。
你可以帮帮我吗? 谢谢。答案 0 :(得分:1)
如果你真的只想要音频数据。
import wave, os, glob
zero = []
path = '/path/to/directory'
for filename in glob.glob(os.path.join(path, '*.wav')):
w = wave.open(filename, 'r')
d = w.readframes(w.getnframes())
zero.append(d)
w.close()
答案 1 :(得分:0)
我意识到这是微软数据科学专业计划的课程作业,还没有找到任何好的答案。所以这就是你给我们的场景:
data
sample_rate
而不追加scipy.io.wavfile
您已经有一个名为zero
的空列表我假设:
zero = []
这是解决方案(更改path
以匹配您的目录):
import os
import glob
path = "Datasets/recordings/"
files = os.listdir(path)
for filename in glob.glob(os.path.join(path, '*.wav')):
samplerate, data = wavfile.read(filename)
zero.append(data)
您不希望做的是简单地遍历该目录中的所有文件。大多数操作系统创建文件(git是一个例子,Mac OS上的.DS_Store是另一个例子),所以你只想读取只有*.wav
扩展名的文件。
然后使用简单的.append()
附加它们。
len(zero)
应返回50,因为您在该指定目录中有50个.wav
个文件。