libjulius/src/pass1.c File Reference

The first pass: frame-synchronous beam search. More...

#include <julius/julius.h>

Go to the source code of this file.

Functions

int decode_proceed (Recog *recog)
 Process one input frame for all recognition process instance.
void decode_end_segmented (Recog *recog)
 End procedure of the first pass (when segmented).
void decode_end (Recog *recog)
 End procedure of the first pass.
boolean get_back_trellis (Recog *recog)
 Frame synchronous beam search: the main (for batch mode).


Detailed Description

The first pass: frame-synchronous beam search.

These functions perform a frame-synchronous beam search using a static lexicon tree, as the first pass of Julius/Julian.

When the whole input is already obtained, get_back_trellis() simply does all the processing of the 1st pass. When performing online real-time recognition with concurrent speech input, each function will be called separately from realtime_1stpass.c according on the basis of input processing.

The core recognition processing functions for each recognition process instances are written in beam.c.

Author:
Akinobu Lee
Date:
Fri Oct 12 23:14:13 2007
$Revision:$

Definition in file pass1.c.


Function Documentation

int decode_proceed ( Recog recog  ) 

Process one input frame for all recognition process instance.

This function proceeds the recognition for one frame. All recognition process instance will be processed synchronously. The input frame for each instance is stored in mfcc->f, where mfcc is the MFCC calculation instance assigned to each process instance.

If an instance's mfcc->invalid is set to TRUE, its processing will be skipped.

When using GMM, GMM computation will also be executed here. If GMM_VAD is defined, GMM-based voice detection will be performed inside this function, by using a scheme of short-pause segmentation.

This function also handles segmentation of recognition process. A segmentation will occur when end of speech is detected by level-based sound detection or GMM-based / decoder-based VAD, or by request from application. When segmented, it stores current frame and return with that status.

The frame-wise callbacks will be executed inside this function, when at least one valid recognition process instances exists.

Parameters:
recog [in] engine instance
Returns:
0 on success, -1 on error, or 1 when an input segmentation occured/requested inside this function.

Definition at line 112 of file pass1.c.

Referenced by get_back_trellis(), RealTimeParam(), RealTimePipeLine(), and RealTimeResume().

Here is the caller graph for this function:

void decode_end_segmented ( Recog recog  ) 

End procedure of the first pass (when segmented).

This function do things for ending the first pass and prepare for the next recognition, when the input was segmented at the middle of recognition by some reason.

First, the best path at each recognition process instance will be parsed and stored. In case of recognition error or input rejection, the error status will be set.

Then, the last pause segment of the processed input will be cut and saved to be processed at first in the recognition of the next or remaining input.

Parameters:
recog [in] engine instance

Definition at line 363 of file pass1.c.

Referenced by get_back_trellis(), and RealTimeParam().

Here is the caller graph for this function:

void decode_end ( Recog recog  ) 

End procedure of the first pass.

This function finish the first pass, when the input was fully processed to the end.

The best path at each recognition process instance will be parsed and stored. In case of recognition error or input rejection, the error status will be set.

Parameters:
recog [in] engine instance

Definition at line 440 of file pass1.c.

Referenced by get_back_trellis(), RealTimeParam(), and RealTimeTerminate().

Here is the caller graph for this function:

boolean get_back_trellis ( Recog recog  ) 

Frame synchronous beam search: the main (for batch mode).

This function perform the 1st recognition pass of frame-synchronous beam search and output the result. It also stores all the word ends in every input frame to word trellis structure.

This function will be called if the whole input vector is already given to the end. When online recognition, where the 1st pass will be processed in parallel with input, this function will not be used. In that case, functions defined in this file will be directly called from functions in realtime-1stpass.c.

Parameters:
recog [in] engine instance

Definition at line 591 of file pass1.c.


Generated on Tue Dec 18 16:01:22 2007 for Julius by  doxygen 1.5.4