⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 segmentrelationutils.java

📁 这是java 开发的的免费语音播放插件,很值得学习参考!!!!!!!!!!!!111
💻 JAVA
字号:
/** * 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.util;import com.sun.speech.freetts.FeatureSet;import com.sun.speech.freetts.Item;import com.sun.speech.freetts.Relation;/** * Provides a set of utilities for the SegmentRelation. A  * SegmentRelation is a Relation, but has * features specific to Segments. */public class SegmentRelationUtils {    /**     * Returns the Item in the Segment Relation that corresponds to the given     * time.     *     * @param segmentRelation the segmentRelation of interest     * @param time the time     */    public static Item getItem(Relation segmentRelation, float time) {	Item lastSegment = segmentRelation.getTail();		// if given time is closer to the front than the end, search from	// the front; otherwise, start search from end	// this might not be the best strategy though	float lastSegmentEndTime = SegmentRelationUtils.getSegmentEnd	    (lastSegment);		if (time < 0 || lastSegmentEndTime < time) {	    return null;	} else if (lastSegmentEndTime - time > time) {	    return SegmentRelationUtils.findFromFront(segmentRelation, time);	} else {	    return SegmentRelationUtils.findFromEnd(segmentRelation, time);	}    }    /**     * Returns the value of the feature <code>end</code> of     * the given Segment Item.     *     * @param segment the Segment Item     *     * @return the <code>end</code> feature of the Segment     */    public static float getSegmentEnd(Item segment) {	FeatureSet segmentFeatureSet = segment.getFeatures();	return segmentFeatureSet.getFloat("end");    }        /**     * Starting from the front of the given Segment Relation, finds the Item     * that corresponds to the given time.     *     * @param segmentRelation the Segment Relation to search     * @param time the time of the Segment Item     *     * @return the Segment Item     */    public static Item findFromFront(Relation segmentRelation, float time) {	Item item = segmentRelation.getHead();	while (item != null &&	       time > SegmentRelationUtils.getSegmentEnd(item)) {	    item = item.getNext();	}	return item;    }        /**     * Starting from the end of the given Segment Relation, go backwards     * to find the Item that corresponds to the given time.     *     * @param segmentRelation the Segment Relation to search     * @param time the time of the Segment Item     *     * @return the Segment Item     */    public static Item findFromEnd(Relation segmentRelation, float time) {	Item item = segmentRelation.getTail();			while (item != null &&	       SegmentRelationUtils.getSegmentEnd(item) > time) {	    item = item.getPrevious();	}	if (item != segmentRelation.getTail()) {	    item = item.getNext();	}	return item;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -