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

📄 emacspeakserver.java

📁 使用Exlipse编写的一个语音程序
💻 JAVA
字号:
/** * Copyright 2003 Sun Microsystems, Inc. *  * See the file "license.terms" for information on usage and * redistribution of this file, and for a DISCLAIMER OF ALL  * WARRANTIES. */import java.io.File;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;import java.util.Locale;import javax.speech.Central;import javax.speech.Engine;import javax.speech.EngineException;import javax.speech.synthesis.Synthesizer;import javax.speech.synthesis.SynthesizerModeDesc;import javax.speech.synthesis.SynthesizerProperties;import javax.speech.synthesis.Voice;/** * Provides text-to-speech server for Emacspeak. */public class EmacspeakServer extends TTSServer {    // synthesizer related variables    private Synthesizer synthesizer;    private String voiceName;    private Voice voice;    /**     * Constructs a EmacspeakServer.     */    public EmacspeakServer(String voiceName) {	loadSynthesizer(voiceName);    }    /**     * Creates and loads the synthesizer.     */    private void loadSynthesizer(String voiceName) {        voice = new Voice(voiceName, 			  Voice.GENDER_DONT_CARE, 			  Voice.AGE_DONT_CARE, 			  null);	SynthesizerModeDesc modeDesc = new SynthesizerModeDesc(	    null, "general", Locale.US, null, null);	try {	    synthesizer = Central.createSynthesizer(modeDesc);	    if (synthesizer == null) {		System.err.println(noSynthesizerMessage());		System.exit(1);	    }	    synthesizer.allocate();	    synthesizer.resume();	    synthesizer.getSynthesizerProperties().setVolume(1.0f);	    synthesizer.getSynthesizerProperties().setVoice(voice);	} catch (Exception e) {	    System.out.println("Error creating synthesizer");	    System.exit(1);	}    }    /**     * Returns a "no synthesizer" message, and asks      * the user to check if the "speech.properties" file is     * at <code>user.home</code> or <code>java.home/lib</code>.     *     * @return a no synthesizer message     */    static private String noSynthesizerMessage() {        String message =            "No synthesizer created.  This may be the result of any\n" +            "number of problems.  It's typically due to a missing\n" +            "\"speech.properties\" file that should be at either of\n" +            "these locations: \n\n";        message += "user.home    : " + System.getProperty("user.home") + "\n";        message += "java.home/lib: " + System.getProperty("java.home") +	    File.separator + "lib\n\n" +            "Another cause of this problem might be corrupt or missing\n" +            "voice jar files in the freetts lib directory.  This problem\n" +            "also sometimes arises when the freetts.jar file is corrupt\n" +            "or missing.  Sorry about that.  Please check for these\n" +            "various conditions and then try again.\n";        return message;    }    /**     * Spawns a ProtocolHandler depending on the current protocol.     *     * @param socket the socket that the spawned protocol handler will use     */    protected void spawnProtocolHandler(Socket socket) {	try {	    JSAPIEmacspeakHandler handler =		new JSAPIEmacspeakHandler(socket, synthesizer);	    (new Thread(handler)).start();	} catch (Exception e) {	    e.printStackTrace();	}    }    /**     * Sets the speaking rate of the voice.     *     * @param wpm the speaking rate (words per minute)     */    public void setRate(float wpm) {        try {            synthesizer.getSynthesizerProperties().setSpeakingRate(wpm);        } catch (java.beans.PropertyVetoException e) {            // ignore and do nothing        }    }                /**     * Starts this TTS Server.     */    public static void main(String[] args) {        String voiceName = (args.length > 0)            ? args[0]            : "kevin16";                System.out.println();        System.out.println("Using voice: " + voiceName);        System.out.println();	EmacspeakServer server = new EmacspeakServer(voiceName);        if (args.length > 1) {            float wpm = Float.parseFloat(args[1]);            server.setRate(wpm);        }        	(new Thread(server)).start();    }}

⌨️ 快捷键说明

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