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

📄 segmentertests.java

📁 文本转换成语音tts
💻 JAVA
字号:
/** * Copyright 2001 Sun Microsystems, Inc. *  * See the file "license.terms" for information on usage and * redistribution of this file, and for a DISCLAIMER OF ALL  * WARRANTIES. */package tests;import java.io.PrintWriter;import java.util.StringTokenizer;import junit.framework.Test;import junit.framework.TestCase;import junit.framework.TestSuite;import com.sun.speech.freetts.Item;import com.sun.speech.freetts.ProcessException;import com.sun.speech.freetts.Relation;import com.sun.speech.freetts.Segmenter;import com.sun.speech.freetts.Utterance;import com.sun.speech.freetts.UtteranceProcessor;import com.sun.speech.freetts.Voice;import com.sun.speech.freetts.VoiceManager;/** * Tests for the Utterance class *  * @version 1.0 */public class SegmenterTests extends TestCase {    Voice voice;    Utterance utterance;    UtteranceProcessor wordSylSeg = new Segmenter();    /**     * JUnit style tests that test proper feature and relation     * behavior.     *      * @param  name the name of the test.     */    public SegmenterTests(String name) {	super(name);    }    /**     * given some text, create a word relation     * and the syllable relations that go with it.     *     * @param text the text to process     *     * @return the utterance     */    public Utterance  getSyllables(String text) {        VoiceManager voiceManager = VoiceManager.getInstance();        voice = voiceManager.getVoice("kevin");	voice.allocate();	utterance = new Utterance(voice);	Relation words = utterance.createRelation("Word");	StringTokenizer tok = new StringTokenizer(text);       while (tok.hasMoreTokens()) {	   Item word = words.appendItem();	   word.getFeatures().setString("name", tok.nextToken().toLowerCase());       }        try {	    wordSylSeg.processUtterance(utterance);	} catch (ProcessException pe) {	    System.out.println("Error processing " + text);	}	return utterance;    }     /**     * Tests simple syllable and segment behavior     */    public void testHowNowBrownCow() {	Utterance u = getSyllables("how now brown cowboy");	Relation segment = u.getRelation("Segment");	assertTrue("segment", segment != null);	assertTrue("Syllable", u.getRelation("Syllable") != null);	assertTrue("SylStructure", u.getRelation("SylStructure") != null);    }    /**     * Tests to see if the segment names are created properly, as well     * as the syllable structure is created properly.     */    public void testJanuary() {	Utterance u = getSyllables("january first two thousand and one");	Relation segment = u.getRelation("Segment");	assertTrue("segment", segment != null);	assertTrue("Syllable", u.getRelation("Syllable") != null);	assertTrue("SylStructure", u.getRelation("SylStructure") != null);	// tests the segment	//assertTrue("segment size", segment.getItems().size() == 26);	// spot check some segments	Item i = segment.getHead();	assertTrue("seg jh", i.toString().equals("jh"));	i = i.getNext();	assertTrue("seg ae", i.toString().equals("ae"));	i = i.getNext();	assertTrue("seg n",  i.toString().equals("n"));	i = i.getNext();	assertTrue("seg y",  i.toString().equals("y"));	i = i.getNext();	assertTrue("seg uw", i.toString().equals("uw"));	i = i.getNext();	assertTrue("seg eh", i.toString().equals("eh"));	i = i.getNext();	assertTrue("seg r",  i.toString().equals("r"));	i = i.getNext();	assertTrue("seg iy", i.toString().equals("iy"));	i = i.getNext();	assertTrue("seg f",  i.toString().equals("f"));	i = i.getNext();	assertTrue("seg er", i.toString().equals("er"));	i = i.getNext();	assertTrue("seg s",  i.toString().equals("s"));	i = i.getNext();	assertTrue("seg t",  i.toString().equals("t"));	i = i.getNext();	// spot check the SylStructure	Relation sylStructure = u.getRelation("SylStructure");	//assertTrue("sylStructure size", sylStructure.getItems().size() == 6);	Item si = sylStructure.getHead();	assertTrue("january", si.toString().equals("january"));	si = si.getNext();	assertTrue("first", si.toString().equals("first"));	si = si.getNext();	assertTrue("two", si.toString().equals("two"));	si = si.getNext();	assertTrue("thousand", si.toString().equals("thousand"));	si = si.getNext();	assertTrue("and", si.toString().equals("and"));	si = si.getNext();	assertTrue("one", si.toString().equals("one"));	si = si.getNext();	Item january = sylStructure.getHead();	assertTrue("findItem", january.findItem("R:Word").		toString().equals("january"));	assertTrue("findItem", january.findItem("R:Word.n").		toString().equals("first"));	assertTrue("findItem", january.findItem("R:Word.n.n").		toString().equals("two"));	assertTrue("findItem", january.findItem("R:Word.n.n.p").		toString().equals("first"));	PrintWriter pw = new PrintWriter(System.out);	january.findItem("daughter.daughter").dump(pw, 4, "dd");	assertTrue("findItem",		january.findItem("daughter.daughter").		toString().equals("jh"));	assertTrue("findItem",		january.findItem("daughter.daughter.n").		toString().equals("ae"));	assertTrue("findItem",		january.findItem("daughter.daughter.n.p").		toString().equals("jh"));	assertTrue("findItem",		january.findItem("daughter.daughtern").		toString().equals("n"));	assertTrue("findItem",		january.findItem("daughter.daughtern.parent.parent").		toString().equals("january"));	assertTrue("findItem",		january.findItem(	"daughter.daughtern.parent.parent.R:Word.R:SylStructure" +	".daughter.daughter.n").toString().equals("ae"));	assertTrue("findItem",		january.findItem("daughter.daughtern").		toString().equals("n"));	assertTrue("findFeature", january.findFeature("daughter.stress").		toString().equals("1"));	Item firstSyllable =  january.getDaughter();	/*	assertTrue("num seg in syl",		firstSyllable.getDaughters().size() == 3);	*/	Item l = firstSyllable.getDaughter();	assertTrue("syl jh", l.toString().equals("jh"));	l = l.getNext();	assertTrue("syl ae", l.toString().equals("ae"));	l = l.getNext();	assertTrue("syl n", l.toString().equals("n"));	l = l.getNext();    }    /**     * Factory method that creates the test suite.     *      * @return the test suite.     */    public static Test suite() {	return new TestSuite(SegmenterTests.class);    }     /**     * Main entry point for this test suite.     *      * @param  args    the command line arguments.     */    public static void main(String[] args) {	// String inputText = "for score and seven years ago";	String inputText = "january first two thousand and one";	if (args.length > 0) {	    inputText = args[0];	}	SegmenterTests wsst = new SegmenterTests("tests");	Utterance t1 = wsst.getSyllables( inputText);	t1.dump("t1");    } }

⌨️ 快捷键说明

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