tomwalters@84: #!/usr/bin/env python tomwalters@84: # encoding: utf-8 tomwalters@84: """ tomwalters@84: gen_hhed_script.py tomwalters@84: tomwalters@84: Created by Thomas Walters on 2010-07-08. tomwalters@84: """ tomwalters@84: tomwalters@84: import sys tomwalters@84: import getopt tomwalters@84: tomwalters@84: tomwalters@84: help_message = ''' tomwalters@84: Generate an HTK HHed script to change the number of means in the output tomwalters@84: distribution to num_means for the emitting states of an HMM with tomwalters@84: total_hmm_states states tomwalters@84: ''' tomwalters@84: tomwalters@84: tomwalters@84: class Usage(Exception): tomwalters@84: def __init__(self, msg): tomwalters@84: self.msg = msg tomwalters@84: tomwalters@84: tomwalters@84: def main(argv=None): tomwalters@84: if argv is None: tomwalters@84: argv = sys.argv tomwalters@84: try: tomwalters@84: try: tomwalters@84: opts, args = getopt.getopt(argv[1:], "hn:s:v", ["help", "num_means=", "total_hmm_states="]) tomwalters@84: except getopt.error, msg: tomwalters@84: raise Usage(msg) tomwalters@84: tomwalters@84: # defaults tomwalters@84: num_means = 3 tomwalters@84: total_hmm_states = 6 tomwalters@84: tomwalters@84: # option processing tomwalters@84: for option, value in opts: tomwalters@84: if option == "-v": tomwalters@84: verbose = True tomwalters@84: if option in ("-h", "--help"): tomwalters@84: raise Usage(help_message) tomwalters@84: if option in ("-n", "--num_means"): tomwalters@84: num_means = int(value) tomwalters@84: if option in ("-s", "--total_hmm_states"): tomwalters@84: total_hmm_states = int(value) tomwalters@84: tomwalters@84: except Usage, err: tomwalters@84: print >> sys.stderr, sys.argv[0].split("/")[-1] + ": " + str(err.msg) tomwalters@84: print >> sys.stderr, "\t for help use --help" tomwalters@84: return 2 tomwalters@84: tomwalters@84: out_string = "" tomwalters@84: for state in xrange(2, total_hmm_states): tomwalters@84: out_string += ("MU " + str(num_means) + " {*.state[" + str(state) + "].mix} ") tomwalters@84: print out_string tomwalters@84: tomwalters@84: if __name__ == "__main__": tomwalters@84: sys.exit(main())