edu.cmu.sphinx.tools.batch
Class BatchModeRecognizer

java.lang.Object
  extended by edu.cmu.sphinx.tools.batch.BatchModeRecognizer
All Implemented Interfaces:
Configurable
Direct Known Subclasses:
BatchNISTRecognizer

public class BatchModeRecognizer
extends java.lang.Object
implements Configurable

Decodes a batch file containing a list of files to decode. The files can be either audio files or cepstral files, but defaults to audio files. The audio data should be 16-bit, 16kHz, PCM-linear data. Since this classes makes use of Java Sound, it supports all the audio file formats that are supported by Java Sound. If the audio file does not correspond to a format supported by Java Sound, it is treated as a raw audio file (i.e., one without a header). Audio file formats differ in the endian order of the audio data. Therefore, it is important to specify it correctly in the configuration of the StreamDataSource. Note that in the ideal situation, the audio format of the data should be passed into the StreamDataSource, so that no extra configuration is needed. This will be fixed in future releases.

To run this BatchModeRecognizer:

 java BatchModeRecognizer <xmlConfigFile> <batchFile>
 
where xmlConfigFile is an XML-based configuration file and batchFile is a file listing all the files to decode and transcript of those files. For information about the configuration file, refer to the document Sphinx-4 Configuration Management. For information about the batch file, refer to the batch file description.

This class will send recognition results to the logger if the log level is set to INFO.


Field Summary
static java.lang.String PROP_COUNT
          The SphinxProperty name for how many utterances to process
static java.lang.String PROP_INPUT_DATA_PROCESSORS
          The sphinx property that specifies the input source
static java.lang.String PROP_RECOGNIZER
          The Sphinx property that specifies the recognizer to use
static java.lang.String PROP_SKIP
          The SphinxProperty name for how many files to skip for every decode.
static java.lang.String PROP_TOTAL_BATCHES
          The SphinxProperty for the total number of batch jobs the decoding run is being divided into.
static java.lang.String PROP_USE_POOLED_BATCH_MANAGER
          The SphinxProperty that defines whether or not the decoder should use the pooled batch manager
static java.lang.String PROP_WHICH_BATCH
          The SphinxProperty that specified which batch job is to be run.
 
Constructor Summary
BatchModeRecognizer()
           
BatchModeRecognizer(Recognizer recognizer, java.util.List<DataProcessor> inputDataProcessors, int skip, int utteranceId, int whichBatch, int totalBatches, boolean usePooledBatchManager)
           
 
Method Summary
 void decode(java.lang.String batchFile)
          Decodes the batch of audio files
static void main(java.lang.String[] argv)
          Main method of this BatchDecoder.
 void newProperties(PropertySheet ps)
          This method is called when this configurable component needs to be reconfigured.
 Result recognize()
           
 void setBatchFile(java.lang.String batchFile)
          Sets the batch file to use for this recognition
 void shell(java.lang.String batchfile)
           
 void start(java.lang.String batchFile)
           
 void stop()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROP_SKIP

@S4Integer(defaultValue=0)
public static final java.lang.String PROP_SKIP
The SphinxProperty name for how many files to skip for every decode.

See Also:
Constant Field Values

PROP_COUNT

@S4Integer(defaultValue=1000000)
public static final java.lang.String PROP_COUNT
The SphinxProperty name for how many utterances to process

See Also:
Constant Field Values

PROP_WHICH_BATCH

@S4Integer(defaultValue=0)
public static final java.lang.String PROP_WHICH_BATCH
The SphinxProperty that specified which batch job is to be run.

See Also:
Constant Field Values

PROP_TOTAL_BATCHES

@S4Integer(defaultValue=1)
public static final java.lang.String PROP_TOTAL_BATCHES
The SphinxProperty for the total number of batch jobs the decoding run is being divided into.

The BatchDecoder supports running a subset of a batch. This allows a test to be distributed among several machines.

See Also:
Constant Field Values

PROP_USE_POOLED_BATCH_MANAGER

@S4Boolean(defaultValue=false)
public static final java.lang.String PROP_USE_POOLED_BATCH_MANAGER
The SphinxProperty that defines whether or not the decoder should use the pooled batch manager

See Also:
Constant Field Values

PROP_RECOGNIZER

@S4Component(type=Recognizer.class)
public static final java.lang.String PROP_RECOGNIZER
The Sphinx property that specifies the recognizer to use

See Also:
Constant Field Values

PROP_INPUT_DATA_PROCESSORS

@S4ComponentList(type=BaseDataProcessor.class)
public static final java.lang.String PROP_INPUT_DATA_PROCESSORS
The sphinx property that specifies the input source

See Also:
Constant Field Values
Constructor Detail

BatchModeRecognizer

public BatchModeRecognizer(Recognizer recognizer,
                           java.util.List<DataProcessor> inputDataProcessors,
                           int skip,
                           int utteranceId,
                           int whichBatch,
                           int totalBatches,
                           boolean usePooledBatchManager)

BatchModeRecognizer

public BatchModeRecognizer()
Method Detail

newProperties

public void newProperties(PropertySheet ps)
                   throws PropertyException
Description copied from interface: Configurable
This method is called when this configurable component needs to be reconfigured.

Specified by:
newProperties in interface Configurable
Parameters:
ps - a property sheet holding the new data
Throws:
PropertyException - if there is a problem with the properties.

setBatchFile

public void setBatchFile(java.lang.String batchFile)
                  throws java.io.IOException
Sets the batch file to use for this recognition

Parameters:
batchFile - the name of the batch file
Throws:
java.io.IOException - if the file could not be opened or read.

decode

public void decode(java.lang.String batchFile)
            throws java.io.IOException
Decodes the batch of audio files

Throws:
java.io.IOException

shell

public void shell(java.lang.String batchfile)
           throws java.io.IOException
Throws:
java.io.IOException

main

public static void main(java.lang.String[] argv)
Main method of this BatchDecoder.

Parameters:
argv - argv[0] : config.xml argv[1] : a file listing all the audio files to decode

start

public void start(java.lang.String batchFile)
           throws java.io.IOException
Throws:
java.io.IOException

stop

public void stop()
          throws java.io.IOException
Throws:
java.io.IOException

recognize

public Result recognize()
                 throws java.io.IOException
Throws:
java.io.IOException