嗨,我有阅读大波浪文件的问题。 好的代码但范围会导致stackoverflow。
handle = wave.open('data_sylaby\s1.wav', 'r')
framerate = handle.getframerate();
nframes = handle.getnframes()
for i in range(handle.getnframes()):
frame = handle.readframes(1)
data = struct.unpack("<h", frame)
新代码,但它会抛出错误
unpack需要长度为2的字符串参数
。 第二个和第三个版本抛出此错误但它应该像带范围的版本一样工作。 我需要删除范围,因为它会占用我10Gb的内存。
错误代码:
handle = wave.open('data_sylaby\s1.wav', 'r')
framerate = handle.getframerate();
nframes = handle.getnframes()
i = 0
while i < nframes:
frame = handle.readframes(1)
data = struct.unpack("<h", frame)
i = i + 1
第三版也错误:
for j in range(nframes/framerate + 1):
for i in range(j *framerate, (j+1)*framerate):
if i >= nframes:
break