The FeatureSet Object

Runon mode

Switch to Runon Mode

In an offline situation we read an entire utterance recording and do each preprocessing step once. For a demo system we could start the preprocessing (and recognition) after the first part of the utterance was recorded. Then we continue as the next parts drop in. This is what we call the runon mode.

To switch a FeatureSet into runon mode use:

% FeatureSet fs
% fs configure -runon 1

Semaphore Files

If you now use the FeatureSet method readADC it is waiting for the start semaphore file, deleting it and reading to the end of the file. Preprocessing on this data can be done now. The next time 'readADC' is waiting until the data file contains more data or it finds the ready semaphore file (which is also deleted after reading the data file). The processing of the blocks read in each time will be called tansaction further down.

Transaction Numbers

When a new block of data is read in it is a good idea to do the processing not from scratch, that means starting with the first sample or frame again, but continue where finished last time. For that reason a Feature name can only be used once in every transaction as a destination name in runon mode. This behaviour will be ensured by the transaction numbers. You can check these numbers using the configure method.
% fs configure -transaction
% fs:FEATURE configure -transaction
Note that there is a transaction number for the FeatureSet and one for each Feature.

Before checking for the start semaphore file the transaction numbers of all Features are set to -1. Each time a new block of data is read (see last section) the transaction number of the FeatureSet will be increased starting from 0. When a preprocessing step is done (a method is used) the resulting Feature will get the corresponding transaction number. A second attempt in the same transaction will produce an error.

Other Possible Errors

Methods that require the whole utterance data mustn't be used in runon mode since it doesn't make sense anymore. A critical aspect is the normalization. Using the maximum and minimum or the mean and variance of the utterence is an effective way to do the normalization but not usable. The method offset could be used instead.

Some methods use zero padding or repeat the last frame or sample when future values are needed and the same number of frames or samples as the source feature should be calculated. Except for the last transaction, when the ready semaphore file was found, this padding is switched off for the runon mode. This means that Features having always the same number of frames when not in runon mode (or after the last transcation in runon mode) can have different numbers during runon.