/*
* 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.linguist.acoustic;
import edu.cmu.sphinx.frontend.Data;
import edu.cmu.sphinx.linguist.acoustic.tiedstate.MixtureComponent;
/** Represents a single state in an HMM */
public interface HMMState {
/**
* Gets the HMM associated with this state
*
* @return the HMM
*/
public HMM getHMM();
/**
* Returns the mixture components associated with this Gaussian
*
* @return the array of mixture components
*/
public MixtureComponent[] getMixtureComponents();
/**
* Gets the id of the mixture
*
* @return the id
*/
public long getMixtureId();
/**
*
* @return the mixture weights vector
*/
public float[] getLogMixtureWeights();
/**
* Gets the state
*
* @return the state
*/
public int getState();
/**
* Gets the score for this HMM state
*
* @param data the data to be scored
* @return the acoustic score for this state.
*/
public float getScore(Data data);
public float[] calculateComponentScore(Data data);
/**
* Determines if this HMMState is an emitting state
*
* @return true if the state is an emitting state
*/
public boolean isEmitting();
/**
* Retrieves the state of successor states for this state
*
* @return the set of successor state arcs
*/
public HMMStateArc[] getSuccessors();
/**
* Determines if this state is an exit state of the HMM
*
* @return true if the state is an exit state
*/
public boolean isExitState();
}