erg5.m
来自「这是一个用于语音信号处理的工具箱」· M 代码 · 共 832 行 · 第 1/3 页
M
832 行
function [err_erg5,area,leng]=erg5(art_set,wh,hk1,g1k,currf,form_tar)
% get articulatory position
global BACK_COLOR TEXT_COLOR main_h main1_h;
velum_set=0;
% wh=1.34651;
% g1k=0.82081;
% hk1=1.3431;
% art_set=[300,600,600,400,600,200,500,0,400]';
% art_set(1)=get(m4_1_h,'Value');
% art_set(2)=get(m4_3_h,'Value');
% art_set(3)=get(m4_5_h,'Value');
% art_set(4)=get(m4_7_h,'Value');
% art_set(5)=get(m4_9_h,'Value');
% art_set(6)=get(m4_11_h,'Value');
% art_set(7)=get(m4_13_h,'Value');
% art_set(8)=get(m4_15_h,'Value');
% art_set(9)=get(m4_17_h,'Value');
% drawsagi.c
W_x = 2.045;
W_y = 5.04;
F_x = 0;
F_y = 6.5;
sj = 5.85; % 5.65
M_x = 3.7;
M_y = 5.82;
N_x = 5.05;
N_y = 5.33;
U_x = 5.6;
U_y = 5.15;
rt = 0.9;
G2_x = W_x;
G2_y = W_y - 3.42622;
G_x = G2_x + 0.26257;
G_y = G2_y;
G1_x = G2_x + 0.6;
G1_y = G2_y - 0.9933;
K_x = G1_x + g1k;
K_y = G1_y;
H_x = W_x + wh;
H_y = G1_y + hk1;
H1_x = H_x - 0.25;
H1_y = H_y;
H2_x = H1_x;
H2_y = H1_y - 0.35;
Vs_x = 2.045;
Vs_y = 5.09; % 5.31553
thetav = 2.06813;
alf = angle(M_x,M_y,N_x,N_y);
q = (distance(M_x,M_y,N_x,N_y) / 2) / sin(alf);
[cmn_x,cmn_y] = polar2re(M_x,M_y,q,-pi/2.0);
thetaj = (-(art_set(currf,7)/100.0+15.0)*pi)/180.0; %tetj3 */
JAW_x = F_x + sj * cos(thetaj);
JAW_y = F_y + sj * sin(thetaj);
PS_x = JAW_x - 0.2; % 0.3 */
PS_y = JAW_y - 0.2;
PF_x = PS_x - 0.2;
PF_y = PS_y;
if (velum_set==0)
mv = art_set(currf,8)/1000.0;
V_x = Vs_x - mv * cos(thetav);
V_y = Vs_y - mv * sin(thetav);
end
alf = angle(M_x,M_y,V_x,V_y);
bet = pi/2.0 - alf;
angv = 2.0*alf - pi/2.0;
q = distance(V_x,V_y,M_x,M_y) /2.0 / cos(bet);
[cv_x,cv_y] = polar2re(V_x,V_y, q, angv);
tongc_x = (art_set(currf,1)*0.0014) + 2.9;
tongc_y = (art_set(currf,2)*0.0014) + 3.55;
thetab = thetaj - 4.55531; %tetb */
[B_x,B_y] = polar2re(tongc_x,tongc_y, rt, thetab);
ud = distance(tongc_x,tongc_y,H_x,H_y);
sd = sqrt(abs(ud*ud - rt*rt));
al = atan(rt/sd) + angle(tongc_x,tongc_y,H_x,H_y);
[DL_x,DL_y] = polar2re(H_x,H_y, sd, al);
sc = distance(F_x,F_y, tongc_x,tongc_y);
[mm_x,mm_y] = polar2re(H_x,H_y, sd/2.0, al);
hy=(art_set(currf,9) *0.0006) - 0.3;
if (hy == 0.0)
PP_x = mm_x;
PP_y = mm_y;
end
if (hy < 0)
al = al + pi/2.0;
[PP_x,PP_y] = polar2re(mm_x,mm_y, -hy, al);
end
if (hy > 0)
al = al - pi/2.0;
[PP_x,PP_y] = polar2re(mm_x,mm_y, hy, al);
end
ud = distance(tongc_x,tongc_y,PP_x,PP_y);
sd = sqrt(abs(ud*ud - rt*rt));
al = atan(rt/sd) + angle(tongc_x,tongc_y,PP_x,PP_y);
[DL_x,DL_y] = polar2re(PP_x,PP_y, sd, al);
[pme_x,pme_y] = hyy(H_x,H_y,PP_x,PP_y,DL_x,DL_y);
T_x = (art_set(currf,3)*0.002) + 3.7; %3.7 */
T_y = (art_set(currf,4)*0.0013) + 4.5; % 4.5 */
[c1_x,c1_y] = marc(T_x,T_y,B_x,B_y, 1.5);
[c2_x,c2_y] = marc(PF_x,PF_y,T_x,T_y, 1.5);
dy = (U_y - JAW_y)/2.0;
L_x = U_x;
L_y = U_y - dy;
L3_x = L_x;
ppl = art_set(currf,5) * 0.00065;
lippro = ppl + L3_x;
hl = art_set(currf,6) * (5.52 - L_y) / 1000.0;
lipopen = hl + L_y;
L3_y = lipopen;
L5_x = lippro;
L5_y = L3_y;
L6_x = JAW_x;
L6_y = JAW_y + 5.15 - L3_y;
L7_x = L6_x + L5_x - 5.6;
L7_y = L6_y;
% sagigrid.c
kh6 = distance(H2_x,H2_y, K_x,K_y)/6.0;
akh = angle(H2_x,H2_y, K_x,K_y);
[Z3_x,Z3_y] = polar2re(K_x,K_y, kh6, akh);
[Z5_x,Z5_y] = polar2re(Z3_x,Z3_y, kh6, akh);
[Z7_x,Z7_y] = polar2re(Z5_x,Z5_y, kh6, akh);
[H3_x,H3_y] = polar2re(Z7_x,Z7_y, kh6, akh);
[Z11_x,Z11_y] = polar2re(H3_x,H3_y, kh6, akh);
[Z15_x,Z15_y] = midpoint(H1_x,H1_y, H2_x,H2_y);
Z18_x = W_x;
Z18_y = H_y;
Y14_x = W_x;
Y14_y = H2_y;
Y16_x = W_x;
Y16_y = Z15_y;
Y12_x = W_x;
Y12_y = Z11_y;
Y10_x = W_x;
Y10_y = H3_y;
Y8_x = W_x;
Y8_y = Z7_y;
Y6_x = W_x;
Y6_y = Z5_y;
Y4_x = W_x;
Y4_y = Z3_y;
[Z4_x,Z4_y] = intersec(Y4_x,Y4_y, Z3_x,Z3_y, G_x,G_y,G1_x,G1_y);
[Z6_x,Z6_y] = intersec(Y6_x,Y6_y, Z5_x,Z5_y, G_x,G_y,G1_x,G1_y);
[Z8_x,Z8_y] = intersec(Y8_x,Y8_y, Z7_x,Z7_y, G_x,G_y,G1_x,G1_y);
[Z10_x,Z10_y] = intersec(Y10_x,Y10_y, H3_x,H3_y, G_x,G_y,G1_x,G1_y);
[Z12_x,Z12_y] = intersec(Y12_x,Y12_y, Z11_x,Z11_y, G_x,G_y,G1_x,G1_y);
[Z14_x,Z14_y] = intersec(Y14_x,Y14_y, H2_x,H2_y, G_x,G_y,G1_x,G1_y);
[Z16_x,Z16_y] = intersec(Y16_x,Y16_y, Z15_x,Z15_y, G2_x,G2_y, Z18_x,Z18_y);
if (Z4_x == 0.000)
Z4_x = Y4_x;
Z4_y = Y4_y;
end
if (Z6_x == 0.000)
Z6_x = Y6_x;
Z6_y = Y6_y;
end
if (Z8_x == 0.000)
Z8_x = Y8_x;
Z8_y = Y8_y;
end
if (Z10_x == 0.000)
Z10_x = Y10_x;
Z10_y = Y10_y;
end
if (Z12_x == 0.000)
Z12_x = Y12_x;
Z12_y = Y12_y;
end
if (Z14_x < G_x)
Y18_x = G2_x;
Y18_y = H2_y;
[Z14_x,Z14_y] = intersec(G2_x,G2_y, Z18_x,Z18_y, H2_x,H2_y, Y18_x,Y18_y);
end
if (Z14_x == 0.000)
Z14_x = Y14_x;
Z14_y = Y14_y;
end
if (Z16_x == 0.000)
Z16_x = Y16_x;
Z16_y = Y16_y;
end
if (Z16_x > W_x)
[Z16_x,Z16_y] = midpoint(Z18_x,Z18_y, G2_x,G2_y);
end
% if (Z15_y < G_y)
% Y18_x = G2_x;
% Y18_y = Z15_y;
% Z16 = intersec(Y18_x,Y18_y, Z15_x,Z15_y, G_x,G_y,G1_x,G1_y);
% end
Z = angle(M_x,M_y, cmn_x,cmn_y);
Q = (Z - angle(N_x,N_y, cmn_x,cmn_y))/11.0;
E = distance(cmn_x,cmn_y, N_x,N_y);
[P91_x,P91_y] = polar2re(cmn_x,cmn_y, E, Z-(Q*1.0));
[P43_x,P43_y] = polar2re(cmn_x,cmn_y, E, Z-(Q*2.0));
[P45_x,P45_y] = polar2re(cmn_x,cmn_y, E, Z-(Q*3.0));
[P47_x,P47_y] = polar2re(cmn_x,cmn_y, E, Z-(Q*4.0));
[P49_x,P49_y] = polar2re(cmn_x,cmn_y, E, Z-(Q*5.0));
[P51_x,P51_y] = polar2re(cmn_x,cmn_y, E, Z-(Q*6.0));
[P53_x,P53_y] = polar2re(cmn_x,cmn_y, E, Z-(Q*7.0));
[Z55_x,Z55_y] = polar2re(cmn_x,cmn_y, E, Z-(Q*8.0));
[Z57_x,Z57_y] = polar2re(cmn_x,cmn_y, E, Z-(Q*9.0));
[Z59_x,Z59_y] = polar2re(cmn_x,cmn_y, E, Z-(Q*10.0));
[N7_x,N7_y] = midpoint(N_x,N_y, U_x,U_y);
[N3_x,N3_y] = midpoint(N_x,N_y, N7_x,N7_y);
[N1_x,N1_y] = midpoint(N_x,N_y, N3_x,N3_y);
[N5_x,N5_y] = midpoint(N3_x,N3_y, N7_x,N7_y);
[N11_x,N11_y] = midpoint(N7_x,N7_y, U_x,U_y);
[N9_x,N9_y] = midpoint(N7_x,N7_y, N11_x,N11_y);
[N13_x,N13_y] = midpoint(N11_x,N11_y, U_x,U_y);
au = angle(N_x,N_y, U_x,U_y) + pi/2.0;
L60_x = 3.583;
L60_y = 2.558;
[L0_x,L0_y] = polar2re(N_x,N_y, 3.0, au);
lu_x = U_x;
lu_y = L0_y;
[L8_x,L8_y] = midpoint(L0_x,L0_y, lu_x,lu_y);
[LN4_x,LN4_y] = midpoint(L0_x,L0_y, L8_x,L8_y);
[L2_x,L2_y] = midpoint(L0_x,L0_y, LN4_x,LN4_y);
[LN6_x,LN6_y] = midpoint(L8_x,L8_y, LN4_x,LN4_y);
[L12_x,L12_y] = midpoint(L8_x,L8_y, lu_x,lu_y);
[L10_x,L10_y] = midpoint(L8_x,L8_y, L12_x,L12_y);
L14_x = N13_x;
L14_y = L0_y;
P13_x = W_x;
P13_y = PP_y;
P17_x = W_x;
P17_y = DL_y;
tdl = angle(PP_x,PP_y, pme_x,pme_y);
ry = distance(pme_x,pme_y, H_x,H_y);
dltv = 0.25*(tdl - angle(H_x,H_y, pme_x,pme_y));
if (hy > 0.0 & pme_y <= PP_y & pme_y > H_y)
dltv = dltv + pi/2.0;
end
[P84_x,P84_y] = polar2re(pme_x,pme_y, ry, tdl-(dltv*1.0));
[P12_x,P12_y] = polar2re(pme_x,pme_y, ry, tdl-(dltv*2.0));
[P82_x,P82_y] = polar2re(pme_x,pme_y, ry, tdl-(dltv*3.0));
[P16_x,P16_y] = midpoint(PP_x,PP_y, DL_x,DL_y);
[P86_x,P86_y] = midpoint(PP_x,PP_y, P16_x,P16_y);
[R2_x,R2_y] = midpoint(PP_x,PP_y, P86_x,P86_y);
[AS2_x,AS2_y] = midpoint(P16_x,P16_y, P86_x,P86_y);
[P88_x,P88_y] = midpoint(DL_x,DL_y, P16_x,P16_y);
[AS4_x,AS4_y] = midpoint(P16_x,P16_y, P88_x,P88_y);
[R4_x,R4_y] = midpoint(DL_x,DL_y, P88_x,P88_y);
P81_x = W_x;
P81_y = P82_y;
P11_x = W_x;
P11_y = P12_y;
P83_x = W_x;
P83_y = P84_y;
R1_x = W_x;
R1_y = R2_y;
P85_x = W_x;
P85_y = P86_y;
AS1_x = W_x;
AS1_y = AS2_y;
P15_x = W_x;
P15_y = P16_y;
AS3_x = W_x;
AS3_y = AS4_y;
P87_x = W_x;
P87_y = P88_y;
R3_x = W_x;
R3_y = R4_y;
Z = angle(V_x,V_y, cv_x,cv_y);
Q = (Z - angle(M_x,M_y, cv_x,cv_y))/12.0;
E = distance(cv_x,cv_y, M_x,M_y);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?