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