Download test/unit/test_jsgf.c from camenduru/pocketsphinx: direct link, hf CLI and curl.
- Browser
- Download file 3.16 kB
-
https://huggingface.co/camenduru/pocketsphinx/resolve/main/test/unit/test_jsgf.c
- Command line
-
hf download hf://camenduru/pocketsphinx/test/unit/test_jsgf.c
-
curl -L -o test_jsgf.c https://huggingface.co/camenduru/pocketsphinx/resolve/main/test/unit/test_jsgf.c
3.16 kB
| int | |
| main(int argc, char *argv[]) | |
| { | |
| ps_decoder_t *ps; | |
| cmd_ln_t *config; | |
| jsgf_t *jsgf; | |
| jsgf_rule_t *rule; | |
| fsg_model_t *fsg; | |
| FILE *rawfh; | |
| char const *hyp; | |
| int32 score, prob; | |
| (void)argc; | |
| (void)argv; | |
| TEST_ASSERT(config = | |
| ps_config_parse_json( | |
| NULL, | |
| "hmm: \"" MODELDIR "/en-us/en-us\"," | |
| "dict: \"" DATADIR "/turtle.dic\"," | |
| "samprate: 16000")); | |
| TEST_ASSERT(ps = ps_init(config)); | |
| jsgf = jsgf_parse_file(DATADIR "/goforward.gram", NULL); | |
| TEST_ASSERT(jsgf); | |
| rule = jsgf_get_rule(jsgf, "goforward.move2"); | |
| TEST_ASSERT(rule); | |
| fsg = jsgf_build_fsg(jsgf, rule, ps->lmath, 7.5); | |
| TEST_ASSERT(fsg); | |
| fsg_model_write(fsg, stdout); | |
| ps_add_fsg(ps, "goforward.move2", fsg); | |
| ps_activate_search(ps, "goforward.move2"); | |
| TEST_ASSERT(rawfh = fopen(DATADIR "/goforward.raw", "rb")); | |
| ps_decode_raw(ps, rawfh, -1); | |
| hyp = ps_get_hyp(ps, &score); | |
| prob = ps_get_prob(ps); | |
| printf("%s (%d, %d)\n", hyp, score, prob); | |
| TEST_EQUAL(0, strcmp("go forward ten meters", hyp)); | |
| ps_free(ps); | |
| fclose(rawfh); | |
| ps_config_free(config); | |
| TEST_ASSERT(config = | |
| ps_config_parse_json( | |
| NULL, | |
| "hmm: \"" MODELDIR "/en-us/en-us\"," | |
| "dict: \"" DATADIR "/turtle.dic\"," | |
| "jsgf: \"" DATADIR "/goforward.gram\"," | |
| "samprate: 16000")); | |
| TEST_ASSERT(ps = ps_init(config)); | |
| TEST_ASSERT(rawfh = fopen(DATADIR "/goforward.raw", "rb")); | |
| ps_decode_raw(ps, rawfh, -1); | |
| hyp = ps_get_hyp(ps, &score); | |
| prob = ps_get_prob(ps); | |
| printf("%s (%d, %d)\n", hyp, score, prob); | |
| TEST_EQUAL(0, strcmp("go forward ten meters", hyp)); | |
| ps_free(ps); | |
| fclose(rawfh); | |
| ps_config_free(config); | |
| TEST_ASSERT(config = | |
| ps_config_parse_json( | |
| NULL, | |
| "hmm: \"" MODELDIR "/en-us/en-us\"," | |
| "dict: \"" DATADIR "/turtle.dic\"," | |
| "jsgf: \"" DATADIR "/goforward.gram\"," | |
| "toprule: goforward.move2, samprate: 16000")); | |
| TEST_ASSERT(ps = ps_init(config)); | |
| TEST_ASSERT(rawfh = fopen(DATADIR "/goforward.raw", "rb")); | |
| ps_decode_raw(ps, rawfh, -1); | |
| hyp = ps_get_hyp(ps, &score); | |
| prob = ps_get_prob(ps); | |
| printf("%s (%d, %d)\n", hyp, score, prob); | |
| TEST_EQUAL(0, strcmp("go forward ten meters", hyp)); | |
| ps_free(ps); | |
| ps_config_free(config); | |
| fclose(rawfh); | |
| TEST_ASSERT(config = | |
| ps_config_parse_json( | |
| NULL, | |
| "hmm: \"" MODELDIR "/en-us/en-us\"," | |
| "dict: \"" DATADIR "/turtle.dic\"," | |
| "jsgf: \"" DATADIR "/defective.gram\",")); | |
| TEST_ASSERT(NULL == ps_init(config)); | |
| ps_config_free(config); | |
| return 0; | |
| } | |