bambocher/pocketsphinx-python

name 'fsg' is not defined

Closed this issue · 0 comments

Hello, when I start the project I have an error with this code decoder.set_fsg(grammar_name, fsg)

grammar_file = "contact" # do not use any extension for this file

Create decoder object

config = pocketsphinx.Decoder.default_config()
config.set_string("-hmm", os.path.join(rootdir2, 'acoustic-model'))
config.set_string("-lm", os.path.join(rootdir2, 'language-model.lm.bin'))
config.set_string("-dict", os.path.join(rootdir2, 'pronounciation-dictionary.dict'))
config.set_string("-logfn", os.devnull)
decoder = pocketsphinx.Decoder(config)

Convert grammar

grammar_path = os.path.abspath(os.path.dirname(grammar_file))
grammar_name = os.path.splitext(os.path.basename(grammar_file))[0]
fsg_path = "{0}/{1}.fsg".format(grammar_path, grammar_name)
if not os.path.exists(fsg_path): # create FSG grammar if not available
jsgf = ps.Jsgf(grammar_file)
rule = jsgf.get_rule("{0}.{0}".format(grammar_name))
fsg = jsgf.build_fsg(rule, decoder.get_logmath(), 7.5)
fsg.writefile(fsg_path)
print('Successful JSFG to FSG conversion!!!')

Pass the fsg file into the decoder

decoder.set_fsg(grammar_name, fsg) # <--- BUG IS HERE!!!