在 MATLAB 中读取大尺寸 wav 文件

Reading large size wav files in MATLAB

我想在 MATLAB 中读取 80 MB 的 wav 文件。我尝试了 wavread 和 audioread 功能,但我无法阅读。 当我通过 wavread(file, [startpos endpos]) 阅读时,我拆分了 wav 文件。 但在第 50 次迭代中,程序已经崩溃。我无法完全读取文件。它适用于 wavread(file, [1 500000]),但不适用于 wavread(file, [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

您计算 L 错误。那是字节数,而不是样本数。一个典型的音频文件有 8 个以上 bits/sample。除了文件大小还包括 header 信息。

使用audioinfo得到L