% create a MIL dataset from the original WAV-files, segmentation of the % spectrograms, and computation of features on the segmented regions % % This is the new 19 species dataset from the MLSP competition % some settings: windowlen = 512; fmax = 256; intens_thr = 0.8; % remove 80% of the signal?? f_min = 2000; % frequency threshold (everything below is removed) % load the 'meta' data like labels and filenames dpath = '../birds_mlsp2013/mlsp_contest_dataset/essential_data/'; [bagid,names] = textread(fullfile(dpath,'rec_id2filename.txt'),'%n%s','headerlines',1); [bagid2,labstr] = textread(fullfile(dpath,'rec_labels_test_hidden.txt'),'%n%s','headerlines',1); %[bagid3,Itst] = %textread(fullfile(dpath,'CVfolds_2.txt'),'%n%d','headerlines',1); %VC: Ik krijg hier foutmeldingen. textread gaat weg, dus ze raden aan om %textscan te gebruiken. %>Error using dataread %>Trouble reading integer from file (row 1, field 2) ==> ,1\n %>Error in textread (line 175) %>[varargout{1:nlhs}]=dataread('file',varargin{:}); %#ok N = length(bagid2); CVfile = fopen(fullfile(dpath,'CVfolds_2.txt')); CVdata = textscan(CVfile, '%f,%f', N, 'headerlines',1); fclose(CVfile); bagid3 = CVdata{1}; Itst = CVdata{2}; if any(bagid~=bagid2) error('Bagid''s do not match.'); end G = fspecial('gaussian',[5 5],2); % run over the files, and get the features: B = size(bagid,1); x = cell(B,1); baglab = zeros(B,13); instlab = ''; bagid = []; for i=1:B %load the signal; [signal,fs] = wavread(fullfile(dpath,'src_wavs',names{i}(2:end))); [S,f,t] = spectrogram(signal,windowlen,windowlen/2,fmax,fs); % smooth and threshold the spectrogram: I = imfilter(abs(S),G,'same'); mask = (I>dd_threshold(I(:),intens_thr)); mask(f