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