public Voice(){
  utteranceProcessors=Collections.synchronizedList(new ArrayList());
  features=new FeatureSetImpl();
  featureProcessors=new HashMap();
  try {
    nominalRate=Float.parseFloat(Utilities.getProperty(PROP_PREFIX + "speakingRate","150"));
    pitch=Float.parseFloat(Utilities.getProperty(PROP_PREFIX + "pitch","100"));
    range=Float.parseFloat(Utilities.getProperty(PROP_PREFIX + "range","10"));
    volume=Float.parseFloat(Utilities.getProperty(PROP_PREFIX + "volume","1.0"));
  }
 catch (  SecurityException se) {
  }
  outputQueue=null;
  audioPlayer=null;
  defaultAudioPlayer=null;
}

public Voice ( ) { utteranceProcessors = Collections . synchronizedList ( new ArrayList ( ) ) ; features = new FeatureSetImpl ( ) ; featureProcessors = new HashMap ( ) ; try { nominalRate = Float . parseFloat ( Utilities . getProperty ( PROP_PREFIX + "speakingRate" , "150" ) ) ; pitch = Float . parseFloat ( Utilities . getProperty ( PROP_PREFIX + "pitch" , "100" ) ) ; range = Float . parseFloat ( Utilities . getProperty ( PROP_PREFIX + "range" , "10" ) ) ; volume = Float . parseFloat ( Utilities . getProperty ( PROP_PREFIX + "volume" , "1.0" ) ) ; } catch ( SecurityException se ) { } outputQueue = null ; audioPlayer = null ; defaultAudioPlayer = null ; }
creates a new voice . utterances are sent to an output queue to be rendered as audio . utterances are placed on the queue by an output thread . this queue is usually created via a call to ' createoutputthread , ' which creates a thread that waits on the queue and sends the output to the audio player associated with this voice . if the queue is null , the output is rendered in the calling thread .
