dawn@0: function [ silentFrames ] = removeSilentData( silentSegments, noOfFrames ) dawn@0: dawn@0: %---------------- GET THE SILENT FRAME VALUES ------------------- dawn@0: % only wish to consider values from voiced frames. dawn@0: % silent frames will produce data values that dawn@0: % are random and therefore will bias our results dawn@0: % returns an array of values where '1' indicates a non-silent frame dawn@0: dawn@0: silentFrames = zeros(1,noOfFrames); dawn@0: [m n] = size(silentSegments); dawn@0: if( silentSegments(1,1) == 0 && silentSegments(1,2) == 0 ) dawn@0: % we have only one segment - the entire file dawn@0: silentSegments(1,1) = 1; dawn@0: silentSegments(1,2) = floor(length(x)/frameLength); dawn@0: [m n] = size(silentSegments); dawn@0: end dawn@0: dawn@0: % check for start at sample 0 dawn@0: if( silentSegments(1,1) == 0) dawn@0: silentSegments(1,1) = 1; dawn@0: end dawn@0: dawn@0: for i=1:m dawn@0: start = silentSegments(i,1); dawn@0: stop = silentSegments(i,2); dawn@0: if( stop > noOfFrames ) dawn@0: stop = noOfFrames; dawn@0: silentSegments(i,2) = noOfFrames; dawn@0: end dawn@0: dawn@0: if( start == 0 ) dawn@0: start = 1; dawn@0: end dawn@0: dawn@0: dawn@0: silentFrames( start : stop ) = 1; dawn@0: end dawn@0: dawn@0: end dawn@0: