30     using namespace kaldi;
    33     typedef kaldi::uint64 uint64;
    36         "Reads a table of FSTs; for each element, finds the best path and \n"    37         "prints out the output-symbol sequence (if --output-side=true), or \n"    38         "input-symbol sequence otherwise.\n"    41         " fsts-to-transcripts [options] <fsts-rspecifier>"    42         " <transcriptions-wspecifier>\n"    44         " fsts-to-transcripts ark:train.fsts ark,t:train.text\n";
    48     bool output_side = 
true;
    50     po.Register(
"output-side", &output_side, 
"If true, extract the symbols on "    51                 "the output side of the FSTs, else the input side.");
    55     if (po.NumArgs() != 2) {
    60     std::string fst_rspecifier = po.GetArg(1),
    61         transcript_wspecifier = po.GetArg(2);
    67     int32 n_done = 0, n_err = 0;
    68     for (; !fst_reader.Done(); fst_reader.Next()) {
    69       std::string key = fst_reader.Key();
    70       const VectorFst<StdArc> &
fst = fst_reader.Value();
    73       VectorFst<StdArc> shortest_path;
    74       ShortestPath(fst, &shortest_path);  
    76       if (shortest_path.NumStates() == 0) {
    77         KALDI_WARN << 
"Input FST (after shortest path) was empty. Producing "    78                    << 
"no output for key " << key;
    83       std::vector<int32> transcript;
    85       if (output_side) ans = fst::GetLinearSymbolSequence<StdArc, int32>(
    86               shortest_path, NULL, &transcript, NULL);
    88         ans = fst::GetLinearSymbolSequence<StdArc, int32>(
    89           shortest_path, &transcript, NULL, NULL);
    91         KALDI_ERR << 
"GetLinearSymbolSequence returned false (code error);";
    93       transcript_writer.Write(key, transcript);
    97     KALDI_LOG << 
"Converted " << n_done << 
" FSTs, " << n_err << 
" with errors";
    98     return (n_done != 0 ? 0 : 1);
    99   } 
catch(
const std::exception &e) {
   100     std::cerr << e.what();
 This code computes Goodness of Pronunciation (GOP) and extracts phone-level pronunciation feature for...
 
For an extended explanation of the framework of which grammar-fsts are a part, please see Support for...
 
A templated class for writing objects to an archive or script file; see The Table concept...
 
The class ParseOptions is for parsing command-line options; see Parsing command-line options for more...
 
A templated class for reading objects sequentially from an archive or script file; see The Table conc...