/usr/include/qm-dsp/dsp/segmentation/Segmenter.h is in libqm-dsp-dev 1.7.1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #ifndef _SEGMENTER_H
#define _SEGMENTER_H
/*
* Segmenter.h
* soundbite
*
* 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 <iostream>
using std::vector;
using std::ostream;
class Segment
{
public:
int start; // in samples
int end;
int type;
};
class Segmentation
{
public:
int nsegtypes; // number of segment types, so possible types are {0,1,...,nsegtypes-1}
int samplerate;
vector<Segment> segments;
};
ostream& operator<<(ostream& os, const Segmentation& s);
class Segmenter
{
public:
Segmenter() {}
virtual ~Segmenter() {}
virtual void initialise(int samplerate) = 0; // must be called before any other methods
virtual int getWindowsize() = 0; // required window size for calls to extractFeatures()
virtual int getHopsize() = 0; // required hop size for calls to extractFeatures()
virtual void extractFeatures(const double* samples, int nsamples) = 0;
virtual void segment() = 0; // call once all the features have been extracted
virtual void segment(int m) = 0; // specify desired number of segment-types
virtual void clear() { features.clear(); }
const Segmentation& getSegmentation() const { return segmentation; }
protected:
vector<vector<double> > features;
Segmentation segmentation;
int samplerate;
};
#endif
|