44 #include "EST_types.h"
45 #include "ling_class/EST_Relation.h"
46 #include "ling_class/EST_relation_aux.h"
47 #include "EST_track_aux.h"
48 #include "EST_string_aux.h"
49 #include "EST_io_aux.h"
50 #include "EST_Option.h"
52 static int pos_phone(
const EST_Relation &seg,
float x,
float shift);
74 tmp_seg = lab.append();
77 tmp_seg->set_name(
"neg");
79 tmp_seg->set_name(
"pos");
81 tmp_seg->
set(
"end", tr.
t(i - 1));
86 tmp_seg = lab.append();
88 tmp_seg->set_name(
"pos");
90 tmp_seg->set_name(
"neg");
92 tmp_seg->
set(
"end", tr.
t(i - 1));
108 get_frame_o(tr, sample_rate, i, b, c, e);
110 get_frame(tr, sample_rate, i, b, c, e);
116 tmp_seg = lab.append();
117 tmp_seg->set_name(
"b");
118 tmp_seg->
set(
"end", b);
121 tmp_seg = lab.append();
122 tmp_seg->set_name(
"pm");
123 tmp_seg->
set(
"end", c);
127 tmp_seg = lab.append();
128 tmp_seg->set_name(
"e");
129 tmp_seg->
set(
"end", e);
135 float shift,
float offset,
float
142 n = (int)ceil(lab.
tail()->
F(
"end")/shift);
143 endn = (req_l > 0.0) ? (int)(req_l /shift) : n;
153 for (i = 0; i < n; ++i)
155 tr.
a(i) = (pos_phone(lab, tr.
t(i), shift) * range) + offset;
158 for (; i < endn; ++i)
160 tr.
a(i) = (pad ==
"high") ? range + offset : offset;
170 float shift = op.
present(
"frame_shift") ? op.
fval(
"frame_shift"): 0.01;
171 float offset = op.
present(
"label_offset")? op.
fval(
"label_offset"):0.0;
173 float range = op.
present(
"label_range") ? op.
fval(
"label_range"): 1.0;
174 float length = al.
present(
"-length") ? al.
fval(
"-length") : -1.0;
176 label_to_track(lab, tr, shift, offset, range, length, al.
val(
"-pad", 0));
182 static int pos_phone(
const EST_Relation &seg,
float x,
float shift)
189 for (p = seg.
head(); p != 0; p = p->next())
190 if (p->f(
"pos") == 1)
191 if ((x < (p->
F(
"end") + (shift / 2.0))) &&
192 (x > (start(p) - (shift / 2.0))))