在MATLAB中读取大型wav文件

时间:2015-07-29 09:15:42

标签: matlab file wav wave

我想在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

1 个答案:

答案 0 :(得分:1)

您正在计算L错误。这是字节数,但不是样本数。典型的音频文件具有超过8位/样本。除了文件大小包括标题信息。

使用audioinfo获取L