/** * @file trellis.h * * * @brief 単語トレリスの構造体定義 * * * * * @brief Structure definitions of word trellis. * * * @author Akinobu Lee * @date Fri Aug 17 18:30:17 2007 * * $Revision: 1.2 $ * */ #ifndef __J_TRELLIS_H__ #define __J_TRELLIS_H__ /** * Word trellis element that holds survived word ends at each frame * on the 1st pass. * */ typedef struct __trellis_atom__ { LOGPROB backscore; ///< Accumulated score from start LOGPROB lscore; ///< LM score of this word WORD_ID wid; ///< Word ID short begintime; ///< Beginning frame short endtime; ///< End frame #ifdef WORD_GRAPH boolean within_wordgraph; ///< TRUE if within word graph boolean within_context; ///< TRUE if any of its following word was once survived in beam while search #endif struct __trellis_atom__ *last_tre; ///< Pointer to previous context trellis word struct __trellis_atom__ *next; ///< Temporary link to store generated trellis word on 1st pass } TRELLIS_ATOM; /** * Whole word trellis (aka backtrellis) generated as a result of 1st pass. * */ typedef struct __backtrellis__ { int framelen; ///< Frame length int *num; ///< Number of trellis words at frame [t] TRELLIS_ATOM ***rw; ///< List to trellis words at frame [t]: rw[t][0..num[t]] TRELLIS_ATOM *list; ///< Temporary storage point used in 1st pass BMALLOC_BASE *root; ///< memory allocation base for mybmalloc2() } BACKTRELLIS; #endif /* __J_TRELLIS_H__ */