Package

Source Code of FreeTTSEmacspeakServer

/**
* 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();
    }
}
TOP

Related Classes of FreeTTSEmacspeakServer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.