PocketSphinx 5.1.0
A small speech recognizer
Loading...
Searching...
No Matches
model.h
Go to the documentation of this file.
1/* -*- c-basic-offset:4; indent-tabs-mode: nil -*- */
2/* ====================================================================
3 * Copyright (c) 1999-2022 Carnegie Mellon University. All rights
4 * reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in
15 * the documentation and/or other materials provided with the
16 * distribution.
17 *
18 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
19 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
22 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
28 * OF THE POSSIBILITY OF SUCH DAMAGE.
29 * ====================================================================
30 */
40#ifndef __PS_MODEL_H__
41#define __PS_MODEL_H__
42
43#include <stdio.h>
44
47#include <pocketsphinx/export.h>
48
49#ifdef __cplusplus
50extern "C" {
51#endif
52#if 0
53}
54#endif
55
56/* Forward declaration to avoid include loops */
57typedef struct cmd_ln_s ps_config_t;
58
63typedef struct jsgf_s jsgf_t;
64
69typedef struct jsgf_rule_s jsgf_rule_t;
70
80typedef struct fsg_model_s fsg_model_t;
81
86typedef struct ngram_model_s ngram_model_t;
87
96POCKETSPHINX_EXPORT
97jsgf_t *jsgf_parse_file(const char *filename, jsgf_t *parent);
98
107POCKETSPHINX_EXPORT
108jsgf_t *jsgf_parse_string(const char *string, jsgf_t *parent);
109
114POCKETSPHINX_EXPORT
115char const *jsgf_grammar_name(jsgf_t *jsgf);
116
121POCKETSPHINX_EXPORT
123
128POCKETSPHINX_EXPORT
129jsgf_rule_t *jsgf_get_rule(jsgf_t *grammar, const char *name);
130
135POCKETSPHINX_EXPORT
137
142POCKETSPHINX_EXPORT
143char const *jsgf_rule_name(jsgf_rule_t *rule);
144
149POCKETSPHINX_EXPORT
151
156typedef struct hash_iter_s jsgf_rule_iter_t;
157
162POCKETSPHINX_EXPORT
164
169POCKETSPHINX_EXPORT
171
176POCKETSPHINX_EXPORT
178
183POCKETSPHINX_EXPORT
185
190POCKETSPHINX_EXPORT
192 logmath_t *lmath, float32 lw);
193
200POCKETSPHINX_EXPORT
201fsg_model_t *jsgf_read_file(const char *file, logmath_t * lmath, float32 lw);
202
209POCKETSPHINX_EXPORT
210fsg_model_t *jsgf_read_string(const char *string, logmath_t * lmath, float32 lw);
211
219POCKETSPHINX_EXPORT
220int jsgf_write_fsg(jsgf_t *grammar, jsgf_rule_t *rule, FILE *outfh);
221
228POCKETSPHINX_EXPORT
230
237POCKETSPHINX_EXPORT
239
280POCKETSPHINX_EXPORT
281fsg_model_t *fsg_model_readfile(const char *file, logmath_t *lmath, float32 lw);
282
287POCKETSPHINX_EXPORT
288fsg_model_t *fsg_model_read(FILE *fp, logmath_t *lmath, float32 lw);
289
297POCKETSPHINX_EXPORT
298int fsg_model_accept(fsg_model_t *fsg, char const *words);
299
304POCKETSPHINX_EXPORT
305void fsg_model_write(fsg_model_t *fsg, FILE *fp);
306
311POCKETSPHINX_EXPORT
312void fsg_model_writefile(fsg_model_t *fsg, char const *file);
313
318POCKETSPHINX_EXPORT
319void fsg_model_write_fsm(fsg_model_t *fsg, FILE *fp);
320
325POCKETSPHINX_EXPORT
326void fsg_model_writefile_fsm(fsg_model_t *fsg, char const *file);
327
332POCKETSPHINX_EXPORT
333void fsg_model_write_symtab(fsg_model_t *fsg, FILE *file);
334
339POCKETSPHINX_EXPORT
340void fsg_model_writefile_symtab(fsg_model_t *fsg, char const *file);
341
346typedef struct ngram_class_s ngram_class_t;
347
358
359#define NGRAM_INVALID_WID -1
381POCKETSPHINX_EXPORT
383 const char *file_name,
384 ngram_file_type_t file_type,
385 logmath_t *lmath);
386
393POCKETSPHINX_EXPORT
394int ngram_model_write(ngram_model_t *model, const char *file_name,
395 ngram_file_type_t format);
396
403POCKETSPHINX_EXPORT
404ngram_file_type_t ngram_file_name_to_type(const char *file_name);
405
412POCKETSPHINX_EXPORT
413ngram_file_type_t ngram_str_to_type(const char *str_name);
414
422POCKETSPHINX_EXPORT
423char const *ngram_type_to_str(int type);
424
431POCKETSPHINX_EXPORT
433
440POCKETSPHINX_EXPORT
442
447typedef enum ngram_case_e {
450} ngram_case_t;
451
460POCKETSPHINX_EXPORT
462
476POCKETSPHINX_EXPORT
478 float32 lw, float32 wip);
479
488POCKETSPHINX_EXPORT
489float32 ngram_model_get_weights(ngram_model_t *model, int32 *out_log_wip);
490
525POCKETSPHINX_EXPORT
526int32 ngram_score(ngram_model_t *model, const char *word, ...);
527
533POCKETSPHINX_EXPORT
535 int32 w3, int32 w2, int32 w1,
536 int32 *n_used);
537
543POCKETSPHINX_EXPORT
545 int32 w2, int32 w1,
546 int32 *n_used);
547
553POCKETSPHINX_EXPORT
554int32 ngram_ng_score(ngram_model_t *model, int32 wid, int32 *history,
555 int32 n_hist, int32 *n_used);
556
568POCKETSPHINX_EXPORT
569int32 ngram_probv(ngram_model_t *model, const char *word, ...);
570
582POCKETSPHINX_EXPORT
583int32 ngram_prob(ngram_model_t *model, const char* const *words, int32 n);
584
593POCKETSPHINX_EXPORT
594int32 ngram_ng_prob(ngram_model_t *model, int32 wid, int32 *history,
595 int32 n_hist, int32 *n_used);
596
609POCKETSPHINX_EXPORT
610int32 ngram_score_to_prob(ngram_model_t *model, int32 score);
611
617POCKETSPHINX_EXPORT
618int32 ngram_wid(ngram_model_t *model, const char *word);
619
625POCKETSPHINX_EXPORT
626const char *ngram_word(ngram_model_t *model, int32 wid);
627
642POCKETSPHINX_EXPORT
644
650POCKETSPHINX_EXPORT
652
658POCKETSPHINX_EXPORT
660
666POCKETSPHINX_EXPORT
668
676typedef struct ngram_iter_s ngram_iter_t;
677
687POCKETSPHINX_EXPORT
689
695POCKETSPHINX_EXPORT
696ngram_iter_t *ngram_iter(ngram_model_t *model, const char *word, ...);
697
703POCKETSPHINX_EXPORT
704ngram_iter_t *ngram_ng_iter(ngram_model_t *model, int32 wid, int32 *history, int32 n_hist);
705
715POCKETSPHINX_EXPORT
716int32 const *ngram_iter_get(ngram_iter_t *itor,
717 int32 *out_score,
718 int32 *out_bowt);
719
726POCKETSPHINX_EXPORT
728
733POCKETSPHINX_EXPORT
735
740POCKETSPHINX_EXPORT
742
756POCKETSPHINX_EXPORT
758 const char *word, float32 weight);
759
774POCKETSPHINX_EXPORT
776 const char *file_name);
777
787POCKETSPHINX_EXPORT
789 const char *classname,
790 float32 classweight,
791 char **words,
792 const float32 *weights,
793 int32 n_words);
794
805POCKETSPHINX_EXPORT
807 const char *classname,
808 const char *word,
809 float32 weight);
810
836POCKETSPHINX_EXPORT
838 ngram_model_t **models,
839 char **names,
840 const float32 *weights,
841 int32 n_models);
842
874POCKETSPHINX_EXPORT
876 const char *lmctlfile,
877 logmath_t *lmath);
878
883POCKETSPHINX_EXPORT
885
890typedef struct ngram_model_set_iter_s ngram_model_set_iter_t;
891
898POCKETSPHINX_EXPORT
900
907POCKETSPHINX_EXPORT
909
914POCKETSPHINX_EXPORT
916
925POCKETSPHINX_EXPORT
927 char const **lmname);
928
936POCKETSPHINX_EXPORT
938 const char *name);
939
947POCKETSPHINX_EXPORT
949 const char *name);
950
955POCKETSPHINX_EXPORT
957
967POCKETSPHINX_EXPORT
969 const char **names,
970 const float32 *weights);
971
985POCKETSPHINX_EXPORT
987 ngram_model_t *model,
988 const char *name,
989 float32 weight,
990 int reuse_widmap);
991
1001POCKETSPHINX_EXPORT
1003 const char *name,
1004 int reuse_widmap);
1005
1010POCKETSPHINX_EXPORT
1012 const char **words,
1013 int32 n_words);
1014
1023POCKETSPHINX_EXPORT
1025 int32 set_wid);
1026
1037POCKETSPHINX_EXPORT
1038int32 ngram_model_set_known_wid(ngram_model_t *set, int32 set_wid);
1039
1044POCKETSPHINX_EXPORT
1046
1047#ifdef __cplusplus
1048}
1049#endif
1050
1051#endif /* __PS_MODEL_H__ */
Fast integer logarithmic addition operations.
ngram_file_type_e
File types for N-Gram files.
Definition model.h:352
@ NGRAM_INVALID
Definition model.h:353
@ NGRAM_AUTO
Definition model.h:354
@ NGRAM_BIN
Definition model.h:356
@ NGRAM_ARPA
Definition model.h:355
ngram_case_e
Constants for case folding.
Definition model.h:447
@ NGRAM_UPPER
Definition model.h:448
@ NGRAM_LOWER
Definition model.h:449
Basic type definitions used in Sphinx.
Finite-state grammar.
POCKETSPHINX_EXPORT int fsg_model_free(fsg_model_t *fsg)
POCKETSPHINX_EXPORT void fsg_model_write(fsg_model_t *fsg, FILE *fp)
POCKETSPHINX_EXPORT void fsg_model_writefile_symtab(fsg_model_t *fsg, char const *file)
POCKETSPHINX_EXPORT fsg_model_t * fsg_model_readfile(const char *file, logmath_t *lmath, float32 lw)
POCKETSPHINX_EXPORT fsg_model_t * jsgf_read_string(const char *string, logmath_t *lmath, float32 lw)
POCKETSPHINX_EXPORT void fsg_model_write_fsm(fsg_model_t *fsg, FILE *fp)
POCKETSPHINX_EXPORT void fsg_model_writefile_fsm(fsg_model_t *fsg, char const *file)
POCKETSPHINX_EXPORT int fsg_model_accept(fsg_model_t *fsg, char const *words)
POCKETSPHINX_EXPORT fsg_model_t * fsg_model_read(FILE *fp, logmath_t *lmath, float32 lw)
POCKETSPHINX_EXPORT void fsg_model_writefile(fsg_model_t *fsg, char const *file)
POCKETSPHINX_EXPORT void fsg_model_write_symtab(fsg_model_t *fsg, FILE *file)
POCKETSPHINX_EXPORT fsg_model_t * jsgf_read_file(const char *file, logmath_t *lmath, float32 lw)
POCKETSPHINX_EXPORT fsg_model_t * fsg_model_retain(fsg_model_t *fsg)
Iterator over rules in a grammar.
POCKETSPHINX_EXPORT jsgf_rule_iter_t * jsgf_rule_iter_next(jsgf_rule_iter_t *itor)
POCKETSPHINX_EXPORT jsgf_rule_t * jsgf_rule_iter_rule(jsgf_rule_iter_t *itor)
POCKETSPHINX_EXPORT void jsgf_rule_iter_free(jsgf_rule_iter_t *itor)
Rule in a parsed JSGF grammar.
POCKETSPHINX_EXPORT int jsgf_rule_public(jsgf_rule_t *rule)
POCKETSPHINX_EXPORT char const * jsgf_rule_name(jsgf_rule_t *rule)
JSGF parser.
POCKETSPHINX_EXPORT jsgf_t * jsgf_parse_string(const char *string, jsgf_t *parent)
POCKETSPHINX_EXPORT fsg_model_t * jsgf_build_fsg(jsgf_t *grammar, jsgf_rule_t *rule, logmath_t *lmath, float32 lw)
POCKETSPHINX_EXPORT jsgf_t * jsgf_parse_file(const char *filename, jsgf_t *parent)
POCKETSPHINX_EXPORT char const * jsgf_grammar_name(jsgf_t *jsgf)
POCKETSPHINX_EXPORT jsgf_rule_t * jsgf_get_rule(jsgf_t *grammar, const char *name)
POCKETSPHINX_EXPORT int jsgf_write_fsg(jsgf_t *grammar, jsgf_rule_t *rule, FILE *outfh)
POCKETSPHINX_EXPORT jsgf_rule_iter_t * jsgf_rule_iter(jsgf_t *grammar)
POCKETSPHINX_EXPORT jsgf_rule_t * jsgf_get_public_rule(jsgf_t *grammar)
POCKETSPHINX_EXPORT void jsgf_grammar_free(jsgf_t *jsgf)
Integer log math computation class.
Word class in an N-Gram model.
M-gram (yes, M-gram) iterator object.
POCKETSPHINX_EXPORT int32 const * ngram_iter_get(ngram_iter_t *itor, int32 *out_score, int32 *out_bowt)
POCKETSPHINX_EXPORT ngram_iter_t * ngram_iter_successors(ngram_iter_t *itor)
POCKETSPHINX_EXPORT void ngram_iter_free(ngram_iter_t *itor)
POCKETSPHINX_EXPORT ngram_iter_t * ngram_iter_next(ngram_iter_t *itor)
Iterator over language models in a set.
POCKETSPHINX_EXPORT ngram_model_set_iter_t * ngram_model_set_iter_next(ngram_model_set_iter_t *itor)
POCKETSPHINX_EXPORT ngram_model_t * ngram_model_set_iter_model(ngram_model_set_iter_t *itor, char const **lmname)
POCKETSPHINX_EXPORT void ngram_model_set_iter_free(ngram_model_set_iter_t *itor)
N-Gram based language model.
POCKETSPHINX_EXPORT float32 ngram_model_get_weights(ngram_model_t *model, int32 *out_log_wip)
POCKETSPHINX_EXPORT int32 ngram_ng_score(ngram_model_t *model, int32 wid, int32 *history, int32 n_hist, int32 *n_used)
POCKETSPHINX_EXPORT void ngram_model_flush(ngram_model_t *lm)
POCKETSPHINX_EXPORT int32 ngram_model_add_word(ngram_model_t *model, const char *word, float32 weight)
POCKETSPHINX_EXPORT ngram_model_t * ngram_model_set_lookup(ngram_model_t *set, const char *name)
POCKETSPHINX_EXPORT const char * ngram_model_set_current(ngram_model_t *set)
POCKETSPHINX_EXPORT ngram_model_t * ngram_model_set_add(ngram_model_t *set, ngram_model_t *model, const char *name, float32 weight, int reuse_widmap)
POCKETSPHINX_EXPORT int32 ngram_probv(ngram_model_t *model, const char *word,...)
POCKETSPHINX_EXPORT ngram_file_type_t ngram_str_to_type(const char *str_name)
POCKETSPHINX_EXPORT int32 ngram_model_add_class_word(ngram_model_t *model, const char *classname, const char *word, float32 weight)
POCKETSPHINX_EXPORT ngram_iter_t * ngram_model_mgrams(ngram_model_t *model, int m)
POCKETSPHINX_EXPORT ngram_model_t * ngram_model_set_interp(ngram_model_t *set, const char **names, const float32 *weights)
POCKETSPHINX_EXPORT int ngram_model_casefold(ngram_model_t *model, int kase)
POCKETSPHINX_EXPORT ngram_model_t * ngram_model_set_read(ps_config_t *config, const char *lmctlfile, logmath_t *lmath)
POCKETSPHINX_EXPORT int32 ngram_score(ngram_model_t *model, const char *word,...)
POCKETSPHINX_EXPORT ngram_model_t * ngram_model_set_select(ngram_model_t *set, const char *name)
POCKETSPHINX_EXPORT ngram_model_t * ngram_model_set_remove(ngram_model_t *set, const char *name, int reuse_widmap)
POCKETSPHINX_EXPORT uint32 const * ngram_model_get_counts(ngram_model_t *model)
POCKETSPHINX_EXPORT int32 ngram_wid(ngram_model_t *model, const char *word)
POCKETSPHINX_EXPORT int32 ngram_model_get_size(ngram_model_t *model)
POCKETSPHINX_EXPORT int32 ngram_tg_score(ngram_model_t *model, int32 w3, int32 w2, int32 w1, int32 *n_used)
POCKETSPHINX_EXPORT ngram_model_set_iter_t * ngram_model_set_iter(ngram_model_t *set)
POCKETSPHINX_EXPORT int32 ngram_unknown_wid(ngram_model_t *model)
POCKETSPHINX_EXPORT char const * ngram_type_to_str(int type)
POCKETSPHINX_EXPORT int32 ngram_model_read_classdef(ngram_model_t *model, const char *file_name)
POCKETSPHINX_EXPORT ngram_model_t * ngram_model_retain(ngram_model_t *model)
POCKETSPHINX_EXPORT int ngram_model_free(ngram_model_t *model)
POCKETSPHINX_EXPORT int32 ngram_model_set_count(ngram_model_t *set)
POCKETSPHINX_EXPORT int32 ngram_prob(ngram_model_t *model, const char *const *words, int32 n)
POCKETSPHINX_EXPORT ngram_model_t * ngram_model_set_init(ps_config_t *config, ngram_model_t **models, char **names, const float32 *weights, int32 n_models)
POCKETSPHINX_EXPORT int32 ngram_model_set_current_wid(ngram_model_t *set, int32 set_wid)
POCKETSPHINX_EXPORT int32 ngram_bg_score(ngram_model_t *model, int32 w2, int32 w1, int32 *n_used)
POCKETSPHINX_EXPORT ngram_file_type_t ngram_file_name_to_type(const char *file_name)
POCKETSPHINX_EXPORT int32 ngram_model_set_known_wid(ngram_model_t *set, int32 set_wid)
POCKETSPHINX_EXPORT int32 ngram_model_add_class(ngram_model_t *model, const char *classname, float32 classweight, char **words, const float32 *weights, int32 n_words)
POCKETSPHINX_EXPORT ngram_iter_t * ngram_ng_iter(ngram_model_t *model, int32 wid, int32 *history, int32 n_hist)
POCKETSPHINX_EXPORT ngram_iter_t * ngram_iter(ngram_model_t *model, const char *word,...)
POCKETSPHINX_EXPORT int32 ngram_zero(ngram_model_t *model)
POCKETSPHINX_EXPORT int ngram_model_apply_weights(ngram_model_t *model, float32 lw, float32 wip)
POCKETSPHINX_EXPORT void ngram_model_set_map_words(ngram_model_t *set, const char **words, int32 n_words)
POCKETSPHINX_EXPORT int ngram_model_write(ngram_model_t *model, const char *file_name, ngram_file_type_t format)
POCKETSPHINX_EXPORT ngram_model_t * ngram_model_read(ps_config_t *config, const char *file_name, ngram_file_type_t file_type, logmath_t *lmath)
POCKETSPHINX_EXPORT int32 ngram_ng_prob(ngram_model_t *model, int32 wid, int32 *history, int32 n_hist, int32 *n_used)
POCKETSPHINX_EXPORT const char * ngram_word(ngram_model_t *model, int32 wid)
POCKETSPHINX_EXPORT int32 ngram_score_to_prob(ngram_model_t *model, int32 score)
configuration object.