freettsemacspeakserver.java

来自「FreeTTS is a speech synthesis system wri」· Java 代码 · 共 100 行

JAVA
100
字号
/** * 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 com.sun.speech.freetts.ValidationException;import com.sun.speech.freetts.Validator;import com.sun.speech.freetts.Voice;import com.sun.speech.freetts.VoiceManager;import com.sun.speech.freetts.audio.JavaClipAudioPlayer;import com.sun.speech.freetts.audio.JavaStreamingAudioPlayer;import java.net.Socket;/** * Provides text-to-speech server for Emacspeak. */public class FreeTTSEmacspeakServer extends TTSServer {    private Voice emacsVoice;        /**     * Constructs a EmacspeakServer.     */    public FreeTTSEmacspeakServer(String voiceName) {	System.setProperty	    ("com.sun.speech.freetts.audio.AudioPlayer.cancelDelay", "0");	createVoice(voiceName);    }    /**     * Creates and loads the Voice.     */    private void createVoice(String voiceName) {        VoiceManager voiceManager = VoiceManager.getInstance();        emacsVoice = voiceManager.getVoice(voiceName);        if (emacsVoice == null) {            System.err.println("No such voice with the name: " + voiceName);            System.exit(1);        }        emacsVoice.allocate();    }    /**     * Spawns a ProtocolHandler depending on the current protocol.     * This method is inherited from TTSServer.     *     * @param socket the socket that the spawned protocol handler will use     */    protected void spawnProtocolHandler(Socket socket) {	try {	    FreeTTSEmacspeakHandler handler =		new FreeTTSEmacspeakHandler(socket, emacsVoice);	    (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) {        emacsVoice.setRate(wpm);    }                /**     * Starts this TTS Server.     *     * Usage: FreeTTSEmacspeakServer [voicename [speaking rate]]     */    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();	FreeTTSEmacspeakServer server = new FreeTTSEmacspeakServer(voiceName);        if (args.length > 1) {            float wpm = Float.parseFloat(args[1]);            server.setRate(wpm);        }        	(new Thread(server)).start();    }}

⌨️ 快捷键说明

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