package com.tlabs.speechalyzer;
import org.apache.log4j.Logger;
import com.felix.util.KeyValues;
import com.tlabs.speechalyzer.classifier.IClassifier;
import com.tlabs.speechalyzer.featureextract.IExtractor;
/**
* read a stream from client and write it to a _file.
*
* @version 1.0
* @author Felix Burkhardt
*/
class TrainThread extends Thread {
private IExtractor _featExtractor;
private IClassifier _classifier;
private AudioFileManager _afm;
private Logger _logger;
private KeyValues _config;
private boolean _extract=true;
private boolean _isRunning=false;
public TrainThread(IExtractor featExtractor, IClassifier classifier,
AudioFileManager afm, KeyValues config, boolean extract) {
super();
_logger = Logger.getLogger("com.tlabs.speechalyzer.TrainThread");
_featExtractor = featExtractor;
_classifier = classifier;
_afm = afm;
_config = config;
_extract = extract;
}
/**
* called by thread.start().
*/
public void run() {
_isRunning = true;
if (_extract){
_logger.info("extracting features with "+_featExtractor.getInfo()+"....");
_featExtractor.extractAllFeatures(_afm, _config.getBool("additiveTraining"));
} else {
_logger.info("skipping feature extraction");
}
_logger.info("training model with "+_classifier.getInfo()+"....");
_classifier.trainModel();
_isRunning=false;
}
public boolean isRunning() {
return _isRunning;
}
}