/*
* 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.flat;
import edu.cmu.sphinx.linguist.WordSearchState;
import edu.cmu.sphinx.linguist.dictionary.Pronunciation;
/** Represents a pronunciation in an SentenceHMMS */
@SuppressWarnings("serial")
public class PronunciationState extends SentenceHMMState implements WordSearchState {
private final Pronunciation pronunciation;
/**
* Creates a PronunciationState
*
* @param parent the parent word of the current pronunciation
* @param which the pronunciation of interest
*/
public PronunciationState(WordState parent, int which) {
super("P", parent, which);
pronunciation = parent.getWord().getPronunciations()[which];
}
/**
* Creates a PronunciationState
*
* @param name the name of the pronunciation associated with this state
* @param p the pronunciation
* @param which the index for the pronunciation
*/
public PronunciationState(String name, Pronunciation p, int which) {
super(name, null, which);
pronunciation = p;
}
/**
* Gets the pronunciation associated with this state
*
* @return the pronunciation
*/
public Pronunciation getPronunciation() {
return pronunciation;
}
/**
* Retrieves a short label describing the type of this state. Typically, subclasses of SentenceHMMState will
* implement this method and return a short (5 chars or less) label
*
* @return the short label.
*/
@Override
public String getTypeLabel() {
return "Pron";
}
/**
* Returns the state order for this state type
*
* @return the state order
*/
@Override
public int getOrder() {
return 4;
}
/**
* Returns true if this PronunciationState indicates the start of a word. Returns false if this PronunciationState
* indicates the end of a word.
*
* @return true if this PronunciationState indicates the start of a word, false if this PronunciationState indicates
* the end of a word
*/
@Override
public boolean isWordStart() {
return true;
}
}