Mercurial > hg > emotion-detection-top-level
view Code/Descriptors/Matlab/Speech/detect_MFCC.m @ 4:92ca03a8fa99 tip
Update to ICASSP 2013 benchmark
author | Dawn Black |
---|---|
date | Wed, 13 Feb 2013 11:02:39 +0000 |
parents | |
children |
line wrap: on
line source
function [HNR] = detect_MFCC( sampleWavFileName, OVERWRITE ) sampleFileName = sampleWavFileName( 1 : length( sampleWavFileName ) - 4 ); [x, fs, frameLength, noOfFrames] = openFile( sampleWavFileName ); %---------------- GET THE SILENT FRAME VALUES ------------------- % only wish to consider pitch values from voiced frames. % silent and unvoiced frames will produce pitch values that % are random and therefore will bias our results segmentFrames = detect_Silence( sampleWavFileName, 0 ); [ silentFrames ] = getSilentDataArray( segmentFrames, noOfFrames ); % open original calculation fileName = [ sampleFileName '_MFCC.txt']; fileID = fopen( fileName ); if(( fileID <= 0 ) || ( OVERWRITE )) %does the file exist? % no disp('WARNING: MISSING MFCC FILE'); %calculate it mfcc = calculate_MFCC( x, fs, frameLength, noOfFrames ); fileID = fopen( fileName, 'w'); for i = 1 : (noOfFrames-1) if( silentFrames(i) == 1 ) % frame is not silent fprintf(fileID, '%d %s \n' , i, num2str( mfcc(:,i)' )); else % set to zero mfcc(:,i) = 0; end end fclose( fileID ); fileID = fopen( fileName ); end mfcc = fscanf( fileID, '%f', inf ); mfcc = buffer(mfcc,14); % 13 MFCC values and one frame number mfcc = mfcc(2:14,:)'; fclose(fileID);