Main Page | Class List | Directories | File List | Class Members | File Members

s3_cfg.h File Reference

#include <stdio.h>
#include <logmath.h>
#include "prim_type.h"
#include "hash_table.h"
#include "s3_arraylist.h"
#include "fsg.h"

Go to the source code of this file.

Classes

struct  s3_cfg_rule_s
struct  s3_cfg_item_t
struct  s3_cfg_entry_s
struct  s3_cfg_state_s
struct  s3_cfg_t

Defines

#define S3_CFG_MAX_RULE_STR_LEN   1023
#define S3_CFG_MAX_ITEM_STR_LEN   40
#define S3_CFG_MAX_ITEM_COUNT   20
#define S3_CFG_INITIAL_RULE_COUNT   1
#define S3_CFG_INITIAL_RULE_SET_COUNT   50
#define S3_CFG_INITIAL_PARSE_SET_COUNT   20
#define S3_CFG_PARSE_HASH_SIZE   251
#define S3_CFG_INITIAL_STATE_SET_COUNT   20
#define S3_CFG_INITIAL_TERM_COUNT   50
#define S3_CFG_NAME_HASH_SIZE   4091
#define S3_CFG_INVALID_SCORE   1.0f
#define S3_CFG_INITIAL_SCORE   0.0f
#define S3_CFG_NONTERM_PREFIX   '$'
#define S3_CFG_TERM_BIT   0x80000000
#define S3_CFG_INDEX_MASK   0x7FFFFFFF
#define S3_CFG_INVALID_ID   0x7FFFFFFF
#define S3_CFG_PSTART_ITEM   0x00000000
#define S3_CFG_PSTART_ITEM_STR   "$PSTART"
#define S3_CFG_START_ITEM   0x00000001
#define S3_CFG_START_ITEM_STR   "$START"
#define S3_CFG_EOR_ITEM   (0x00000002 | S3_CFG_TERM_BIT)
#define S3_CFG_EOR_ITEM_STR   "#EOR#"
#define S3_CFG_EOI_ITEM   (0x00000003 | S3_CFG_TERM_BIT)
#define S3_CFG_EOI_ITEM_STR   "#EOI#"
#define S3_CFG_NIL_ITEM   (0x00000004 | S3_CFG_TERM_BIT)
#define S3_CFG_NIL_ITEM_STR   "#NIL#"
#define S3_CFG_START_RULE   { S3_CFG_PSTART_ITEM, 0.0f, { S3_CFG_START_ITEM, S3_CFG_EOR_ITEM }, 1 }
#define S3_CFG_AUTO_PRUNE_SCORE   0x00000001
#define S3_CFG_AUTO_PRUNE_RANK   0x00000002
#define s3_cfg_is_null_parse(x)   (x->entries.count == 0)
#define s3_cfg_is_terminal(x)   (x & S3_CFG_TERM_BIT)
#define s3_cfg_id2index(x)   (x & S3_CFG_INDEX_MASK)

Typedefs

typedef uint32 s3_cfg_id_t
typedef s3_cfg_rule_s s3_cfg_rule_t
typedef s3_cfg_entry_s s3_cfg_entry_t
typedef s3_cfg_state_s s3_cfg_state_t

Functions

void s3_cfg_init (s3_cfg_t *_cfg)
void s3_cfg_close (s3_cfg_t *_cfg)
S3DECODER_EXPORT s3_cfg_ts3_cfg_read_simple (const char *_fn)
s3_cfg_ts3_cfg_read_srgs (const char *_fn)
void s3_cfg_write_simple (s3_cfg_t *_cfg, const char *_fn)
S3DECODER_EXPORT s2_fsg_ts3_cfg_convert_to_fsg (s3_cfg_t *_cfg, int _max_expansion)
void s3_cfg_rescore (s3_cfg_t *_cfg, logmath_t *logmath)
s3_cfg_item_ts3_cfg_get_term_info (s3_cfg_t *_cfg, s3_cfg_id_t _id)
s3_cfg_state_ts3_cfg_create_parse (s3_cfg_t *_cfg)
void s3_cfg_free_parse (s3_cfg_t *_cfg, s3_cfg_state_t *_parse)
void s3_cfg_free_parse_tree (s3_cfg_t *_cfg, s3_cfg_state_t *_parse)
s3_cfg_state_ts3_cfg_input_term (s3_cfg_t *_cfg, s3_cfg_state_t *_cur, s3_cfg_id_t _term)
s3_cfg_rule_ts3_cfg_add_rule (s3_cfg_t *_cfg, s3_cfg_id_t _src, float32 _fake_score, s3_cfg_id_t *_products)
S3DECODER_EXPORT void s3_cfg_compile_rules (s3_cfg_t *_cfg, logmath_t *logmath)
void s3_cfg_print_rule (s3_cfg_t *_cfg, s3_cfg_rule_t *_rule, FILE *_out)
void s3_cfg_print_entry (s3_cfg_t *_cfg, s3_cfg_entry_t *_entry, FILE *_out)
void s3_cfg_print_parse (s3_cfg_t *_cfg, s3_cfg_entry_t *_parse, FILE *_out)
s3_cfg_id_t s3_cfg_str2id (s3_cfg_t *_cfg, char *_item)
const char * s3_cfg_id2str (s3_cfg_t *_cfg, s3_cfg_id_t _id)


Define Documentation

#define S3_CFG_AUTO_PRUNE_RANK   0x00000002
 

#define S3_CFG_AUTO_PRUNE_SCORE   0x00000001
 

#define S3_CFG_EOI_ITEM   (0x00000003 | S3_CFG_TERM_BIT)
 

#define S3_CFG_EOI_ITEM_STR   "#EOI#"
 

#define S3_CFG_EOR_ITEM   (0x00000002 | S3_CFG_TERM_BIT)
 

#define S3_CFG_EOR_ITEM_STR   "#EOR#"
 

#define s3_cfg_id2index  )     (x & S3_CFG_INDEX_MASK)
 

#define S3_CFG_INDEX_MASK   0x7FFFFFFF
 

#define S3_CFG_INITIAL_PARSE_SET_COUNT   20
 

#define S3_CFG_INITIAL_RULE_COUNT   1
 

#define S3_CFG_INITIAL_RULE_SET_COUNT   50
 

#define S3_CFG_INITIAL_SCORE   0.0f
 

#define S3_CFG_INITIAL_STATE_SET_COUNT   20
 

#define S3_CFG_INITIAL_TERM_COUNT   50
 

#define S3_CFG_INVALID_ID   0x7FFFFFFF
 

#define S3_CFG_INVALID_SCORE   1.0f
 

#define s3_cfg_is_null_parse  )     (x->entries.count == 0)
 

#define s3_cfg_is_terminal  )     (x & S3_CFG_TERM_BIT)
 

#define S3_CFG_MAX_ITEM_COUNT   20
 

#define S3_CFG_MAX_ITEM_STR_LEN   40
 

#define S3_CFG_MAX_RULE_STR_LEN   1023
 

#define S3_CFG_NAME_HASH_SIZE   4091
 

#define S3_CFG_NIL_ITEM   (0x00000004 | S3_CFG_TERM_BIT)
 

#define S3_CFG_NIL_ITEM_STR   "#NIL#"
 

#define S3_CFG_NONTERM_PREFIX   '$'
 

#define S3_CFG_PARSE_HASH_SIZE   251
 

#define S3_CFG_PSTART_ITEM   0x00000000
 

#define S3_CFG_PSTART_ITEM_STR   "$PSTART"
 

#define S3_CFG_START_ITEM   0x00000001
 

#define S3_CFG_START_ITEM_STR   "$START"
 

#define S3_CFG_START_RULE   { S3_CFG_PSTART_ITEM, 0.0f, { S3_CFG_START_ITEM, S3_CFG_EOR_ITEM }, 1 }
 

#define S3_CFG_TERM_BIT   0x80000000
 


Typedef Documentation

typedef struct s3_cfg_entry_s s3_cfg_entry_t
 

typedef uint32 s3_cfg_id_t
 

typedef struct s3_cfg_rule_s s3_cfg_rule_t
 

typedef struct s3_cfg_state_s s3_cfg_state_t
 


Function Documentation

s3_cfg_rule_t* s3_cfg_add_rule s3_cfg_t _cfg,
s3_cfg_id_t  _src,
float32  _fake_score,
s3_cfg_id_t _products
 

Add an expansion rule to the CFG parser.

Parameters:
_cfg A CFG parser.
_src The source of the expansion. Must be a non-terminal.
_fake_score Un-normalized transition scores.
_products An array of expansion terms. Terminated by S3_CFG_EOR_ITEM.
Returns:
A CFG expansion rule.

void s3_cfg_close s3_cfg_t _cfg  ) 
 

Close a CFG parser and free its contents. The parser structure is not freed (since it was not allocated by init).

Parameters:
_cfg A (pre-allocated) CFG parser.

S3DECODER_EXPORT void s3_cfg_compile_rules s3_cfg_t _cfg,
logmath_t *  logmath
 

The consistency of the rule scores must be compiled before the parser can be used.

Parameters:
_cfg A CFG parser.

S3DECODER_EXPORT s2_fsg_t* s3_cfg_convert_to_fsg s3_cfg_t _cfg,
int  _max_expansion
 

Heuristically convert a CFG to a FSG by limiting non-terminal expansions.

Parameters:
_cfg A CFG parser.
Returns:
A FSG.

s3_cfg_state_t* s3_cfg_create_parse s3_cfg_t _cfg  ) 
 

Start a CFG parse session.

Parameters:
_cfg A CFG parser.
Returns:
A parse session.

void s3_cfg_free_parse s3_cfg_t _cfg,
s3_cfg_state_t _parse
 

Free a CFG parse session.

Parameters:
_cfg A CFG parser.
_parse A parse session.

void s3_cfg_free_parse_tree s3_cfg_t _cfg,
s3_cfg_state_t _parse
 

s3_cfg_item_t* s3_cfg_get_term_info s3_cfg_t _cfg,
s3_cfg_id_t  _id
 

Fetch information on a term.

Parameters:
_cfg A CFG parser.
_id A term id.
Returns:
Term information.

const char* s3_cfg_id2str s3_cfg_t _cfg,
s3_cfg_id_t  _id
 

Convert a term id to its original string representation.

Parameters:
_cfg A CFG parser.
_id A term id.
Returns:
A string representation of the term.

void s3_cfg_init s3_cfg_t _cfg  ) 
 

Initialize a CFG parser. The parser structure must be allocated outside the function.

Parameters:
_cfg A (pre-allocated) CFG parser.

s3_cfg_state_t* s3_cfg_input_term s3_cfg_t _cfg,
s3_cfg_state_t _cur,
s3_cfg_id_t  _term
 

Continue a parse session by feeding it an input term.

Parameters:
_cfg A CFG parser.
_cur A parse session.
_term An input term. Must be a terminal.

void s3_cfg_print_entry s3_cfg_t _cfg,
s3_cfg_entry_t _entry,
FILE *  _out
 

Print a CFG parse entry. It is a single stage of a single rule expansion. For reference, lookup chart parsers.

Parameters:
_cfg A CFG parser.
_entry A CFG parse entry.
_out An output stream.

void s3_cfg_print_parse s3_cfg_t _cfg,
s3_cfg_entry_t _parse,
FILE *  _out
 

Print a parse session. This will print all active entries in the parse, including unfinished parses.

Parameters:
_cfg A CFG parser.
_parse A parse session.
_out An output stream.

void s3_cfg_print_rule s3_cfg_t _cfg,
s3_cfg_rule_t _rule,
FILE *  _out
 

Print a CFG expansion rule.

Parameters:
_cfg A CFG parser.
_rule A CFG expansion rule.
_out An output stream.

S3DECODER_EXPORT s3_cfg_t* s3_cfg_read_simple const char *  _fn  ) 
 

Read a CFG from a plain-text file. The parser structure must be freed afterwards.

Parameters:
_fn Plain-text file.
Returns:
A CFG parser.

s3_cfg_t* s3_cfg_read_srgs const char *  _fn  ) 
 

Read a CFG from a XML-based SRGS file. The parser structure must be freed afterwards. For more information on SRGS, visit http://www.w3.org/TR/speech-grammar/.

Parameters:
_fn XML-based SRGS file.
Returns:
A CFG parser.

void s3_cfg_rescore s3_cfg_t _cfg,
logmath_t *  logmath
 

s3_cfg_id_t s3_cfg_str2id s3_cfg_t _cfg,
char *  _item
 

Convert a term string representation to a term id. If the term does not already exist, assign it a new id.

Parameters:
_cfg A CFG parser.
_id A term id.
Returns:
A string representation of the term.

void s3_cfg_write_simple s3_cfg_t _cfg,
const char *  _fn
 

Write the CFG to a plain-text file.

Parameters:
_cfg A CFG parser.
_fn An output filename.
Returns:
0 for success. -1 for failure.


Generated on Sat Apr 11 00:02:30 2009 by  doxygen 1.3.9.1