package edu.cmu.sphinx.decoder.scorer;
import edu.cmu.sphinx.util.props.Configurable;
import java.util.List;
/**
* Describes all API-elements that are necessary to normalize token-scores after these have been computed by an
* AcousticScorer.
*
* @author Holger Brandl
* @see edu.cmu.sphinx.decoder.scorer.AcousticScorer
* @see edu.cmu.sphinx.decoder.search.Token
*/
public interface ScoreNormalizer extends Configurable {
/**
* Normalizes the scores of a set of Tokens.
*
* @param scoreableList The set of scores to be normalized
* @param bestToken The best scoring Token of the above mentioned list. Although not strictly necessary it's
* included because of convenience reasons and to reduce computational overhead.
* @return The best token after the all <code>Token</code>s have been normalized. In most cases normalization won't
* change the order but to keep the API open for any kind of approach it seemed reasonable to include this.
*/
Scoreable normalize(List<? extends Scoreable> scoreableList, Scoreable bestToken);
}