fun_prev.m
来自「这是一个用于语音信号处理的工具箱」· M 代码 · 共 200 行
M
200 行
%function fun_prev(name,BACK_COLOR,TEXT_COLOR,LINE_COLOR)
disp(' ');
disp('FUNCTION: func_preview2.m *****************************************');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% jmw
%
% 6/9/94
%
% Preview S&L results
% modified by D. G. Childers 2/16/98
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
file_string = sprintf('./temp/%s.mat', name);
s=sprintf('loading ./%s from hard disk ...',file_string);
disp(s);
s=sprintf('load %s', file_string);
eval(s);
signal = eval(name);
signal_store=signal;
file_string = sprintf('./temp/%s_Data.mat', name);
s=sprintf('loading ./%s from hard disk ...',file_string);
disp(s);
s=sprintf('load %s', file_string);
eval(s);
file_string = sprintf('./temp/%s_SegNLabels.mat', name);
s=sprintf('loading ./%s from hard disk ...',file_string);
disp(s);
s=sprintf('load %s', file_string);
eval(s);
%open window
w3_h=figure('Position',[100 100 740 430],'Numbertitle','off','Name',...
'Preview: Segmentation & Labeling Results' ,'Resize','on',...
'Color',BACK_COLOR);
% add 'OK' function button
w3_pb_ok_h=uicontrol('Units','normalized',...
'Position',[0.01 .90 .09 .050],...
'String','OK',...
'Callback','w3_ok');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
PLT = 1; % flag to determine plotting
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[m,n]=size(cofa);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% find boundaries in Segment data
if (seg_cnt > 1)
num_bnd = seg_cnt -1;
seg_bnd = zeros(1,num_bnd);
for i=1:num_bnd,
seg_bnd(i) = seg_frame(i+1,1);
end;
end;
disp_bnd = zeros(1,m);
for i=1:m,
x=find(i==seg_bnd);
nohit = isempty(x);
if (nohit)
;
else
disp_bnd(i) = 2;
end;
end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (PLT)
disp('plotting results ...');
subplot(311);
%plot(signal,'color',TEXT_COLOR);
plot(signal,'color',LINE_COLOR);
grid;
a=axis;
axis(a);
hh = gca;
set(hh,'XColor',TEXT_COLOR,'YColor',TEXT_COLOR);
s=sprintf('%s', name);
title(s,'color',TEXT_COLOR);
subplot(312);
stair_jw(range(:,1),disp_bnd,LINE_COLOR);
axis([a(1) a(2) -5 8]);
hh = gca;
set(hh,'XColor',TEXT_COLOR,'YColor',TEXT_COLOR);
grid off;
title('Segment Type and Duration','color',TEXT_COLOR);
for i=1:seg_cnt,
% add seg length label (text)
dur = seg_range(i,2)-seg_range(i,1)+1;
s=sprintf('%d', dur);
if ( rem(i,3)==1)
ht = 6.0;
elseif ( rem(i,3)==2)
ht = 4.5;
else
ht = 3.0;
end;
text(seg_range(i,1)+dur/2-150,ht,s,'color',TEXT_COLOR);
% add seg type label for 1ST CHOICE (text)
ht = -1;
if (strcmp(choice_1(i,:),' silent'))
text(seg_range(i,1)+dur/2, ht , 'si',...
'color',TEXT_COLOR);
elseif (strcmp(choice_1(i,:),' nasal'))
text(seg_range(i,1)+dur/2, ht , 'N',...
'color',TEXT_COLOR);
elseif (strcmp(choice_1(i,:),' vowel'))
text(seg_range(i,1)+dur/2, ht , 'V',...
'color',TEXT_COLOR);
elseif (strcmp(choice_1(i,:),' unv stop'))
text(seg_range(i,1)+dur/2-100, ht , 'US',...
'color',TEXT_COLOR);
elseif (strcmp(choice_1(i,:),' unv fric'))
text(seg_range(i,1)+dur/2-100, ht , 'UF',...
'color',TEXT_COLOR);
elseif (strcmp(choice_1(i,:),' voicfric'))
text(seg_range(i,1)+dur/2-100, ht , 'VF',...
'color',TEXT_COLOR);
elseif (strcmp(choice_1(i,:),' voicebar'))
text(seg_range(i,1)+dur/2-100, ht , 'VB',...
'color',TEXT_COLOR);
elseif (strcmp(choice_1(i,:),'semivowel'))
text(seg_range(i,1)+dur/2-100, ht , 'SV',...
'color',TEXT_COLOR);
end;
end;
subplot(313);
stair_jw(range(:,1),disp_bnd,LINE_COLOR);
axis([a(1) a(2) -1 7]);
hh = gca;
set(hh,'XColor',TEXT_COLOR,'YColor',TEXT_COLOR);
grid off;
title('Segment Boundaries','color',TEXT_COLOR);
for i=1:num_bnd,
sss=sprintf('%d', range(seg_bnd(1,i)));
if ( rem(i,3)==1)
ht = 6.0;
elseif ( rem(i,3)==2)
ht = 4.5;
else
ht = 3.0;
end;
text(range(seg_bnd(1,i))-180,ht,sss,'color',TEXT_COLOR);
end;
end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% clean up time
clear PLT i seg_bnd
clear VUS_voicetype m seg_cnt
clear a n seg_frame
clear cofa num_bnd
clear disp_bnd power voicetype
clear dur x
clear file_string reliability_1
clear h reliability_2
clear ht residue
s=sprintf('clear %s', name);
eval(s);
clear s
signal=signal_store;
%return;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%clear choice_1 seg_range
%clear choice_2 nohit seg_type
%clear cofa num_bnd signal
%clear dur range x
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?