/*
* Copyright 1999-2002 Carnegie Mellon University.
* Portions Copyright 2002 Sun Microsystems, Inc.
* Portions Copyright 2002 Mitsubishi Electric Research Laboratories.
* All Rights Reserved. Use is subject to license terms.
*
* See the file "license.terms" for information on usage and
* redistribution of this file, and for a DISCLAIMER OF ALL
* WARRANTIES.
*
*/
package edu.cmu.sphinx.trainer;
import edu.cmu.sphinx.linguist.dictionary.Dictionary;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.logging.Logger;
/** Provides mechanism for handling a simple utterance. */
public class SimpleUtterance implements Utterance {
private String utteranceID;
private Collection<SimpleTranscript> transcriptSet;
private Iterator<SimpleTranscript> transcriptIterator;
/*
* The logger for this class
*/
private static Logger logger =
Logger.getLogger("edu.cmu.sphinx.trainer.SimpleUtterance");
/** Constructor for class SimpleUtterance. */
public SimpleUtterance() {
transcriptSet = new LinkedList<SimpleTranscript>();
}
/**
* Constructor for class SimpleUtterance.
*
* @param utteranceID the utterance ID, usually a file name.
*/
public SimpleUtterance(String utteranceID) {
logger.info("Utterance ID: " + utteranceID);
this.utteranceID = utteranceID;
this.transcriptSet = new LinkedList<SimpleTranscript>();
}
/**
* Add transcript with dictionary and exact flag.
*
* @param transcript the transcript
* @param dictionary the default dictionary name
* @param isExact the default flag
* @param wordSeparator the word separator characters
*/
public void add(String transcript, Dictionary dictionary,
boolean isExact, String wordSeparator) {
logger.info("Transcript: " + transcript);
transcriptSet.add(new SimpleTranscript(transcript, dictionary,
isExact, wordSeparator));
}
/**
* Starts the transcript iterator.
*/
public void startTranscriptIterator() {
transcriptIterator = transcriptSet.iterator();
}
/**
* Returns whether there is a next transcript.
*
* @return true if there are more transcrips.
*/
public boolean hasMoreTranscripts() {
return transcriptIterator.hasNext();
}
/**
* Gets next transcript.
*
* @return the next Trasncript.
*/
public Transcript nextTranscript() {
return transcriptIterator.next();
}
/**
* Returns a string representation of this utterance.
*
* @return the string representation.
*/
@Override
public String toString() {
return utteranceID;
}
}