exc_load_old.m

来自「这是一个用于语音信号处理的工具箱」· M 代码 · 共 189 行

M
189
字号
% exc_load.m
% load excitation source file and draw the related waveforms
% modified by D. G. Childers 7/16/98

cwd=pwd;

cd data;
[exc_file pathname]=uigetfile('*.src','Load exc_source file');
cd ..

s=sprintf('cd %s',cwd);
eval(s);
fid = fopen(eval('exc_file'), 'r');
stotfno=fscanf(fid, '%d\n', 1);
for k = 1:stotfno
   ftime(k)=fscanf(fid, '%f\n', 1);
   %fend(k)=fscanf(fid, '%f\n', 1);  %This was added in July 1998. The commented version is the old form.
   fdur(k)=fscanf(fid, '%f\n', 1);
   explace(k)=fscanf(fid, '%d\n', 1);
   exmode(k)=fscanf(fid, '%d\n', 1);
   vtgltoc(k)=fscanf(fid, '%d\n', 1);
   jsaspsg(k)=fscanf(fid, '%d\n', 1);
   if (explace(k))		% vocal tract
	EX_loc(k)=fscanf(fid, '%d\n', 1);
	FG_f0(k)=fscanf(fid, '%f\n', 1);
	FG_t0(k)=fscanf(fid, '%f\n', 1);
	FG_av(k)=fscanf(fid, '%f\n', 1);
	FG_g0(k)=fscanf(fid, '%f\n', 1);
	LF_ee(k)=fscanf(fid, '%f\n', 1);
	LF_tp(k)=fscanf(fid, '%f\n', 1);
	LF_te(k)=fscanf(fid, '%f\n', 1);
	LF_tc(k)=fscanf(fid, '%f\n', 1);
	LF_ta(k)=fscanf(fid, '%f\n', 1);
   else			% glottal
	if (jsaspsg(k)==4 | jsaspsg(k)==5 | jsaspsg(k)==6 | jsaspsg(k)==7)
		Agmax(k)=fscanf(fid, '%f\n', 1);
	end
	if (exmode(k)==0)
		FG_f0(k)=fscanf(fid, '%f\n', 1);
		FG_t0(k)=fscanf(fid, '%f\n', 1);
		FG_av(k)=fscanf(fid, '%f\n', 1);
		FG_g0(k)=fscanf(fid, '%f\n', 1);
		LF_ee(k)=fscanf(fid, '%f\n', 1);
		LF_tp(k)=fscanf(fid, '%f\n', 1);
		LF_te(k)=fscanf(fid, '%f\n', 1);
		LF_tc(k)=fscanf(fid, '%f\n', 1);
		LF_ta(k)=fscanf(fid, '%f\n', 1);
	   if (jsaspsg(k)==1 | jsaspsg(k)==3 | jsaspsg(k)==5 | jsaspsg(k)==7)	
		JS_jit(k)=fscanf(fid, '%f\n', 1);
		JS_jfilt(k)=fscanf(fid,'%f\n',1);
		JS_shm(k)=fscanf(fid, '%f\n', 1);
		JS_sfilt(k)=fscanf(fid,'%f\n',1);
	   end
	   if (jsaspsg(k)==2 | jsaspsg(k)==3 | jsaspsg(k)==6 | jsaspsg(k)==7)
		An_ah(k)=fscanf(fid, '%f\n', 1);
		An_afilt(k)=fscanf(fid,'%f\n',1);
	   end
	   if (jsaspsg(k)==4 | jsaspsg(k)==5 | jsaspsg(k)==6 | jsaspsg(k)==7)
         currsub(k)=fscanf(fid, '%f\n',1);
         totfsub(k)=fscanf(fid, '%f\n',1);
         R(k)=fscanf(fid, '%f\n',1);
         L(k)=fscanf(fid, '%f\n',1);
         C(k)=fscanf(fid, '%f\n',1);
      	Ag_model(k)=fscanf(fid,'%d\n',1);
			Ag_Td(k)=fscanf(fid, '%f\n', 1);
			Ag_To(k)=fscanf(fid, '%f\n', 1);
			Ag_Tc(k)=fscanf(fid, '%f\n', 1);
	   end
	end
	if (exmode(k)==1)
	   if (jsaspsg(k)==2 | jsaspsg(k)==3 | jsaspsg(k)==6 | jsaspsg(k)==7)
		An_ah(k)=fscanf(fid, '%f\n', 1);
		An_afilt(k)=fscanf(fid,'%f\n',1);
	   end
	   TN_place(k)=fscanf(fid, '%d\n', 1);
	   TN_CRN(k)=fscanf(fid, '%f\n', 1);
	   TN_turbg(k)=fscanf(fid, '%f\n', 1);
	   TN_vvdc(k)=fscanf(fid, '%f\n', 1);
	end
	if (exmode(k)==2)
	   FG_f0(k)=fscanf(fid, '%f\n', 1);
	   FG_t0(k)=fscanf(fid, '%f\n', 1);
	   FG_av(k)=fscanf(fid, '%f\n', 1);
	   FG_g0(k)=fscanf(fid, '%f\n', 1);
	   LF_ee(k)=fscanf(fid, '%f\n', 1);
	   LF_tp(k)=fscanf(fid, '%f\n', 1);
	   LF_te(k)=fscanf(fid, '%f\n', 1);
	   LF_tc(k)=fscanf(fid, '%f\n', 1);
	   LF_ta(k)=fscanf(fid, '%f\n', 1);
	   if (jsaspsg(k)==1 | jsaspsg(k)==3 | jsaspsg(k)==5 | jsaspsg(k)==7)
		JS_jit(k)=fscanf(fid, '%f\n', 1);
		JS_jfilt(k)=fscanf(fid,'%f\n',1);
		JS_shm(k)=fscanf(fid, '%f\n', 1);
		JS_sfilt(k)=fscanf(fid,'%f\n',1);
	   end
	   if (jsaspsg(k)==2 | jsaspsg(k)==3 | jsaspsg(k)==6 | jsaspsg(k)==7)
		An_ah(k)=fscanf(fid, '%f\n', 1);
		An_afilt(k)=fscanf(fid,'%f\n',1);
	   end
	   TN_place(k)=fscanf(fid, '%d\n', 1);
	   TN_CRN(k)=fscanf(fid, '%f\n', 1);
	   TN_turbg(k)=fscanf(fid, '%f\n', 1);
	   TN_vvdc(k)=fscanf(fid, '%f\n', 1);
	   if (jsaspsg(k)==4 | jsaspsg(k)==5 | jsaspsg(k)==6 | jsaspsg(k)==7)
		Ag_model(k)=fscanf(fid,'%d\n',1);
		Ag_Td(k)=fscanf(fid, '%f\n', 1);
		Ag_To(k)=fscanf(fid, '%f\n', 1);
		Ag_Tc(k)=fscanf(fid, '%f\n', 1);
	   end
	end
   end
end
	fclose(fid);
%	last->next = (struct EXnode *)NULL;
%	set_tcomp_on();
%	stotfno = sfno;
	sfno = 1;
%	sprintf(sf, "%d", sfno);
%	xv_set(Artm_win4->win4_t4, PANEL_VALUE, sf, NULL);
%	sprintf(sf, "%d", totf);
%	xv_set(Artm_win4->win4_t5, PANEL_VALUE, sf, NULL);
%	current = first;
%	setexpar(first);
%	g_draw();
glott_on;
if (explace(1))
	set(exc_vt_h,'Value',1);
else
	set(exc_glo_h,'Value',1);
end

if (explace(1))
	set(exc_voi_h,'Value',1);
	set(exc_voi_h,'Enable','on');
	set(exc_unv_h,'Enable','off');
	set(exc_mix_h,'Enable','off');
  	popvoice;
   lfparset;
   set(exc_jitshi_h,'Enable','off');
	set(exc_aspira_h,'Enable','off');
	set(exc_subglo_h,'Enable','off');
	set(exc_loca_e_h,'Enable','on');
	set(exc_loca_e_h,'String',EX_loc(1));
else
if (exmode(1)==0)
	set(exc_voi_h,'Value',1);
	set(exc_voi_h,'Enable','on');
   popvoice;
   lfparset;
elseif (exmode(1)==1)
	set(exc_unv_h,'Value',1);
   set(exc_unv_h,'Enable','on');
   popunvoi;
   tnparset;
elseif (exmode(1)==2)
	set(exc_mix_h,'Value',1);
	set(exc_mix_h,'Enable','on');
	popmix;
	lfparset;
   tnparset;
end

	if (jsaspsg(1)==1 | jsaspsg(1)==3 | jsaspsg(1)==5 | jsaspsg(1)==7)
		set(exc_jitshi_h,'Enable','on');
		set(exc_jitshi_h,'Value',1);
      popjtsh;
		jsparset;
	end	
	if (jsaspsg(1)==2 | jsaspsg(1)==3 | jsaspsg(1)==6 | jsaspsg(1)==7)
		set(exc_aspira_h,'Enable','on');
		set(exc_aspira_h,'Value',1);
      popaspi;
		asparset;
	end
	if (jsaspsg(1)==4 | jsaspsg(1)==5 | jsaspsg(1)==6 | jsaspsg(1)==7)
		set(exc_subglo_h,'Enable','on');
		set(exc_subglo_h,'Value',1);
      popsbglo;
		sbparset;
	end
end

set(exc_curf_e_h,'String',1);
set(exc_totf_e_h,'String',stotfno);
set(exc_beg_e_h,'String',ftime(1));
set(exc_end_e_h,'String',ftime(1)+fdur(1)); % This was commented out in July 1998. The non-commented form is the old version.
%set(exc_end_e_h,'String',fend(1));  % This was added in July 1998. The commented form is the old version.
set(exc_dur_e_h,'String',fdur(1));

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?