void cmd_ln_appl_enter(int argc, char *argv[], const char *default_argfn, const arg_t * defn) { /* Look for default or specified arguments file */ const char *str; str = NULL; if ((argc == 2) && (strcmp(argv[1], "help") == 0)) { cmd_ln_print_help(stderr, defn); exit(1); } if ((argc == 2) && (argv[1][0] != '-')) str = argv[1]; else if (argc == 1) { FILE *fp; E_INFO("Looking for default argument file: %s\n", default_argfn); if ((fp = fopen(default_argfn, "r")) == NULL) { E_INFO("Can't find default argument file %s.\n", default_argfn); } else { str = default_argfn; } if (fp != NULL) fclose(fp); } if (str) { /* Build command line argument list from file */ E_INFO("Parsing command lines from file %s\n", str); if (cmd_ln_parse_file(defn, str, TRUE)) { E_INFOCONT("Usage:\n"); E_INFOCONT("\t%s argument-list, or\n", argv[0]); E_INFOCONT("\t%s [argument-file] (default file: . %s)\n\n", argv[0], default_argfn); cmd_ln_print_help(stderr, defn); exit(1); } } else { cmd_ln_parse(defn, argc, argv, TRUE); } }
int main(int argc, char **argv) { thread_t thread; char buffer[1024]; char *hypstr; /* * Initializing */ if (argc != 2) { printf("Usage: livedecode config_file \n"); return -1; } if (cmd_ln_parse_file(arg_def, argv[1])) { printf("Bad arguments file (%s).\n", argv[1]); return -1; } if (ld_init(&decoder)) { printf("Initialization failed.\n"); return -1; } if (ld_begin_utt(&decoder, 0)) { printf("Cannot start decoding\n"); return -1; } /** initializing a file to dump the recorded audio */ if ((dump = fopen("out.raw", "wb")) == 0) { printf("Cannot open dump file out.raw\n"); return -1; } create_cond(&startEvent); create_cond(&finishEvent); create_thread(&thread, &process_thread); /* * Wait for some user input, then signal the processing thread to start * recording/decoding */ printf("press ENTER to start recording\n"); fgets(buffer, 1024, stdin); cond_signal(startEvent); /* * Wait for some user input again, then signal the processing thread to end * recording/decoding */ printf("press ENTER to finish recording\n"); fgets(buffer, 1024, stdin); cond_signal(finishEvent); /* * Wait for the working thread to join */ join_thread(thread); /* * Print the decoding output */ if (ld_retrieve_hyps(&decoder, NULL, &hypstr, NULL)) { printf("Cannot retrieve hypothesis.\n"); } else { printf("Hypothesis:\n%s\n", hypstr); } ld_finish(&decoder); fclose(dump); return 0; }