Package com.sun.speech.freetts.clunits

Source Code of com.sun.speech.freetts.clunits.ClusterUnitPitchmarkGenerator

/**
* Portions Copyright 2001 Sun Microsystems, Inc.
* Portions Copyright 1999-2001 Language Technologies Institute,
* Carnegie Mellon University.
* 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 com.sun.speech.freetts.clunits;

import com.sun.speech.freetts.Item;
import com.sun.speech.freetts.relp.LPCResult;
import com.sun.speech.freetts.UtteranceProcessor;
import com.sun.speech.freetts.Utterance;
import com.sun.speech.freetts.Relation;
import com.sun.speech.freetts.ProcessException;

import com.sun.speech.freetts.relp.SampleSet;

/**
*
* Calculates the pitchmarks. This class is an UtteranceProcessor that
* calculates target pitchmarks for the given utterance and adds the
* <i>target_lpcres</i> relation to the utterance with the pitchmark
* information.
*
* @see LPCResult
*/
public class ClusterUnitPitchmarkGenerator implements UtteranceProcessor {

    /**
     * Calculates the pitchmarks for the utterance and adds them as
     * an LPCResult to the Utterance in a relation named
     * "target_lpcres".
     *
     * @param utterance the utterance to process
     *
     * @see LPCResult
     *
     * @throws ProcessException if an error occurs while processing
     *     the utterance
     */
    public void processUtterance(Utterance utterance) throws ProcessException {
  LPCResult lpcResult;
  int pitchmarks = 0;
  int uttSize = 0;
  int unitEntry;
  int unitStart;
  int unitEnd;

  SampleSet sts = (SampleSet) utterance.getObject("sts_list");
  lpcResult = new LPCResult();

  for (Item unit = utterance.getRelation(Relation.UNIT).getHead();
    unit != null; unit = unit.getNext()) {
      unitEntry = unit.getFeatures().getInt("unit_entry");
      unitStart = unit.getFeatures().getInt("unit_start");
      unitEnd = unit.getFeatures().getInt("unit_end");
      uttSize += sts.getUnitSize(unitStart, unitEnd);
      pitchmarks += unitEnd - unitStart;
      unit.getFeatures().setInt("target_end", uttSize);
  }

  lpcResult.resizeFrames(pitchmarks);

  pitchmarks = 0;
  uttSize = 0;

  int[] targetTimes = lpcResult.getTimes();

  for (Item unit = utterance.getRelation(Relation.UNIT).getHead();
    unit != null; unit = unit.getNext()) {
      unitEntry = unit.getFeatures().getInt("unit_entry");
      unitStart = unit.getFeatures().getInt("unit_start");
      unitEnd = unit.getFeatures().getInt("unit_end");
      for (int i = unitStart; i < unitEnd; i++,pitchmarks++) {
    uttSize += sts.getSample(i).getResidualSize();
    targetTimes[pitchmarks] = uttSize;
      }
  }
  utterance.setObject("target_lpcres", lpcResult);
    }

    /**
     * Retrieves the name of this utteranceProcessor.
     *
     * @return the name of the utteranceProcessor
     */
    public String toString() {
  return "ClusterUnitPitchmarkGenerator";
    }
}
TOP

Related Classes of com.sun.speech.freetts.clunits.ClusterUnitPitchmarkGenerator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.