ГОСТ Р 53556.2—2012
HM_UP
= 60. Эти окна для неречевого фрейма используются, только когда неречевой фрейм смежный с
речевым или смешанным речевым фреймом.
for (i
=
0;
/ <
FRM-TD_UP-TD_FLAT;
/++}
w _ C G lp _ u p [ij = 0 .0 :
for(i =FRM- TD_UP-TD_FLAT: i < FRM-TD_FLAT:/++)
w_celp_up[i]
=
(fk>at)(t-FRM+TD_UP+TD FLAT)/(fk>a()TD_UP:
for (FRM-TD_FLAT: i <FRM+LD_LEN: 1++)
w_celp_up[ij = 1,0;
for (i = 0: i < TD_FLAT: i++)
w_celp_down[i]= 1.0;
for (i
=
TD_FLAT: i < TD_FLAT+TD_DOWN;
/++J
w_celp_down[i]
=
(float)(TD_FLAT+TD_DOWN-i)/(fioat) TD_DOWN.
for (i
=
TD_FLAT*TD_DOWN: i <FRM+LD_LEN; i++)
w_ce!p_down[i]
=
0.0;
Для режима нормальной задержки:
if (vuv1
/а
0 && vuv2 != О) {
for (i
=
0; i
<
FRM: i++)
s_uv[ij
=
O.Of:
}
else if (vuv1 != 0 && vuv2
==
0) {
for (i
=
0: i
<
FRM: i++)
s_uv[ij
*=
w_celp_upfi]:
}
else if (vuv1
==
0 && vuv2 != 0) {
for (i
=
0: i
<
FRM: i*+)
s uvfi]
*=
w celp_down[i]
}
Для режима малой задержки позиция работы с окнами сдвинута выборками
LD_ LEN:
if (vuv1 != 0 && vuv2 != О) {
for (i
=
0: i < FRM: i++)
s_uv[i]
=
O.Of:
}
else if (vuv1!- 0 && vuv2
==
0) {
for (i
=
0: i
<
FRM: i++)
s_uv[il
*=
w_celp_up[i*LD_LEN];
}
else if (vuv1
==
0 && vuv2
/=
0) {
for (i
=
0: i
<
FRM: i++)
s uvfi]
*=
w celp_down[i+LD_LEN]
}
42
Рисунок 3 — Окно синтеза для случая неречевой/речевой