📄 segmentertests.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 + -