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

📄 pausegenerator.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.en;import com.sun.speech.freetts.UtteranceProcessor;import com.sun.speech.freetts.Utterance;import com.sun.speech.freetts.FeatureSet;import com.sun.speech.freetts.Item;import com.sun.speech.freetts.Relation;import com.sun.speech.freetts.PathExtractorImpl;import com.sun.speech.freetts.PathExtractor;import com.sun.speech.freetts.ProcessException;import com.sun.speech.freetts.Voice;import java.io.BufferedInputStream;import java.io.InputStream;import java.io.FileInputStream;import java.io.IOException;import java.util.List;import java.util.LinkedList;import java.util.Iterator;/** * Annotates an utterance with pause information. */public class PauseGenerator implements UtteranceProcessor {    private final static PathExtractor segmentPath = new      PathExtractorImpl("R:SylStructure.daughtern.daughtern.R:Segment", false);    private final static PathExtractor puncPath =      new PathExtractorImpl("R:Token.parent.punc", true);    /**     * Constructs a PauseGenerator     */     public PauseGenerator() {     }    /**     * Annotates an utterance with pause information.     *     * @param  utterance  the utterance to process     *     * @throws ProcessException if an error occurs while     *         processing of the utterance     */    public void processUtterance(Utterance utterance) throws ProcessException {	String silence = utterance.getVoice().getFeatures().	    	getString(Voice.FEATURE_SILENCE);	Item phraseHead = utterance.getRelation(Relation.PHRASE).getHead();	// If there are not any phrases at all, then just skip	// the whole thing.	if (phraseHead == null) {	    return;	}	// insert initial silence	Relation segment = utterance.getRelation(Relation.SEGMENT);	Item s = segment.getHead();	if (s == null) {	    s = segment.appendItem(null);	} else {	   s = s.prependItem(null);	}	s.getFeatures().setString("name", silence);	for (Item phrase = phraseHead;		    phrase != null;		    phrase = phrase.getNext()) {	    Item word = phrase.getLastDaughter();	    while (word != null) {		Item seg = segmentPath.findItem(word);	    // was this an explicit change or a lost bug fix	    //if (seg != null && !"".equals(puncPath.findFeature(word))) {		if (seg != null) {		    Item pause = seg.appendItem(null);		    pause.getFeatures().setString("name", silence);		    break;		}		word = word.getPrevious();	    }	}    }    /**     * Returns the string representation of the object     *     * @return the string representation of the object     */    public String toString() {        return "PauseGenerator";    }}

⌨️ 快捷键说明

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