features[i][ncoeff] = env;
if (env > maxenv)
maxenv = env;
- }
+ }
/* normalise the envelopes */
for (i = 0; i < nframes; i++)
features[i][ncoeff] /= maxenv;
int i, j, t;
double norm;
- for (i = 0; i < nx*m; i++)
+ for (i = 0; i < nx*m; i++)
h[i] = 0;
for (i = hlen/2; i < nx-hlen/2; i++)
}
/* segment using HMM and then histogram clustering */
-void cluster_segment(int* q, double** features, int frames_read, int feature_length, int nHMM_states,
+void cluster_segment(int* q, double** features, int frames_read, int feature_length, int nHMM_states,
int histogram_length, int nclusters, int neighbour_limit)
{
int i, j;
maxval = 0;
for (j = 0; j < feature_length; j++)
{
- if (features[i][j] > maxval)
+ if (features[i][j] > maxval)
{
maxval = features[i][j];
maxbin = j;
hmm_print(model);
*/
/* decode the hidden state sequence */
- viterbi_decode(features, frames_read, model, q);
+ viterbi_decode(features, frames_read, model, q);
hmm_close(model);
/*****************************/
}
/*****************************/
-
+
/*
fprintf(stderr, "HMM state sequence:\n");
for (i = 0; i < frames_read; i++)
/* now q holds a sequence of cluster assignments */
- free(h);
+ free(h);
free(bsched);
}
/* segment constant-Q or chroma features */
-void constq_segment(int* q, double** features, int frames_read, int bins, int ncoeff, int feature_type,
+void constq_segment(int* q, double** features, int frames_read, int bins, int ncoeff, int feature_type,
int nHMM_states, int histogram_length, int nclusters, int neighbour_limit)
{
int feature_length;