summaryrefslogtreecommitdiff
path: root/libs/qm-dsp/dsp/segmentation/ClusterMeltSegmenter.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/qm-dsp/dsp/segmentation/ClusterMeltSegmenter.h')
-rw-r--r--libs/qm-dsp/dsp/segmentation/ClusterMeltSegmenter.h109
1 files changed, 0 insertions, 109 deletions
diff --git a/libs/qm-dsp/dsp/segmentation/ClusterMeltSegmenter.h b/libs/qm-dsp/dsp/segmentation/ClusterMeltSegmenter.h
deleted file mode 100644
index 327a25f073..0000000000
--- a/libs/qm-dsp/dsp/segmentation/ClusterMeltSegmenter.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- * ClusterMeltSegmenter.h
- *
- * Created by Mark Levy on 23/03/2006.
- * Copyright 2006 Centre for Digital Music, Queen Mary, University of London.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version. See the file
- COPYING included with this distribution for more information.
- */
-
-#include <vector>
-
-#include "segment.h"
-#include "Segmenter.h"
-#include "hmm/hmm.h"
-#include "base/Window.h"
-
-using std::vector;
-
-class Decimator;
-class ConstantQ;
-class MFCC;
-class FFTReal;
-
-class ClusterMeltSegmenterParams
-// defaults are sensible for 11025Hz with 0.2 second hopsize
-{
-public:
- ClusterMeltSegmenterParams() :
- featureType(FEATURE_TYPE_CONSTQ),
- hopSize(0.2),
- windowSize(0.6),
- fmin(62),
- fmax(16000),
- nbins(8),
- ncomponents(20),
- nHMMStates(40),
- nclusters(10),
- histogramLength(15),
- neighbourhoodLimit(20) { }
- feature_types featureType;
- double hopSize; // in secs
- double windowSize; // in secs
- int fmin;
- int fmax;
- int nbins;
- int ncomponents;
- int nHMMStates;
- int nclusters;
- int histogramLength;
- int neighbourhoodLimit;
-};
-
-class ClusterMeltSegmenter : public Segmenter
-{
-public:
- ClusterMeltSegmenter(ClusterMeltSegmenterParams params);
- virtual ~ClusterMeltSegmenter();
- virtual void initialise(int samplerate);
- virtual int getWindowsize();
- virtual int getHopsize();
- virtual void extractFeatures(const double* samples, int nsamples);
- void setFeatures(const vector<vector<double> >& f); // provide the features yourself
- virtual void segment(); // segment into default number of segment-types
- void segment(int m); // segment into m segment-types
- int getNSegmentTypes() { return nclusters; }
-
-protected:
- void makeSegmentation(int* q, int len);
-
- void extractFeaturesConstQ(const double *, int);
- void extractFeaturesMFCC(const double *, int);
-
- Window<double> *window;
- FFTReal *fft;
- ConstantQ* constq;
- MFCC* mfcc;
- model_t* model; // the HMM
- int* q; // the decoded HMM state sequence
- vector<vector<double> > histograms;
-
- feature_types featureType;
- double hopSize; // in seconds
- double windowSize; // in seconds
-
- // constant-Q parameters
- int fmin;
- int fmax;
- int nbins;
- int ncoeff;
-
- // PCA parameters
- int ncomponents;
-
- // HMM parameters
- int nHMMStates;
-
- // clustering parameters
- int nclusters;
- int histogramLength;
- int neighbourhoodLimit;
-
- Decimator *decimator;
-};