/* * 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.acoustic.Unit; /** * A unit state that modifies how the unit state is cached. Caching keys are generated from the full name for the * sentence hmm. The default behavior for the unit (and all sentence hmms) is to generate the full name by combining the * name for this unit with the name of the parent. For the simple linguist, this is undesirable, because there are many * different names for the parent pronunciations (differing contexts). We want to be able to combine units that have * identical names and context and are in the same position in the same pronunciation. By defining getFullName to * combine the name and the pronunciation index we allow units with identical contexts in the same position in a * pronunciation to be combined. */ @SuppressWarnings("serial") public class ExtendedUnitState extends UnitState { /** * Creates a UnitState. Gets the left and right contexts from the unit itself. * * @param parent the parent state * @param which the index of the given state * @param unit the unit associated with this state */ public ExtendedUnitState(PronunciationState parent, int which, Unit unit) { super(parent, which, unit); } /** * Gets the fullName for this state * * @return the full name for this state */ @Override public String getFullName() { return getName() + " in P" + getParent().getWhich(); } }