| | #include <pocketsphinx.h> |
| | #include <stdio.h> |
| | #include <string.h> |
| |
|
| | #include "pocketsphinx_internal.h" |
| | #include "test_macros.h" |
| | #include "test_ps.c" |
| |
|
| | int |
| | main(int argc, char *argv[]) |
| | { |
| | ps_decoder_t *ps; |
| | ps_nbest_t *nbest; |
| | cmd_ln_t *config; |
| | FILE *rawfh; |
| | char const *hyp; |
| | int32 score, n; |
| |
|
| | (void)argc; |
| | (void)argv; |
| | TEST_ASSERT(config = |
| | ps_config_parse_json( |
| | NULL, |
| | "hmm: \"" MODELDIR "/en-us/en-us\"," |
| | "lm: \"" MODELDIR "/en-us/en-us.lm.bin\"," |
| | "dict: \"" MODELDIR "/en-us/cmudict-en-us.dict\"," |
| | "fwdtree: true," |
| | "fwdflat: true," |
| | "bestpath: true," |
| | "samprate: 16000")); |
| | TEST_ASSERT(ps = ps_init(config)); |
| | TEST_ASSERT(rawfh = fopen(DATADIR "/goforward.raw", "rb")); |
| | ps_decode_raw(ps, rawfh, -1); |
| | fclose(rawfh); |
| | hyp = ps_get_hyp(ps, &score); |
| | printf("BESTPATH: %s (%d)\n", hyp, score); |
| |
|
| | for (n = 1, nbest = ps_nbest(ps); nbest && n < 10; nbest = ps_nbest_next(nbest), n++) { |
| | ps_seg_t *seg; |
| | hyp = ps_nbest_hyp(nbest, &score); |
| | printf("NBEST %d: %s (%d)\n", n, hyp, score); |
| | for (seg = ps_nbest_seg(nbest); seg; |
| | seg = ps_seg_next(seg)) { |
| | char const *word; |
| | int sf, ef; |
| |
|
| | word = ps_seg_word(seg); |
| | ps_seg_frames(seg, &sf, &ef); |
| | printf("%s %d %d\n", word, sf, ef); |
| | } |
| | } |
| | if (nbest) |
| | ps_nbest_free(nbest); |
| | ps_free(ps); |
| | ps_config_free(config); |
| | return 0; |
| | } |
| |
|