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