fun_posv.m
来自「这是一个用于语音信号处理的工具箱」· M 代码 · 共 215 行
M
215 行
%function func_postview2(name,BACK_COLOR,TEXT_COLOR)
disp(' ');
disp('FUNCTION: func_postview2.m ******************************************');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% func_postview2.m (from postview2.m)
%
% jmw
%
% 6/30/94
% 3/31/94
%
% show which frames were used to create output
% 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);
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);
file_string = sprintf('./temp/%s_MapData.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_Excite.mat', name);
s=sprintf('loading ./%s from hard disk ...',file_string);
disp(s);
s=sprintf('load %s', file_string);
eval(s);
cd temp;
file_string = sprintf('syn_%s.dat', name);
s=sprintf('loading %s from hard disk ...',file_string);
disp(s);
s_name=basename(file_string);
s=sprintf('synsignal = %s;', s_name);
eval(s);
s=sprintf('load %s', file_string);
eval(s);
cd ..;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% find which frames were preserved in output
disp_Excite = zeros(1,m);
for i=1:m,
x=find(i==Excite);
nohit = isempty(x);
if (nohit)
;
else
%disp_Excite(i) = 1;
disp_Excite(i) = max(size(x));
end;
end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (PLT)
disp('plotting results ...');
h=gcf;
figure(h);
clf;
subplot(411);
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(412);
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-400,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-250, ht , 'US',...
'color',TEXT_COLOR);
elseif (strcmp(choice_1(i,:),' unv fric'))
text(seg_range(i,1)+dur/2-250, ht , 'UF',...
'color',TEXT_COLOR);
elseif (strcmp(choice_1(i,:),' voicfric'))
text(seg_range(i,1)+dur/2-250, ht , 'VF',...
'color',TEXT_COLOR);
elseif (strcmp(choice_1(i,:),' voicebar'))
text(seg_range(i,1)+dur/2-250, ht , 'VB',...
'color',TEXT_COLOR);
elseif (strcmp(choice_1(i,:),'semivowel'))
text(seg_range(i,1)+dur/2-250, ht , 'SV',...
'color',TEXT_COLOR);
end;
end;
% plot 3
subplot(413);
stair_jw(range(:,1), disp_Excite,LINE_COLOR);
a413 = axis;
axis([ a(1) a(2) -1 max([a413(4)+0.5,1.5])]);
hh = gca;
set(hh,'XColor',TEXT_COLOR,'YColor',TEXT_COLOR);
grid on;
s1=sprintf('Cut/Save/Double Frame Indicator ');
s2=sprintf('(number of times input frame is used in output)');
s = [s1 s2];
title(s,'color',TEXT_COLOR);
% plot 4
subplot(414);
plot(synsignal,'color',LINE_COLOR);
axis(a);
hh = gca;
set(hh,'XColor',TEXT_COLOR,'YColor',TEXT_COLOR);
grid on;
s=sprintf('syn_%s', name);
title(s,'color',TEXT_COLOR);
end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%return
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?