26 int main(
int argc, 
char *argv[]) {
    28     using namespace kaldi;
    31     typedef kaldi::int64 int64;
    34         "Creates a random subset of the input examples, of a specified size.\n"    35         "Uses no more memory than the size of the subset.\n"    37         "Usage:  nnet-subset-egs [options] <egs-rspecifier> [<egs-wspecifier2> ...]\n"    40         "nnet-subset-egs [args] ark:- | nnet-subset-egs --n=1000 ark:- ark:subset.egs\n";
    44     bool randomize_order = 
true;
    46     po.
Register(
"srand", &srand_seed, 
"Seed for random number generator ");
    47     po.
Register(
"n", &n, 
"Number of examples to output");
    48     po.
Register(
"randomize-order", &randomize_order, 
"If true, randomize the order "    60     std::string examples_rspecifier = po.
GetArg(1),
    61         examples_wspecifier = po.
GetArg(2);
    63     std::vector<std::pair<std::string, NnetExample> > egs;
    69     for (; !example_reader.
Done(); example_reader.
Next()) {
    72         egs.resize(egs.size() + 1);
    73         egs.back().first = example_reader.
Key();
    74         egs.back().second = example_reader.
Value();
    79           egs[index].first = example_reader.
Key();
    80           egs[index].second = example_reader.
Value();
    85       std::random_shuffle(egs.begin(), egs.end());
    88     for (
size_t i = 0; 
i < egs.size(); 
i++) {
    89       writer.Write(egs[
i].first, egs[
i].second);
    92     KALDI_LOG << 
"Selected a subset of " << egs.size() << 
" out of " << num_read
    93               << 
" neural-network training examples ";
    95     return (num_read != 0 ? 0 : 1);
    96   } 
catch(
const std::exception &e) {
    97     std::cerr << e.what() << 
'\n';
 This code computes Goodness of Pronunciation (GOP) and extracts phone-level pronunciation feature for...
 
void PrintUsage(bool print_command_line=false)
Prints the usage documentation [provided in the constructor]. 
 
bool WithProb(BaseFloat prob, struct RandomState *state)
 
int main(int argc, char *argv[])
 
A templated class for writing objects to an archive or script file; see The Table concept...
 
void Register(const std::string &name, bool *ptr, const std::string &doc)
 
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...
 
int Read(int argc, const char *const *argv)
Parses the command line options and fills the ParseOptions-registered variables. 
 
std::string GetArg(int param) const
Returns one of the positional parameters; 1-based indexing for argc/argv compatibility. 
 
int NumArgs() const
Number of positional parameters (c.f. argc-1). 
 
Note on how to parse this filename: it contains functions relatied to neural-net training examples...
 
int32 RandInt(int32 min_val, int32 max_val, struct RandomState *state)