本文整理汇总了C++中XLine::addElement方法的典型用法代码示例。如果您正苦于以下问题:C++ XLine::addElement方法的具体用法?C++ XLine::addElement怎么用?C++ XLine::addElement使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XLine
的用法示例。
在下文中一共展示了XLine::addElement方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
FactorAnalysisStat::FactorAnalysisStat(String & featFilename,FeatureServer & fs,Config & config):_ms(config),_ss(config){ // constructor for a single file
XList faNdx;
XLine featLine;
featLine.addElement(featFilename);
faNdx.addLine()=featLine;
_init(faNdx,fs,config);
}
示例2: saveApost
int saveApost(Config &config)
{
bool writeAllFeature=true; // Output a vector for all input vectors (selected and not selected vectors) - DEFAULT=on
if (config.existsParam("writeAllFeatures")) writeAllFeature=config.getParam("writeAllFeatures").toBool(); // Define if all the feature (selected or not) should be written
String modelname = config.getParam("inputModelFilename");
String inputFeatureFileName =config.getParam("inputFeatureFilename"); // input feature - could be a simple feature file or a list of filenames
XLine inputFeatureFileNameList; // The (feature) input filename list
if (inputFeatureFileName.endsWith(".lst")){ // If the file parameter is the name of a XList file
XList inputFileNameXList(inputFeatureFileName,config); // Read the filename list file
inputFeatureFileNameList=inputFileNameXList.getAllElements(); // And put the filename in a list if the file is a list of feature filenames
}
else { // It was a simple feature file and not a filename list
inputFeatureFileNameList.addElement(inputFeatureFileName); // add the filename in the list
}
try{
// read UBM
MixtureServer _ms(config);
StatServer _ss(config);
_ms.loadMixtureGD(config.getParam("inputWorldFilename"));
MixtureGD & UBM=_ms.getMixtureGD((unsigned long) 0);
MixtureGDStat &acc=_ss.createAndStoreMixtureStat(UBM);
unsigned long _vsize=UBM.getVectSize();
unsigned long _mixsize=UBM.getDistribCount();
// Loop over the list of feature files
String *file;
String labelSelectedFrames;
unsigned long codeSelectedFrame;
while ((file=inputFeatureFileNameList.getElement())!= NULL){
String & featureFilename=(*file);
FeatureServer fs(config,featureFilename);
FeatureServer fs_out(config,featureFilename);
SegServer segmentsServer;
LabelServer labelServer;
initializeClusters(featureFilename,segmentsServer,labelServer,config);
verifyClusterFile(segmentsServer,fs,config);
labelSelectedFrames=config.getParam("labelSelectedFrames");
codeSelectedFrame=labelServer.getLabelIndexByString(labelSelectedFrames);
SegCluster& selectedSegments=segmentsServer.getCluster(codeSelectedFrame);
// Compute Occupations and Statistics
acc.resetOcc();
Seg *seg;
selectedSegments.rewind();
String currentSource="";
while((seg=selectedSegments.getSeg())!=NULL){
unsigned long begin=seg->begin()+fs.getFirstFeatureIndexOfASource(seg->sourceName()); // Idx of the first frame of the current file in the feature server
if (currentSource!=seg->sourceName()) {
currentSource=seg->sourceName();
if (verbose)cout << "Processing speaker["<<currentSource<<"]"<< endl;
}
fs.seekFeature(begin);
Feature f;
for (unsigned long idxFrame=0;idxFrame<seg->length();idxFrame++){
fs.readFeature(f);
acc.computeAndAccumulateOcc(f);
RealVector <double> aPost=acc.getOccVect();
Feature tmpF;
for(unsigned long k=0;k<_mixsize;k++) {
tmpF[k]=aPost[k];
}
fs_out.addFeature(f);
}
}
// Writing apost probabilities to file
cout << "Writing to: " << featureFilename << endl;
FeatureFileWriter w(featureFilename, config); // build a featurefile writer to output the features (real features)
SegServer fakeSegServer;
if (writeAllFeature) { // Output all the features- feature count id the same SegServer fakeSegServer; // Create a new fake segment server
fakeSegServer.createCluster(0); // Create a new cluster
SegCluster& fakeSeg=fakeSegServer.getCluster(0); // Get the cluster
fakeSeg.add(fakeSegServer.createSeg(0,fs_out.getFeatureCount(),codeSelectedFrame, labelSelectedFrames,featureFilename)); // Add a segment with all the features
outputFeatureFile(config,fs_out,fakeSeg,w); // output all the features - giving the same file length
}
else
outputFeatureFile(config,fs_out,selectedSegments, w); // Output only the selected features - giving a shorter output
}
}
catch (Exception& e){cout << e.toString().c_str() << endl;}
return 0;
}
示例3: labelNGram
//-------------------------------------------------------------------------
int labelNGram(Config& config)
{
if (config.existsParam("debug"))debug=true; else debug=false;
if (config.existsParam("verbose"))verbose=true; else verbose=false;
String extOutputLabel=".sym.lbl"; // the extension of the output files
if (config.existsParam("saveLabelFileExtension")) extOutputLabel=config.getParam("saveLabelFileExtension");
String pathOutput="./"; // the path of the output files
if (config.existsParam("labelOutputPath")) pathOutput=config.getParam("labelOutputPath");
String extSymbol=".sym"; // the extension of the symbol files
if (config.existsParam("symbolFileExtension")) extSymbol=config.getParam("symbolFileExtension");
String pathSymbol="./";
if (config.existsParam("symbolPath")) pathSymbol=config.getParam("symbolPath");
String formatSymbol="ascii";
if (config.existsParam("symbolFormat")) pathSymbol=config.getParam("symbolFormat");
String NGramFilename=config.getParam("NGramFilename");
unsigned long NGramOrder=3;
if (config.existsParam("NGramOrder")) NGramOrder=config.getParam("NGramOrder").toLong();
unsigned long NGramSelected=16;
if (config.existsParam("NGramSelected")) NGramSelected=config.getParam("NGramSelected").toLong();
NGram NGramTable(NGramOrder,NGramSelected);
NGramTable.load(NGramFilename,config); // Load the NGRAM table, selecting the NGramSelected first
String inputFilename=config.getParam("inputFilename");
String labelSelectedFrames=config.getParam("labelSelectedFrames");
XLine inputFileList;
try{
if (inputFilename.endsWith(".lst")){ // input is file containing a list of filenames
XList tmp(inputFilename,config);
inputFileList=tmp.getAllElements();
}
else inputFileList.addElement(inputFilename); // a single filename
String *p;
while ((p=inputFileList.getElement())){
String& filename=*p;
if (verbose)
cout <<"labelNGram file["<<filename<<"] Table["<<NGramFilename<<"] Order["<<NGramOrder<<"] Selected["<<NGramSelected<<"]"<<endl;
SegServer segServer;
LabelServer labelServer;
loadClusterFile(filename,segServer,labelServer,config);
long codeSelectedFrame=labelServer.getLabelIndexByString(labelSelectedFrames); // Get the index of the selected cluster
if (codeSelectedFrame==-1){ // No data for this model !!!!!!!!!!!!!!
cout << " WARNING - NO DATA with the label["<<labelSelectedFrames<<"] in file ["<<filename<<"]"<<endl;
exit(0);
}
SegCluster& cluster=segServer.getCluster(codeSelectedFrame); // Gives the cluster of the selected/used segments
ULongVector tabS;
unsigned long nbSym=loadSymbol(pathSymbol+filename+extSymbol,formatSymbol,tabS,config); // Read the stream of symbols
SegServer segServerOutput;
SegCluster& clusterOut=segServerOutput.createCluster(0,labelSelectedFrames,cluster.sourceName());
//
computeLabelNGram(NGramTable,cluster,clusterOut,tabS,nbSym);
//
if (verbose){
cout <<"File["<<filename<<"]" <<endl;
cout << "Output the new label file in ["<<pathOutput+filename+extOutputLabel <<"]"<<endl;
}
outputLabelFile(clusterOut,pathOutput+filename+extOutputLabel,config);
} // end file loop
} // fin try
catch (Exception& e)
{
cout << e.toString().c_str() << endl;
}
return 0;
}