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

📄 germanlexicon.java

📁 这是java 开发的的免费语音播放插件,很值得学习参考!!!!!!!!!!!!111
💻 JAVA
字号:
/** * Portions Copyright 2004 DFKI GmbH. * 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 de.dfki.lt.freetts.de;import java.util.List;import java.io.InputStream;import java.io.InputStreamReader;import java.io.IOException;import java.io.FileInputStream;import java.net.URL;import com.sun.speech.freetts.lexicon.LetterToSound;import com.sun.speech.freetts.lexicon.LexiconImpl;import com.sun.speech.freetts.util.BulkTimer;import com.sun.speech.freetts.VoiceManager;/** * Provides a CMU lexicon-specific implementation of a Lexicon that is * stored in a text file. */public class GermanLexicon extends LexiconImpl {        /**     * Creates a GermanLexicon based upon the given compiled and addenda     * DBs and the given letter to sound rules     *     * @param compiledURL the compiled database is loaded from here     * @param addendaURL the database addenda is loaded from here     * @param letterToSoundURL the letter to sound rules are loaded     * 		from here     * @param binary if <code>true</code> the input data are loaded as     * 		binary ; otherwise if <code>false</code> the input     * 		data are loaded as text.     *     */    public GermanLexicon(URL compiledURL,                       URL addendaURL,                       URL  letterToSoundURL,		       boolean binary) {        setLexiconParameters(compiledURL, addendaURL, letterToSoundURL, binary);    }    /**     * Creates the default CMU Lexicon which is a binary lexicon     */    public GermanLexicon() {	this("germanlex");    }    /**     * Creates the CMU Lexicon which is a binary lexicon     *     * @param basename the basename for the lexicon.     */    public GermanLexicon(String basename) {        this(basename, true);    }    public GermanLexicon(String basename, boolean useBinaryIO) {        java.net.URLClassLoader classLoader =                VoiceManager.getVoiceClassLoader();        String type = (useBinaryIO ? "bin" : "txt");        URL letterToSoundURL = classLoader.getResource(                "de/dfki/lt/freetts/de/" + basename + "_lts." + type);        URL compiledURL = classLoader.getResource(                "de/dfki/lt/freetts/de/" + basename                + "_compiled." + type);        URL addendaURL = classLoader.getResource(                "de/dfki/lt/freetts/de/" + basename                + "_addenda." + type);        /* Just another try with possibly a different class loader         * if the above didn't work.         */        if (letterToSoundURL == null) {            Class cls = GermanLexicon.class;            letterToSoundURL = cls.getResource(basename + "_lts." + type);            compiledURL = cls.getResource(basename + "_compiled." + type);            addendaURL = cls.getResource(basename + "_addenda." + type);            if (letterToSoundURL == null) {                System.err.println(                    "GermanLexicon: Oh no!  Couldn't find lexicon data!");            }        }        	setLexiconParameters(compiledURL, addendaURL,                letterToSoundURL, useBinaryIO);    }        /**     * Get the GermanLexicon.     *     * @param useBinaryIO if true use binary IO to load DB     *     * @throws IOException if problems occurred while reading the data     */     static public GermanLexicon getInstance( boolean useBinaryIO) 						throws IOException {	return getInstance("dummylex", useBinaryIO);    }    /**     * Get the GermanLexicon.     *     * @param useBinaryIO if true use binary IO to load DB     *     * @throws IOException if problems occurred while reading the data     */     static public GermanLexicon getInstance( String basename, boolean useBinaryIO) 						throws IOException {	GermanLexicon lexicon = new GermanLexicon(basename, useBinaryIO);	lexicon.load();        return lexicon;    }    /**     * Determines if the currentPhone represents a new syllable     * boundary.     *     * @param syllablePhones the phones in the current syllable so far     * @param wordPhones the phones for the whole word     * @param currentWordPhone the word phone in question     *     * @return <code>true</code> if the word phone in question is on a     *     syllable boundary; otherwise <code>false</code>.     */    public boolean isSyllableBoundary(List syllablePhones,                                      String[] wordPhones,                                      int currentWordPhone) {        return false;    }    /**     * Provides test code for the GermanLexicon.     * <br><b>Usage:</b><br>     * <pre>     *  de.dfki.lt.freetts.de.GermanLexicon [options]     *     * Where options is any combination of:     *     * -src path     * -dest path     * -generate_binary [base_name]     * -compare     * -showtimes     *     * </pre>     */    public static void main(String[] args) {	LexiconImpl lex, lex2;	boolean showTimes = false;        String srcPath = ".";        String destPath = ".";	String baseName = "germanlex";	try {	    if (args.length > 0) {		BulkTimer.LOAD.start();		for (int i = 0 ; i < args.length; i++) {                    if (args[i].equals("-src")) {                        srcPath = args[++i];                    } else if (args[i].equals("-dest")) {                        destPath = args[++i];		    } else if (args[i].equals("-name")                               && i < args.length - 1) {			baseName = args[++i];		    } else if (args[i].equals("-generate_binary")) {			 System.out.println("Loading " + baseName);                         String path = "file:" + srcPath + "/" + baseName;                         lex = new GermanLexicon(                             new URL(path + "_compiled.txt"),                             new URL(path + "_addenda.txt"),                             new URL(path + "_lts.txt"),                             false);			 BulkTimer.LOAD.start("load_text");                         lex.load();			 BulkTimer.LOAD.stop("load_text");			 System.out.println("Dumping " + baseName);			 BulkTimer.LOAD.start("dump_text");			 lex.dumpBinary(destPath + "/" + baseName);			 BulkTimer.LOAD.stop("dump_text");		    } else if (args[i].equals("-compare")) {			BulkTimer.LOAD.start("load_text");			lex = GermanLexicon.getInstance(baseName, false);			BulkTimer.LOAD.stop("load_text");			BulkTimer.LOAD.start("load_binary");			lex2 = GermanLexicon.getInstance(baseName, true);			BulkTimer.LOAD.stop("load_binary");			BulkTimer.LOAD.start("compare");			lex.compare(lex2);			BulkTimer.LOAD.stop("compare");		    } else if (args[i].equals("-showtimes")) {			showTimes = true;		    } else {			System.out.println("Unknown option " + args[i]);		    }		}		BulkTimer.LOAD.stop();		if (showTimes) {		    BulkTimer.LOAD.show("GermanLexicon loading and dumping");		}	    } else {		System.out.println("Options: ");		System.out.println("    -src path");		System.out.println("    -dest path");		System.out.println("    -compare");		System.out.println("    -generate_binary");		System.out.println("    -showtimes");	    }	} catch (IOException ioe) {	    System.err.println(ioe);	}    }}

⌨️ 快捷键说明

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