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 + -
显示快捷键?