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