Class MultiFile8BitAudioPlayer

java.lang.Object
com.sun.speech.freetts.audio.MultiFile8BitAudioPlayer
All Implemented Interfaces:
AudioPlayer

public class MultiFile8BitAudioPlayer extends Object implements AudioPlayer
Streams audio to multiple files as 8-bit samples, one per utterance. Currently, FreeTTS always outputs 16-bit samples, and this MultiFile8BitAudioPlayer will convert them to 8-bit before outputting them.
  • Constructor Details

    • MultiFile8BitAudioPlayer

      public MultiFile8BitAudioPlayer()
      Creates a default audio player for an AudioFileFormat of type WAVE. Reads the "com.sun.speech.freetts.AudioPlayer.baseName" property for the base filename to use, and will produce files of the form <baseName>1.wav. The default value for the base name is "freetts".
    • MultiFile8BitAudioPlayer

      public MultiFile8BitAudioPlayer(String baseName, AudioFileFormat.Type type)
      Constructs a MultiFile8BitAudioPlayer
      Parameters:
      baseName - the base name of the audio file
      type - the type of audio output
  • Method Details

    • setAudioFormat

      public void setAudioFormat(AudioFormat format)
      Sets the audio format for this player
      Specified by:
      setAudioFormat in interface AudioPlayer
      Parameters:
      format - the audio format
      Throws:
      UnsupportedOperationException - if the line cannot be opened with the given format
    • getAudioFormat

      public AudioFormat getAudioFormat()
      Gets the audio format for this player
      Specified by:
      getAudioFormat in interface AudioPlayer
      Returns:
      format the audio format
    • pause

      public void pause()
      Pauses audio output
      Specified by:
      pause in interface AudioPlayer
    • resume

      public void resume()
      Resumes audio output
      Specified by:
      resume in interface AudioPlayer
    • startFirstSampleTimer

      public void startFirstSampleTimer()
      Starts the first sample timer
      Specified by:
      startFirstSampleTimer in interface AudioPlayer
    • cancel

      public void cancel()
      Cancels currently playing audio
      Specified by:
      cancel in interface AudioPlayer
    • reset

      public void reset()
      Prepares for another batch of output. Larger groups of output (such as all output associated with a single FreeTTSSpeakable) should be grouped between a reset/drain pair.
      Specified by:
      reset in interface AudioPlayer
    • close

      public void close()
      Closes this audio player
      Specified by:
      close in interface AudioPlayer
    • getVolume

      public float getVolume()
      Returns the current volume.
      Specified by:
      getVolume in interface AudioPlayer
      Returns:
      the current volume (between 0 and 1)
    • setVolume

      public void setVolume(float volume)
      Sets the current volume.
      Specified by:
      setVolume in interface AudioPlayer
      Parameters:
      volume - the current volume (between 0 and 1)
    • begin

      public void begin(int size)
      Starts the output of a set of data. Audio data for a single utterance should be grouped between begin/end pairs.
      Specified by:
      begin in interface AudioPlayer
      Parameters:
      size - the size of data between now and the end
    • end

      public boolean end()
      Marks the end of a set of data. Audio data for a single utterance should be groupd between begin/end pairs.
      Specified by:
      end in interface AudioPlayer
      Returns:
      true if the audio was output properly, false if the output was cancelled or interrupted.
    • drain

      public boolean drain()
      Waits for all queued audio to be played
      Specified by:
      drain in interface AudioPlayer
      Returns:
      true if the audio played to completion, false if the audio was stopped
    • getTime

      public long getTime()
      Gets the amount of played since the last mark
      Specified by:
      getTime in interface AudioPlayer
      Returns:
      the amount of audio in milliseconds
    • resetTime

      public void resetTime()
      Resets the audio clock
      Specified by:
      resetTime in interface AudioPlayer
    • write

      public boolean write(byte[] audioData)
      Writes the given bytes to the audio stream
      Specified by:
      write in interface AudioPlayer
      Parameters:
      audioData - audio data to write to the device
      Returns:
      true of the write completed successfully, false if the write was cancelled.
    • write

      public boolean write(byte[] bytes, int offset, int size)
      Writes the given bytes to the audio stream
      Specified by:
      write in interface AudioPlayer
      Parameters:
      bytes - audio data to write to the device
      offset - the offset into the buffer
      size - the size into the buffer
      Returns:
      true of the write completed successfully, false if the write was cancelled.
    • toString

      public String toString()
      Returns the name of this audioplayer
      Overrides:
      toString in class Object
      Returns:
      the name of the audio player
    • showMetrics

      public void showMetrics()
      Shows metrics for this audio player
      Specified by:
      showMetrics in interface AudioPlayer