if (audio == null) { throw new EngineException("Can't get audio player"); } outputQueue = Voice.createOutputThread(); lexicon = desc.getLexicon();
outputQueue = com.sun.speech.freetts.Voice.createOutputThread();
    protected void handleAllocate() throws EngineException {        long states[];	boolean ok = false;	FreeTTSSynthesizerModeDesc desc = (FreeTTSSynthesizerModeDesc)	    getEngineModeDesc();	audio = desc.getAudioPlayer();	if (audio == null) {	    throw new EngineException("Can't get audio player");	}	outputQueue = Voice.createOutputThread();	lexicon = desc.getLexicon();	if (desc.getVoices().length > 0) {	    FreeTTSVoice freettsVoice = (FreeTTSVoice) desc.getVoices()[0];	    ok = setCurrentVoice(freettsVoice);	}	if (ok) {	    synchronized (engineStateLock) {		long newState = ALLOCATED | RESUMED;		newState |= (outputHandler.isQueueEmpty()			     ? QUEUE_EMPTY			     : QUEUE_NOT_EMPTY);		states = setEngineState(CLEAR_ALL_STATE, newState);	    }	    outputHandler.start();	    postEngineAllocated(states[0], states[1]);	} else {	    throw new EngineException("Can't allocate FreeTTS synthesizer");	}    }