我知道你可以这样做:
[w,fs] = wavread('file.wav');
length = length(w)/fs;
但是我正在尝试减少文件开头和结尾的噪音,并通过遍历样本块中的波形矩阵然后将该块中的最大样本与阈值进行比较来获得大量记录的持续时间,如果它大于该阈值然后开始测量,当它小于阈值时停止测量。
这是我的尝试:
w = w(:,1);
thold = max(w) * .04;
nwindows = 1000;
counter = 0;
start = true;
for i = 1:nwindows:length(w)
if (max(w(i:min(i+49,length(w)))) > thold)
counter = counter + 1;
elseif (max(w(i:min(i+49,length(w)))) < thold && start == true)
break;
end
end
result = counter/fs;
现在只需要弄清楚如何从计数器中获得毫秒数。