wagon_aux.cc (speech_tools-2.4-release) | : | wagon_aux.cc (speech_tools-2.5.0-release) | ||
---|---|---|---|---|
skipping to change at line 1043 | skipping to change at line 1043 | |||
s << b.stddev() << ")"; | s << b.stddev() << ")"; | |||
else | else | |||
s << "0.001" << ")"; | s << "0.001" << ")"; | |||
if (j+1<wgn_VertexTrack.num_channels()) | if (j+1<wgn_VertexTrack.num_channels()) | |||
s << " "; | s << " "; | |||
} | } | |||
} | } | |||
else /* output best in the cluster */ | else /* output best in the cluster */ | |||
{ | { | |||
/* print out vector closest to center, rather than average */ | /* print out vector closest to center, rather than average */ | |||
/* printf("awb_debug outputing best\n"); */ | ||||
double best = WGN_HUGE_VAL; | double best = WGN_HUGE_VAL; | |||
double x,d; | double x,d; | |||
int bestp = 0; | int bestp = 0; | |||
EST_SuffStats *cs; | EST_SuffStats *cs; | |||
cs = new EST_SuffStats [wgn_VertexTrack.num_channels()+1]; | cs = new EST_SuffStats [wgn_VertexTrack.num_channels()+1]; | |||
for (j=0; j<wgn_VertexFeats.num_channels(); j++) | for (j=0; j<wgn_VertexFeats.num_channels(); j++) | |||
if (wgn_VertexFeats.a(0,j) > 0.0) | { | |||
cs[j].reset(); | ||||
for (p=imp.members.head(); p != 0; p=p->next()) | ||||
{ | { | |||
cs[j].reset(); | cs[j] += wgn_VertexTrack.a(imp.members.item(p),j); | |||
for (p=imp.members.head(); p != 0; p=p->next()) | ||||
{ | ||||
cs[j] += wgn_VertexTrack.a(imp.members.item(p),j); | ||||
} | ||||
} | } | |||
} | ||||
for (p=imp.members.head(); p != 0; p=p->next()) | for (p=imp.members.head(); p != 0; p=p->next()) | |||
{ | { | |||
for (x=0.0,j=0; j<wgn_VertexFeats.num_channels(); j++) | for (x=0.0,j=0; j<wgn_VertexFeats.num_channels(); j++) | |||
if (wgn_VertexFeats.a(0,j) > 0.0) | if (wgn_VertexFeats.a(0,j) > 0.0) | |||
{ | { | |||
d = (wgn_VertexTrack.a(imp.members.item(p),j)-cs[j].mean ()) | d = (wgn_VertexTrack.a(imp.members.item(p),j)-cs[j].mean ()) | |||
/* / cs[j].stddev() */ ; /* seems worse 061218 */ | /* / cs[j].stddev() */ ; /* seems worse 061218 */ | |||
x += d*d; | x += d*d; | |||
} | } | |||
if (x < best) | if (x < best) | |||
{ | { | |||
/* printf("awb_debug updating best %d %f %d %f\n", | ||||
bestp, best, imp.members.item(p), x); */ | ||||
bestp = imp.members.item(p); | bestp = imp.members.item(p); | |||
best = x; | best = x; | |||
} | } | |||
} | } | |||
for (j=0; j<wgn_VertexTrack.num_channels(); j++) | for (j=0; j<wgn_VertexTrack.num_channels(); j++) | |||
{ | { | |||
s << "( "; | s << "( "; | |||
s << wgn_VertexTrack.a(bestp,j); | s << wgn_VertexTrack.a(bestp,j); | |||
// s << " 0 "; // fake stddev | // s << " 0 "; // fake stddev | |||
s << " "; | s << " "; | |||
End of changes. 5 change blocks. | ||||
6 lines changed or deleted | 8 lines changed or added |