www.pudn.com > DHMM_MATLAB.rar > Read_In_Data.m


%	by lkk@mails.tsinghua.edu.cn 
 
function [all_data,divid_line,all_test_data,test_divid] = Read_In_Data(n) 
 
%   输入: 
%       n  是否去掉静音部分  ,1表示去掉静音 
%   输出: 
%       all_data            是480行n列矩阵,包含所有训练数据的加窗分帧后数据         
%       divid_line          是1行101列矩阵,divid_line(1)=0,第2 -- 101列记录data中100个训练样本的初始下标 
%       all_test_data       是480行n列矩阵,包含所有测试数据的加窗分帧后数据 
%       test_divid          是1行101列矩阵,divid_line(1)=0,第2 -- 101列记录data中100个测试样本的初始下标 
% 
fs = 16000; 
[b,a] = butter(5,[100, 4000]/fs * 2); 
window_length = fs * 30 /1000; 
all_data = []; 
divid_line(1) = 0; 
all_test_data = []; 
test_divid(1) = 0; 
 
 
for i=0:9 
	for j=1:10 
		file_name = sprintf('database\\traindata\\%d_%d.wav',i,j); 
		[data,fs,bits] = wavread(file_name); 
		%	滤波 
		data = filter(b, a, data);  
		 
		%	去除静音 
		if n==1 
			data = cut_wav(data); 
		end 
		frames_ = []; 
		frames_ = add_window(data, hamming(480),240); 
		all_data = [all_data,frames_]; 
		divid_line(i*10+j+1) = divid_line(i*10+j) + size(frames_,2); 
		 
	end 
end 
 
for i=0:9 
	for j=1:3 
		file_name = sprintf('database\\isolate_testdata\\%d_%d.wav',i,j); 
		[data,fs,bits] = wavread(file_name); 
		%	滤波 
		data = filter(b, a, data); 
		 
		%	去除静音 
		if n==1 
			data = cut_wav(data); 
		end 
		frames_ = []; 
		 
		frames_ = add_window(data, hamming(480),240); 
		all_test_data = [all_test_data,frames_]; 
		test_divid(i*3+j+1) = test_divid(i*3+j) + size(frames_,2); 
		 
	end 
end