|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.cmu.sphinx.frontend.BaseDataProcessor
edu.cmu.sphinx.frontend.feature.BatchCMN
Applies cepstral mean normalization (CMN), sometimes called channel mean normalization, to incoming cepstral data. Its goal is to reduce the distortion caused by the transmission channel. The output is mean normalized cepstral data.
The CMN processing subtracts the mean from all the Data
objects between a DataStartSignal
and a DataEndSignal
. BatchCMN will read in all the Data
objects, calculate the mean, and subtract this mean from all
the Data
objects. For a given utterance, it will only
produce an output after reading all the incoming data for the
utterance. As a result, this process can introduce a significant
processing delay, which is acceptable for batch processing, but not
for live mode. In the latter case, one should use the LiveCMN
.
CMN is a technique used to reduce distortions that are introduced by the transfer function of the transmission channel (e.g., the microphone). Using a transmission channel to transmit the input speech translates to multiplying the spectrum of the input speech with the transfer function of the channel (the distortion). Since the cepstrum is the Fourier Transform of the log spectrum, the logarithm turns the multiplication into a summation. Averaging over time, the mean is an estimate of the channel, which remains roughly constant. The channel is thus removed from the cepstrum by subtracting the mean cepstral vector. Intuitively, the mean cepstral vector approximately describes the spectral characteristics of the transmission channel (e.g., microphone).
LiveCMN
Constructor Summary | |
BatchCMN()
|
Method Summary | |
Data |
getData()
Returns the next Data object, which is a normalized cepstrum. |
void |
initialize()
Initializes this BatchCMN. |
void |
newProperties(PropertySheet ps)
This method is called when this configurable component has new data. |
void |
register(java.lang.String name,
Registry registry)
Register my properties. |
Methods inherited from class edu.cmu.sphinx.frontend.BaseDataProcessor |
getName, getPredecessor, getTimer, setPredecessor, toString |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public BatchCMN()
Method Detail |
public void register(java.lang.String name, Registry registry) throws PropertyException
Configurable
register
in interface Configurable
register
in class BaseDataProcessor
PropertyException
public void newProperties(PropertySheet ps) throws PropertyException
Configurable
newProperties
in interface Configurable
newProperties
in class BaseDataProcessor
PropertyException
public void initialize()
initialize
in interface DataProcessor
initialize
in class BaseDataProcessor
public Data getData() throws DataProcessingException
getData
in interface DataProcessor
getData
in class BaseDataProcessor
DataProcessingException
- if there is an error processing data
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |