path.h
2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#define P_CORR 0x01
#define P_SUB 0x02
#define P_INS 0x04
#define P_DEL 0x08
#define P_MRG 0x10
#define P_SPL 0x20
typedef struct PATH_SET_struct {
void *a_ptr, /* pointer to A arc's data */
*b_ptr; /* pointer to B arc's data */
char eval; /* flag to designated the pair as Corr, Ins, Del, Sub */
} PATH_SET;
#define PA_NONE 0x0000
#define PA_CHAR_ALIGN 0x0001
#define PA_CASE_SENSE 0x0002
#define PA_HYP_WTIMES 0x0004
#define PA_REF_WTIMES 0x0008
#define PA_HYP_TIMES 0x0010
#define PA_REF_TIMES 0x0020
#define PA_HYP_CONF 0x0040
#define PA_REF_CONF 0x0080
#define PA_HYP_WEIGHT 0x0100
#define PA_REF_WEIGHT 0x0200
#define PA_HYP_SPKR 0x0400
#define PA_HYP_ISSPKRSUB 0x0800
typedef struct PATH_struct {
int max; /* maximum number of PATH_set structures in pset*/
int num; /* the current number of used structures in pset*/
PATH_SET *pset; /* the array of structures */
char *id; /* utterance id */
char *labels; /* any labels attached to the id's */
char *file; /* audio from whence the data came, only in place
for data aligned by ctm or stm */
char *channel; /* channel . . . ditto */
double ref_t1; /* beginning time for the reference */
double ref_t2; /* ending time for the reference */
double hyp_t1; /* beginning time for the hypothesis */
double hyp_t2; /* ending time for the hypothesis */
int attrib; /* an attributes of the path */
int sequence; /* Sequence number: during alignment */
} PATH;
PATH *PATH_alloc(int size);
void PATH_print(PATH *path, FILE *fp, int max);
void PATH_n_print(PATH *, FILE *, int from, int to, int max);
void PATH_print_html(PATH *path, FILE *fp, int max, int header);
void PATH_n_print_html(PATH *path, FILE *fp, int from, int to, int max, int header);
void PATH_print_wt(PATH *path, FILE *fp);
void PATH_increment_WORD_use(PATH *path);
void PATH_free(PATH *path);
void PATH_add_utt_id(PATH *path, char *utt_id);
void PATH_add_label(PATH *path, char *label);
void PATH_add_file(PATH *path, char *file);
void PATH_add_channel(PATH *path, char *channel);
void PATH_set_sequence(PATH *path);
void check_space_in_PATH(PATH *path);
void PATH_append(PATH *path, void *ap, void *bp, int eval);
void PATH_remove(PATH *path);
void sort_PATH_time_marks(PATH *path);