exc_load.m

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

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

cwd=pwd;
cd data

[fname pathname]=uigetfile('*.src','Load exc_source file');
if fname ~= 0
   S=sprintf('Loading data in %s%s',pathname,fname);
   disp(S);
   s=sprintf('load %s%s',pathname,fname);
	eval(s);
   o_fname=fname;
   o_pname=pathname;
   %fname=basename(fname);
else
   fname=o_fname;
   pathname=o_pname;
end
% If an input file is not specified ( fname ), return to main menu
if exist('fname') ~= 1 | length(fname) == 0
   disp('Input file is not specified. Returning to main menu.');
   cd ..;
   return;
end


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%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');
fid = fopen(eval('fname'), '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.  This affects excit.m in synthesis.
   	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);
   
   % glottal
	if (~vtgltoc(k) | jsaspsg(k)==4 | jsaspsg(k)==5 | jsaspsg(k)==6 | jsaspsg(k)==7)
		Agmax(k)=fscanf(fid, '%f\n', 1);
	end

   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);
   
	elseif (exmode(k)==0 | 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);
   end
   
	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 (exmode(k)==1 | exmode(k)==2)
      TN_place(k)=fscanf(fid,'%f\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 ((jsaspsg(k)==4 | jsaspsg(k)==5 | jsaspsg(k)==6 | jsaspsg(k)==7) & ~explace(k))
       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
fclose(fid);

cd ..

sfno = 1;
%glott_on;
if (explace(1))
   set(exc_vt_h,'Value',1);
   vt_on;
else
   set(exc_glo_h,'Value',1);
   glott_on;
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');
   set(exc_jitshi_h,'Enable','on');
	set(exc_aspira_h,'Enable','on');
	set(exc_subglo_h,'Enable','off');
	set(exc_loca_e_h,'Enable','on');
   set(exc_loca_e_h,'String',EX_loc(1));
   popvoice;
   lfparset;
end
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

%cd ..


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.
set(exc_end_e_h,'String',fend(1)); %This was added in July 1998.
set(exc_dur_e_h,'String',fdur(1));

⌨️ 快捷键说明

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