Segmenter Class Reference
This class can determine which cluster a certain stream of feature vectors is closest to. The class Train_Segmenter can train these clusters. More...

Public Member Functions | |
Segmenter () | |
Segmenter (FILE *inFile) | |
~Segmenter () | |
float | segmentFeaturePool (int inputSegID, int inputLabelID, int outputSegID) |
void | setFeaturePool (FeaturePool *fp) |
int | getNumberOfModels () const |
Protected Member Functions | |
void | createLexicalTree (int minNumberOfFrames, int *forEachFrames1=NULL, double *forEachFrames2=NULL) |
float | createSegments (int segID, SegmentationAdmin *admin) |
Protected Attributes | |
int | numberOfClusters |
FeaturePool * | featurePool |
Vector ** | discrTrain |
Vector ** | discrTrainMask |
int | discrTrainLen |
Detailed Description
This class can determine which cluster a certain stream of feature vectors is closest to. The class Train_Segmenter can train these clusters.Constructor & Destructor Documentation
Segmenter::Segmenter | ( | ) |
This constructor initialises the cluster parameters and sets the LexicalTree parameters for speaker clustering (defined in standard.h).
References discrTrain, discrTrainMask, numberOfClusters, LexicalTree::overwritePrunePars(), and LexicalTree::overwriteWeightPars().

Segmenter::Segmenter | ( | FILE * | inFile | ) |
This constructor initialises the cluster parameters and sets the LexicalTree parameters for speaker clustering (defined in standard.h). It also loads an existing clustering from inFile.
References discrTrain, discrTrainMask, WriteFileLittleBigEndian::freadEndianSafe(), numberOfClusters, LexicalTree::numberOfPhones, LexicalTree::overwritePrunePars(), LexicalTree::overwriteWeightPars(), and LexicalTree::phoneModels.

Segmenter::~Segmenter | ( | ) |
The destructor clears any used memory.
References discrTrain, discrTrainLen, discrTrainMask, LexicalTree::numberOfPhones, and LexicalTree::phoneModels.
Member Function Documentation
void Segmenter::createLexicalTree | ( | int | minNumberOfFrames, | |
int * | forEachFrames1 = NULL , |
|||
double * | forEachFrames2 = NULL | |||
) | [protected] |
Given the current number of models, create the lexical tree that will be used to align the data.
References LexicalNode::compressedTreeIndex, LexicalNode::contextKey, LexicalNode::contextNext, LexicalNode::contextPrev, LexicalTree::currentlyAligning, LexicalTree::deleteTree(), LexicalNode::depth, LexicalTree::endOfSentenceWord, LexicalTree::grammarStart, LexicalTree::initialiseSystem(), LexicalNode::inputToken, LexicalNode::modelID, LexicalNode::next, LexicalNode::nextTree, LexicalTree::numberOfPhones, LexicalNode::parallel, LexicalTree::phoneModels, PhoneModel::resetPhoneAdmin(), PhoneModel::setSilTrans(), LexicalTree::startOfSentenceWord, LexicalNode::tokenSeq, LexicalNode::tokenSeqLength, and LexicalNode::wordID.
Referenced by Train_Segmenter::createOverlapTree(), Train_Segmenter::getOverlap(), ShoutSegment::ShoutSegment(), and Train_Segmenter::train().

float Segmenter::createSegments | ( | int | segID, | |
SegmentationAdmin * | admin | |||
) | [protected] |
Uses decode result to create some segments, (part of) the pool should have been processed.
References FeaturePool::addSegment(), FeaturePool::addSegmentToFront(), featurePool, LexicalTree::findBestToken(), FeaturePool::getCurSegmentLen(), LexicalTree::grammarStart, WLRType::isSil, TokenType::likelihood, WLRType::lmHistory, LexicalNode::modelID, LexicalNode::parallel, TokenType::path, WLRType::previous, WLRType::timeStamp, and LexicalNode::tokenSeq.
Referenced by segmentFeaturePool().

int Segmenter::getNumberOfModels | ( | ) | const [inline] |
References numberOfClusters.
float Segmenter::segmentFeaturePool | ( | int | inputSegID, | |
int | inputLabelID, | |||
int | outputSegID | |||
) |
Given the current feature pool and input segmentation and label to use, a new output segmentation is created. If the inputSegID is smaller than zero, the entire featurePool is used as one segment. If inputLabelID is smaller than zero, all labels in the input segmentation are used.
References FeaturePool::claimSegmentationID(), createSegments(), featurePool, FeaturePool::freeSegmentationID(), FeaturePool::getCurSegmentStart(), FeaturePool::getFirstVectorFirstSegmentList(), FeaturePool::getFirstVectorNextSegmentList(), FeaturePool::getNextVectorList(), FeaturePool::getVectorList(), LexicalTree::initialiseTree(), LexicalTree::processVector(), FeaturePool::resetSegmentation(), FeaturePool::segmentationIntersection(), and FeaturePool::startTimeStamp().
Referenced by ShoutSegment::doSAD_noGarbage(), Train_Segmenter::getOverlap(), Train_Segmenter::loadClusters(), Adapt_Segmenter::proceedMerge(), ShoutSegment::ShoutSegment(), Train_Segmenter::train(), and Train_Segmenter::trainIteration().

void Segmenter::setFeaturePool | ( | FeaturePool * | fp | ) |
Member Data Documentation
Vector** Segmenter::discrTrain [protected] |
Referenced by Segmenter(), Train_Segmenter::trainModel(), and ~Segmenter().
int Segmenter::discrTrainLen [protected] |
Referenced by ~Segmenter().
Vector** Segmenter::discrTrainMask [protected] |
Referenced by Segmenter(), Train_Segmenter::trainModel(), and ~Segmenter().
FeaturePool* Segmenter::featurePool [protected] |
Referenced by Train_Segmenter::createInitialModels(), createSegments(), Train_Segmenter::getMergeModelScore(), Train_Segmenter::getOverlap(), Train_Segmenter::loadClusters(), Train_Segmenter::mergeClusters(), Train_Segmenter::mergeModels(), Adapt_Segmenter::proceedMerge(), segmentFeaturePool(), setFeaturePool(), ShoutSegment::ShoutSegment(), Train_Segmenter::storeClusters(), Train_Segmenter::train(), Train_Segmenter::Train_Segmenter(), Train_Segmenter::trainIteration(), Train_Segmenter::trainModel(), Train_Segmenter::writePosteriors(), and Train_Segmenter::~Train_Segmenter().
int Segmenter::numberOfClusters [protected] |
Referenced by getNumberOfModels(), Train_Segmenter::loadClusters(), Train_Segmenter::mergeClusters(), Train_Segmenter::mergeModels(), Segmenter(), ShoutSegment::ShoutSegment(), Train_Segmenter::storeClusters(), Train_Segmenter::train(), Train_Segmenter::Train_Segmenter(), and Train_Segmenter::trainIteration().