我想在MATLAB中读取80 MB的wav文件。我尝试了wavread和audioread功能,但我无法阅读它。 当我通过wavread(文件,[startpos endpos])阅读时,我拆分了wav文件。 但在50次迭代中,程序已经破裂。我无法完全读取文件。它适用于wavread(文件,[1 500000]),但不起作用wavread(文件,[50000000 50500000]);
在导入菜单中,我可以直接导入30 MB的wav文件,但是当我尝试使用for循环逐步读取时,它已被破坏。
我将Java堆内存从首选项更改为560 MB。
我在等你的推荐。谢谢。
%% Mycodes
path = 'asdf\asdf';
ss = dir(path);
L = ss.bytes; % Data length
p = L/100; % I read %1 of data for each step
data = zeros(L,1);
for i = 1 : 100
startpos = (i-1)*p+1;
endpos = i*p;
data(startpos:endpos) = wavread(path, [startpos endpos]);
end
答案 0 :(得分:1)
您正在计算L
错误。这是字节数,但不是样本数。典型的音频文件具有超过8位/样本。除了文件大小包括标题信息。
使用audioinfo
获取L